diff --git a/defaults/user-configuration/fhauser/applications/default.nix b/defaults/user-configuration/fhauser/applications/default.nix index a87be1b..a666491 100644 --- a/defaults/user-configuration/fhauser/applications/default.nix +++ b/defaults/user-configuration/fhauser/applications/default.nix @@ -20,58 +20,86 @@ ./swaylock.nix ./kanshi.nix ]; - home-manager.users.fhauser.home.packages = with pkgs; - [ # Networking - unison - transmission # GUI Tools, maybe extract... - ] ++ [ # Desktop Environment Applications - google-chrome - chromium - #midori # TODO: Currently unused - #qutebrowser # TODO: Currently unused - gnome3.evolution # TODO: Suport for plugins with 21.05 - #evolution-ews - synergy - #quicksynergy # Currently unused - nextcloud-client - owncloud-client - ] ++ [ # office # TODO: Migrate to office.nix - # TODO: Build fails! - libreoffice-fresh # TODO: Dictionaries, nixos/nixpkgs#14430 - # pdfgrep - # pdftk - # calibre - tectonic - # texstudio - # pandoc - # system-config-printer - # cups-pk-helper - # cups-bjnp - # gutenprint - # gutenprintBin - # hplipWithPlugin - simple-scan - gnome3.gnome-online-accounts - gnome3.gnome-control-center - ] ++ [ # Communication - signal-desktop - tdesktop - discord - mattermost-desktop - # pidgin pidgin-otr pidgin-with-plugins #TODO: Pidgin needed? - #TODO: ekiga? - skype - slack - teams - jitsi-meet-electron - teamviewer - rdesktop - vmware-horizon-client - ] ++ [ # Development - vscodium - gitlab-runner - docker-compose - vagrant - virt-manager - ]; + home-manager.users.fhauser = {config, pkgs, ...}: { + home = { + packages = with pkgs; + [ # Networking + unison + transmission # GUI Tools, maybe extract... + ] ++ [ # Desktop Environment Applications + google-chrome + chromium + #midori # TODO: Currently unused + #qutebrowser # TODO: Currently unused + synergy + #quicksynergy # Currently unused + nextcloud-client + owncloud-client + ] ++ [ # office # TODO: Migrate to office.nix + # TODO: Build fails! + libreoffice-fresh # TODO: Dictionaries, nixos/nixpkgs#14430 + # pdfgrep + # pdftk + # calibre + tectonic + # texstudio + # pandoc + # system-config-printer + # cups-pk-helper + # cups-bjnp + # gutenprint + # gutenprintBin + # hplipWithPlugin + simple-scan + gnome.gnome-online-accounts + gnome.gnome-control-center + ] ++ [ # Communication + signal-desktop + tdesktop + discord + mattermost-desktop + # pidgin pidgin-otr pidgin-with-plugins #TODO: Pidgin needed? + #TODO: ekiga? + skype + slack + teams + jitsi-meet-electron + teamviewer + rdesktop + vmware-horizon-client + ] ++ [ # Development + vscodium + gitlab-runner + docker-compose + vagrant + 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 + ''; + }; + }; }