chore: drop redundant packages and options

- packages.nix is the baseline: drop neovim (nixvim), nvd, sof-firmware (enableAllFirmware), qtmultimedia (v4 leftover); vial moves to vial.nix, wl-clipboard to noctalia.nix, claude-code becomes a plain package here
- drop packages and options already provided elsewhere: noctalia (home-manager), gnupg/pinentry-qt (agent), gtk/qt themes, sddm Theme.Current, zsh plugins (home-manager), group = users, empty firewall lists
- single-package lists without `with pkgs;`, steam package inside its block

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 09:25:40 +02:00
co-authored by Claude Opus 5.5
parent 4633687ccb
commit 1abb1ca6a1
12 changed files with 37 additions and 105 deletions
+3 -8
View File
@@ -4,10 +4,7 @@
programs.nixvim = { programs.nixvim = {
enable = true; enable = true;
# We keep `inputs.nixvim.inputs.nixpkgs.follows = "nixpkgs"` in flake.nix so # same nixpkgs as the flake's `follows`, silences nixvim's pin warning
# the whole config shares a single nixpkgs. Setting `source` explicitly to
# that same nixpkgs acknowledges the override and silences nixvim's warning
# about its pinned nixpkgs being bypassed.
nixpkgs.source = inputs.nixpkgs; nixpkgs.source = inputs.nixpkgs;
# set aliases # set aliases
@@ -104,8 +101,6 @@
}; };
}; };
# install dependencies # telescope live_grep
home.packages = with pkgs; [ home.packages = [ pkgs.ripgrep ];
ripgrep
];
} }
-8
View File
@@ -1,7 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# set gtk theme
gtk = { gtk = {
enable = true; enable = true;
theme = { theme = {
@@ -13,7 +12,6 @@
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1; gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
}; };
# set qt theme
qt = { qt = {
enable = true; enable = true;
platformTheme.name = "qt6"; platformTheme.name = "qt6";
@@ -22,10 +20,4 @@
package = pkgs.adwaita-qt; package = pkgs.adwaita-qt;
}; };
}; };
# ensure packages are installed
home.packages = with pkgs; [
gnome-themes-extra
adwaita-qt
];
} }
+7 -12
View File
@@ -1,29 +1,24 @@
# A graphical pinentry never grabs the tty, so a passphrase prompt can't take
# over a terminal driven by a coding agent. The cache lasts a working day, and
# an unattended signature fails after two minutes instead of blocking forever.
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
# enable gnupg agent
programs.gnupg.agent = { programs.gnupg.agent = {
enable = true; enable = true;
# a graphical pinentry never grabs the tty, so a passphrase prompt can no
# longer take over a terminal that a coding agent is driving
pinentryPackage = pkgs.pinentry-qt; pinentryPackage = pkgs.pinentry-qt;
settings = { settings = {
# keep the key unlocked for a full working day instead of 10 minutes,
# so signing commits asks at most once per session
default-cache-ttl = 86400; default-cache-ttl = 86400;
max-cache-ttl = 86400; max-cache-ttl = 86400;
# fail an unattended signature instead of blocking on a prompt forever
pinentry-timeout = 120; pinentry-timeout = 120;
}; };
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = [
gnupg pkgs.pinentry-curses # fallback for sessions without a display
pinentry-qt
# fallback for sessions without a display, switch pinentryPackage to use it
pinentry-curses
# prime the passphrase cache on demand, e.g. before an agent session # prime the passphrase cache on demand, e.g. before an agent session
(writeShellScriptBin "gpg-unlock" '' (pkgs.writeShellScriptBin "gpg-unlock" ''
echo | ${config.programs.gnupg.package}/bin/gpg --clearsign --output /dev/null echo | ${config.programs.gnupg.package}/bin/gpg --clearsign --output /dev/null
echo "gpg key unlocked" echo "gpg key unlocked"
'') '')
+1 -9
View File
@@ -1,20 +1,12 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# user networkmanager
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# firewall default configs # wifi firmware and bluetooth
networking.firewall.allowedTCPPorts = [ ];
networking.firewall.allowedUDPPorts = [ ];
# enable wifi firmware
hardware.enableAllFirmware = true; hardware.enableAllFirmware = true;
# enable bluetooth
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
# Add network-related packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
wireguard-tools wireguard-tools
update-systemd-resolved update-systemd-resolved
+2 -6
View File
@@ -1,11 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# just enable and install niri # compositor and session; the config itself lives in home-manager
programs.niri.enable = true; programs.niri.enable = true;
environment.systemPackages = [ pkgs.xwayland-satellite ];
# Add compositor-related packages
environment.systemPackages = with pkgs; [
xwayland-satellite
];
} }
+4 -4
View File
@@ -1,14 +1,14 @@
{ pkgs, inputs, ... }: { pkgs, ... }:
{ {
# install noctalia and helper packages # helpers for the noctalia shell (the shell itself comes from home-manager)
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
adw-gtk3 adw-gtk3
adwaita-qt
adwaita-qt6 adwaita-qt6
brightnessctl brightnessctl
ddcutil ddcutil
playerctl playerctl
wl-clipboard
wl-mirror wl-mirror
]; ];
} }
+2 -7
View File
@@ -1,10 +1,11 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# system packages # baseline tools for every host
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
btop btop
cifs-utils cifs-utils
claude-code
cowsay cowsay
dnsutils dnsutils
ethtool ethtool
@@ -14,31 +15,25 @@
imv imv
iperf3 iperf3
jq jq
kdePackages.qtmultimedia
ldns ldns
lm_sensors lm_sensors
lsof lsof
mtr mtr
neovim
nfs-utils nfs-utils
nh nh
nix-output-monitor nix-output-monitor
nmap nmap
nvd
p7zip p7zip
pciutils pciutils
socat socat
sof-firmware
strace strace
sysstat sysstat
tree tree
unzip unzip
usbutils usbutils
vial
vim vim
wget wget
which which
wl-clipboard
xz xz
zip zip
zstd zstd
+3 -13
View File
@@ -1,25 +1,15 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# enable sddm and use astronaut theme
services.displayManager.sddm = { services.displayManager.sddm = {
enable = true; enable = true;
wayland.enable = true; wayland.enable = true;
autoNumlock = true; autoNumlock = true;
enableHidpi = true; enableHidpi = true;
theme = "sddm-astronaut-theme"; theme = "sddm-astronaut-theme";
settings = { extraPackages = [ pkgs.sddm-astronaut ]; # theme's qml dependencies
Theme = {
Current = "sddm-astronaut-theme";
};
};
extraPackages = with pkgs; [
sddm-astronaut
];
}; };
# Make the theme available in the system path so sddm can find it # sddm looks for themes in the system path
environment.systemPackages = with pkgs; [ environment.systemPackages = [ pkgs.sddm-astronaut ];
sddm-astronaut
];
} }
+3 -10
View File
@@ -1,20 +1,13 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# enable steam and open firewall
programs.steam = { programs.steam = {
enable = true; enable = true;
# fix black screen when running under xwayland-satellite
package = pkgs.steam.override { extraArgs = "-system-composer"; };
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true; dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true; localNetworkGameTransfers.openFirewall = true;
# add proton-glorious-eggroll extraCompatPackages = [ pkgs.proton-ge-bin ];
extraCompatPackages = with pkgs; [
proton-ge-bin
];
};
# fix black screen in steam when using xwayland-satellite
programs.steam.package = pkgs.steam.override {
extraArgs = "-system-composer";
}; };
} }
+2 -7
View File
@@ -1,14 +1,9 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# Enable Thunar
programs.thunar.enable = true; programs.thunar.enable = true;
# Install Tumbler thumbnailer service # thumbnails: tumbler service plus the path it loads extensions from
environment.systemPackages = with pkgs; [ environment.systemPackages = [ pkgs.tumbler ];
tumbler
];
# Ensure Thunar can locate the thumbnailer extensions
environment.pathsToLink = [ "share/thumbnailers" ]; environment.pathsToLink = [ "share/thumbnailers" ];
} }
+2 -8
View File
@@ -1,10 +1,8 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# create users
users.users.aaron = { users.users.aaron = {
isNormalUser = true; isNormalUser = true;
group = "users";
extraGroups = [ extraGroups = [
"wheel" "wheel"
"networkmanager" "networkmanager"
@@ -13,10 +11,6 @@
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
# add default zsh config # login shell; plugins and prompt are configured in home-manager
programs.zsh = { programs.zsh.enable = true;
enable = true;
enableCompletion = true;
autosuggestions.enable = true;
};
} }
+8 -13
View File
@@ -1,26 +1,21 @@
# Vial keyboards (lily58 pro r2g) expose a raw HID interface that vial.rocks
# drives over WebHID; its /dev/hidraw* node is root-only by default.
# The rule ships as 60-vial.rules because uaccess is only applied by
# 73-seat-late.rules, and services.udev.extraRules lands at 99, too late.
{ pkgs, ... }: { pkgs, ... }:
{ {
# Vial-capable keyboards (lily58 pro r2g) expose a second, non-keyboard raw
# HID interface that vial.rocks drives over WebHID. Its /dev/hidraw* node is
# root-only by default, so neither chromium nor the native app can open it.
#
# This has to ship as a numbered rules file rather than via
# services.udev.extraRules: extraRules lands in 99-local.rules, but the
# builtin that turns TAG+="uaccess" into an actual ACL is invoked from
# systemd's 73-seat-late.rules. A tag set at 99 is set too late to be seen,
# so the device ends up correctly tagged and still unreadable. 60- sorts
# safely ahead of 73.
services.udev.packages = [ services.udev.packages = [
(pkgs.writeTextFile { (pkgs.writeTextFile {
name = "vial-udev-rules"; name = "vial-udev-rules";
destination = "/lib/udev/rules.d/60-vial.rules"; destination = "/lib/udev/rules.d/60-vial.rules";
# Vial firmware advertises itself through a magic USB serial, so this # the magic serial matches any vial board; uaccess grants the seat owner
# matches any vial board rather than just the lily58. uaccess hands the
# device to whoever owns the active seat, no group membership needed.
text = '' text = ''
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", TAG+="uaccess" KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", TAG+="uaccess"
''; '';
}) })
]; ];
environment.systemPackages = [ pkgs.vial ];
} }