NOflake/systems/BASED.nix
2025-11-14 12:42:20 -08:00

192 lines
5 KiB
Nix

{
inputs,
lib,
pkgs,
modulesPath,
...
}: {
environment.systemPackages = with pkgs; [
# keep-sorted start
bat
bottom
cifs-utils
dumbpipe
dust
exfatprogs
fastfetch
ffmpeg
firefox
git
helix
inputs.agenix.packages.${pkgs.system}.default
inputs.zen-browser.packages."${system}".default
jujutsu
mesa
mpv
ouch
pueue
ripgrep
rustdesk
sendme
skim
smartmontools
tree
waypipe
wezterm
wget
zellij
zstd
# keep-sorted end
];
programs.partition-manager.enable = lib.mkDefault true;
hardware.graphics.enable = true;
# hardware.opengl = {
# enable = true;
# extraPackaged = with pkgs; [
# libvdpau-va-gl
# ];
# };
services.xserver.enable = lib.mkDefault true;
services.xserver.excludePackages = [pkgs.xterm];
services.xserver.xkb.layout = "us";
systemd.services.display-manager.restartIfChanged = false;
services.desktopManager.cosmic.enable = lib.mkDefault true;
services.displayManager.cosmic-greeter.enable = lib.mkDefault true;
# environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1;
environment.cosmic.excludePackages = with pkgs; [
cosmic-edit
cosmic-player
cosmic-term
cosmic-wallpapers
];
xdg.portal.enable = lib.mkForce true;
services.flatpak.enable = true;
services.openssh.enable = true;
users.users.root.openssh.authorizedKeys.keys = [
];
programs.ssh.startAgent = true;
services.gnome.gcr-ssh-agent.enable = false;
services.printing.enable = lib.mkDefault true;
services.printing.drivers = with pkgs; lib.mkDefault [gutenprint gutenprintBin hplip];
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
networking.networkmanager.enable = true;
networking.networkmanager.wifi.backend = "iwd";
services.tailscale.enable = true;
services.resolved.enable = true;
networking.wireless.iwd = {
enable = true;
settings.IPv6.Enabled = true;
settings.Settings.AutoConnect = true;
};
services.smartd = {
enable = true;
notifications.systembus-notify.enable = true;
};
# services.btrfs.autoScrub.enable = lib.mkDefault true;
services.btrfs.autoScrub = {
enable = true;
interval = "weekly";
fileSystems = ["/"];
};
security.rtkit.enable = true;
services.pipewire = {
enable = lib.mkDefault true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = lib.mkDefault true;
};
security.sudo-rs.enable = true;
security.sudo.enable = false;
i18n.inputMethod = {
enable = lib.mkDefault true;
type = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-gtk
fcitx5-mozc
fcitx5-rime
];
};
environment.variables = {
EDITOR = "hx";
VISUAL = "hx";
PAGER = "bat";
SKIM_DEFAULT_COMMAND = "rg --files";
};
environment.sessionVariables = {
EDITOR = "hx";
VISUAL = "hx";
PAGER = "bat";
SKIM_DEFAULT_COMMAND = "rg --files";
};
time.timeZone = lib.mkDefault "US/Pacific";
# services.automatic-timezoned.enable = lib.mkDefault true;
# i18n.defaultLocale = "en_US.UTF-8";
# i18n.extraLocaleSettings = {
# LC_CTYPE = "en_US.UTF-8";
# LC_MESSAGES = "en_US.UTF-8";
# LC_ALL = "en_US.UTF-8";
# };
# systemd.settings.Manager = ''
# DefaultTimeoutStopSec=15s
# '';
# systemd.settings.Manager = "";
zramSwap = {
enable = true;
algorithm = "zstd";
};
boot.loader.systemd-boot.enable = lib.mkDefault true;
boot.loader.efi.canTouchEfiVariables = lib.mkDefault true;
boot.loader.timeout = lib.mkForce 1;
# boot.supportedFilesystems = ["ntfs" "btrfs"];
hardware.enableAllFirmware = true;
hardware.bluetooth.enable = lib.mkDefault true;
# hardware.bluetooth.settings.General.Experimental = true;
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
programs.nix-ld = {
enable = true;
};
nix.settings = {
experimental-features = "nix-command flakes";
auto-optimise-store = true;
# adding logged in users allows for passwordless root
trusted-users = ["root" "@wheel"];
system-features = [
"benchmark"
"big-parallel"
"gccarch-znver3"
"gccarch-znver4"
"kvm"
"nixos-test"
];
};
nixpkgs.config = {allowUnfree = true;};
nix.nixPath = ["nixpkgs=${pkgs.path}"];
nix.gc = {
automatic = true;
options = "--delete-older-than 7d";
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
system.stateVersion = lib.mkDefault "23.05";
}