Add stateful configuration

This commit is contained in:
Fabian Hauser 2021-06-06 14:27:16 +02:00
parent b8488c2ada
commit d3b9277ca3

View file

@ -20,7 +20,9 @@
./swaylock.nix ./swaylock.nix
./kanshi.nix ./kanshi.nix
]; ];
home-manager.users.fhauser.home.packages = with pkgs; home-manager.users.fhauser = {config, pkgs, ...}: {
home = {
packages = with pkgs;
[ # Networking [ # Networking
unison unison
transmission # GUI Tools, maybe extract... transmission # GUI Tools, maybe extract...
@ -29,8 +31,6 @@
chromium chromium
#midori # TODO: Currently unused #midori # TODO: Currently unused
#qutebrowser # TODO: Currently unused #qutebrowser # TODO: Currently unused
gnome3.evolution # TODO: Suport for plugins with 21.05
#evolution-ews
synergy synergy
#quicksynergy # Currently unused #quicksynergy # Currently unused
nextcloud-client nextcloud-client
@ -51,8 +51,8 @@
# gutenprintBin # gutenprintBin
# hplipWithPlugin # hplipWithPlugin
simple-scan simple-scan
gnome3.gnome-online-accounts gnome.gnome-online-accounts
gnome3.gnome-control-center gnome.gnome-control-center
] ++ [ # Communication ] ++ [ # Communication
signal-desktop signal-desktop
tdesktop tdesktop
@ -73,5 +73,33 @@
docker-compose docker-compose
vagrant vagrant
virt-manager virt-manager
modemmanager # TODO: makes sense here?
modem-manager-gui
]; ];
#TODO: Write module
activation.statefulConfigSymlinks = config.lib.dag.entryAfter ["writeBoundary"] ''
set -eo pipefail
STATEFUL_CONFS=(
".config/spotify"
".mozilla"
".password-store"
)
for STATEFUL_CONF in ''${STATEFUL_CONFS[@]}; do
if [ -e "$STATEFUL_CONF" ] && [ ! -h "$STATEFUL_CONF" ]; then
echo "File $STATEFUL_CONF already exists, exiting!" >&2
exit 1
fi
if [ -h "$STATEFUL_CONF" ]; then
rm "$STATEFUL_CONF"
fi
$DRY_RUN_CMD ln -s $VERBOSE_ARG "$HOME/.stateful/$STATEFUL_CONF" "$HOME/$STATEFUL_CONF"
done
'';
};
};
} }