Add stateful configuration
This commit is contained in:
parent
b8488c2ada
commit
d3b9277ca3
1 changed files with 82 additions and 54 deletions
|
@ -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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue