Add complete configuration override system

 NEW FEATURE: Complete file override capability

🎯 Problem Solved:
- No more mixed configuration approaches causing broken symlinks
- Clean separation: either rich config OR manual override
- Complete control over configuration files

🔧 New Options:
- overrides.hyprlandConf: Complete hyprland.conf override
- overrides.quickshellConfig: Complete Config.qml override
- overrides.footConfig: Complete foot.ini override
- overrides.hyprDirectory: Complete directory override
- overrides.quickshellDirectory: Complete directory override

🛡️ Safety Features:
- Warnings when overrides conflict with rich config
- Rich config modules respect override settings
- No file mixing - one approach per file

 Use Cases:
- Manual configuration: Set overrides.hyprlandConf
- Rich NixOS config: Use hyprland.* options
- Directory copy: Use overrides.hyprDirectory
- Never mix approaches on same file!
This commit is contained in:
Celes Renata
2025-08-08 23:59:41 -07:00
parent 9821e69f5c
commit 666700409a
5 changed files with 122 additions and 6 deletions
+2 -2
View File
@@ -208,8 +208,8 @@ in
};
};
config = mkIf config.programs.dots-hyprland.enable {
# Generate the Config.qml file with NixOS-managed values
config = mkIf (config.programs.dots-hyprland.enable && config.programs.dots-hyprland.overrides.quickshellConfig == null) {
# Only generate if no manual override is set
xdg.configFile."quickshell/ii/modules/common/Config.qml".text = ''
pragma Singleton
pragma ComponentBehavior: Bound