Files
.dotfiles/system/packages.nix
T
2026-07-24 18:27:02 -06:00

95 lines
2.2 KiB
Nix

{ config, pkgs, ... }:
{
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
acpi
alacritty
btop
dconf
dunst
fastfetch
firefox
git
github-cli
gnomeExtensions.blur-my-shell
gnomeExtensions.caffeine
gnomeExtensions.clipboard-indicator
gnomeExtensions.dash-to-panel
gnomeExtensions.gjs-osk
gnomeExtensions.gsconnect
gnomeExtensions.just-perfection
gnomeExtensions.removable-drive-menu
gnome-keyring
gnome-network-displays
google-chrome
libnotify
mypy
networkmanagerapplet
nitrogen
pasystray
picom
polkit_gnome
pulseaudioFull
rnote
tldr
tmux
unrar
unzip
v4l-utils
vim
wget
xclip
xournalpp
(pkgs.writeShellScriptBin "unix" ''
set -u
DOTFILES="$HOME/.dotfiles"
ERRFILE=$(mktemp)
trap "rm -f '$ERRFILE'" EXIT
echo "Building NixOS..."
sudo nixos-rebuild switch --flake "$DOTFILES#thinkpad" 2>&1 | tee "$ERRFILE"
STATUS=''${PIPESTATUS[0]}
if [ "$STATUS" -ne 0 ]; then
PATTERN=$(find "$DOTFILES" -type f -name "*.nix" -printf "%f\n" | sort -u | tr '\n' '|' | sed 's/|$//')
MATCHES=$(grep -E "$PATTERN" "$ERRFILE" | sort -u)
if [ -n "$MATCHES" ]; then
printf '\nErrors in repo files:\n%s\n' "$MATCHES"
fi
exit 1
fi
GEN=$(readlink /nix/var/nix/profiles/system | sed 's/system-\([0-9]*\)-link/\1/')
VER=$(nixos-version)
TIMESTAMP=$(date '+%Y-%m-%d %H:%M')
cd "$DOTFILES"
if [ -z "$(${pkgs.git}/bin/git status --porcelain)" ]; then
echo "Generation $GEN active — no config changes to commit."
exit 0
fi
${pkgs.git}/bin/git add -A
${pkgs.git}/bin/git commit -m "nixos: gen $GEN @ $(hostname) — $TIMESTAMP
$VER"
${pkgs.git}/bin/git push
'')
];
programs.firefox.enable = true;
programs.thunar.enable = true;
# Optional: Binary cache for pre-built Niri binaries to save build time
nix.settings = {
substituters = [ "https://niri.cachix.org" ];
trusted-public-keys = [ "niri.cachix.org-1:W3MxdgwBhbNEJHBLAjjkd24hwyLrxVwurqi23v4YBoxs=" ];
};
}