From 26b6e53956832071003037d9b6ba3d204f501bf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vili=20Sinerv=C3=A4?= Date: Sat, 20 Jul 2024 15:45:30 +0300 Subject: [PATCH] Symlink home folder confs, incl. dark mode --- desktop.nix | 56 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/desktop.nix b/desktop.nix index b06e166..18628de 100644 --- a/desktop.nix +++ b/desktop.nix @@ -109,9 +109,55 @@ in platformTheme = "gnome"; }; - environment.etc = { - "gtk-2.0/gtkrc".source = ./program-config-files/gtkrc-2.0; - "gtk-3.0/settings.ini".source = ./program-config-files/gtk-3-4-settings.ini; - "gtk-4.0/settings.ini".source = ./program-config-files/gtk-3-4-settings.ini; - }; + system.userActivationScripts.mkDesktopSettingsSymlinks.text = + let + home = "/home/vili/"; + paths = [ + rec { + dir = "${home}.config/pcmanfm/default/"; + file = "pcmanfm.conf"; + full = "${dir}${file}"; + source = "${./program-config-files/pcmanfm.conf}"; + } + rec { + dir = "${home}.config/libfm/"; + file = "libfm.conf"; + full = "${dir}${file}"; + source = "${./program-config-files/libfm.conf}"; + } + rec { + dir = "${home}.config/gtk-3.0/"; + file = "bookmarks"; + full = "${dir}${file}"; + source = "${./program-config-files/gtk-bookmarks}"; + } + rec { + dir = "${home}"; + file = ".gtkrc-2.0"; + full = "${dir}${file}"; + source = "${./program-config-files/gtkrc-2.0}"; + } + rec { + dir = "${home}.config/gtk-3.0/"; + file = "settings.ini"; + full = "${dir}${file}"; + source = "${./program-config-files/gtk-3-4-settings.ini}"; + } + rec { + dir = "${home}.config/gtk-4.0/"; + file = "settings.ini"; + full = "${dir}${file}"; + source = "${./program-config-files/gtk-3-4-settings.ini}"; + } + ]; + in + toString ( + map (path: '' + mkdir -p ${path.dir} + if test -e ${path.full} -a ! -L ${path.full}; then + mv -f ${path.full} ${path.full}.old + fi + ln -sf ${path.source} ${path.full} + '') paths + ); }