Made noctalia plugin settings mutable

This commit is contained in:
2026-04-10 13:49:13 +01:00
parent 8bc8cfeb7c
commit ac37790efd
+16 -24
View File
@@ -15,30 +15,16 @@
makeNoctaliaEntries = plugin: let makeNoctaliaEntries = plugin: let
pluginSource = ./dotfiles/dot_config/noctalia/plugins-repo + "/${plugin}"; pluginSource = ./dotfiles/dot_config/noctalia/plugins-repo + "/${plugin}";
settingsFile = ./dotfiles/dot_config/noctalia/plugins-settings + "/${plugin}/settings.json"; in {
hasSettings = builtins.pathExists settingsFile; name = "noctalia-plugin-${plugin}";
in value = {
[ source = pluginSource;
{ target = ".config/noctalia/plugins/${plugin}";
name = "noctalia-plugin-${plugin}"; recursive = true;
value = { };
source = pluginSource; };
target = ".config/noctalia/plugins/${plugin}";
recursive = true;
};
}
]
++ lib.optionals hasSettings [
{
name = "noctalia-settings-${plugin}";
value = {
source = settingsFile;
target = ".config/noctalia/plugins/${plugin}/settings.json";
};
}
];
noctaliaPluginFiles = builtins.listToAttrs (builtins.concatMap makeNoctaliaEntries noctaliaPlugins); noctaliaPluginFiles = builtins.listToAttrs (map makeNoctaliaEntries noctaliaPlugins);
in { in {
home.file = home.file =
{ {
@@ -80,7 +66,7 @@ in {
! ( ! (
(lib.hasInfix "/plugins/" name) (lib.hasInfix "/plugins/" name)
|| (lib.hasInfix "/plugins-repo/" name) || (lib.hasInfix "/plugins-repo/" name)
|| (lib.hasInfix "/plugins-settings/" name) # || (lib.hasInfix "/plugins-settings/" name)
); );
}; };
target = ".config/noctalia"; target = ".config/noctalia";
@@ -108,6 +94,12 @@ in {
} }
// noctaliaPluginFiles; // noctaliaPluginFiles;
# Move across noctalia plugin settings as a writable overlay
home.activation.overlayNoctaliaSettings = lib.hm.dag.entryAfter ["writeBoundary"] ''
mkdir -p "$HOME/.config/noctalia/plugins"
cp -rL --no-preserve=mode "$HOME/.config/noctalia/plugins-settings/"* "$HOME/.config/noctalia/plugins/"
'';
xdg.configFile = { xdg.configFile = {
"bat".source = ./dotfiles/dot_config/bat; "bat".source = ./dotfiles/dot_config/bat;
"path.env".source = ./dotfiles/dot_config/path.env; "path.env".source = ./dotfiles/dot_config/path.env;