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,58 +20,86 @@
./swaylock.nix ./swaylock.nix
./kanshi.nix ./kanshi.nix
]; ];
home-manager.users.fhauser.home.packages = with pkgs; home-manager.users.fhauser = {config, pkgs, ...}: {
[ # Networking home = {
unison packages = with pkgs;
transmission # GUI Tools, maybe extract... [ # Networking
] ++ [ # Desktop Environment Applications unison
google-chrome transmission # GUI Tools, maybe extract...
chromium ] ++ [ # Desktop Environment Applications
#midori # TODO: Currently unused google-chrome
#qutebrowser # TODO: Currently unused chromium
gnome3.evolution # TODO: Suport for plugins with 21.05 #midori # TODO: Currently unused
#evolution-ews #qutebrowser # TODO: Currently unused
synergy synergy
#quicksynergy # Currently unused #quicksynergy # Currently unused
nextcloud-client nextcloud-client
owncloud-client owncloud-client
] ++ [ # office # TODO: Migrate to office.nix ] ++ [ # office # TODO: Migrate to office.nix
# TODO: Build fails! # TODO: Build fails!
libreoffice-fresh # TODO: Dictionaries, nixos/nixpkgs#14430 libreoffice-fresh # TODO: Dictionaries, nixos/nixpkgs#14430
# pdfgrep # pdfgrep
# pdftk # pdftk
# calibre # calibre
tectonic tectonic
# texstudio # texstudio
# pandoc # pandoc
# system-config-printer # system-config-printer
# cups-pk-helper # cups-pk-helper
# cups-bjnp # cups-bjnp
# gutenprint # gutenprint
# 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
discord discord
mattermost-desktop mattermost-desktop
# pidgin pidgin-otr pidgin-with-plugins #TODO: Pidgin needed? # pidgin pidgin-otr pidgin-with-plugins #TODO: Pidgin needed?
#TODO: ekiga? #TODO: ekiga?
skype skype
slack slack
teams teams
jitsi-meet-electron jitsi-meet-electron
teamviewer teamviewer
rdesktop rdesktop
vmware-horizon-client vmware-horizon-client
] ++ [ # Development ] ++ [ # Development
vscodium vscodium
gitlab-runner gitlab-runner
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
'';
};
};
} }