- Add LD_LIBRARY_PATH and ILLOGICAL_IMPULSE_VIRTUAL_ENV to quickshell service
- Set ProtectSystem=false to allow color generation scripts to write files
- Fix MaterialThemeLoader to properly detect file changes with onFileChanged
- Add switchwall-wrapper.sh to source environment variables dynamically
- Fix light/dark mode buttons to use Process with current wallpaper
- Add --choose flag to switchwall.sh for wallpaper selection dialog
- Add IPC commands 'dark' and 'light' for console theme switching
- Update keybinds: Ctrl+Super+T (choose), Ctrl+Super+Shift+T (random)
- Fix terminal color application in applycolor.sh
- Add LD_LIBRARY_PATH to quickshell wrapper for execDetached child processes
- Ensures /light and /dark commands have proper Python environment
- Child processes spawned by Quickshell.execDetached() now inherit system libraries
- Fixes 'No module named PIL' error when using search commands
- Make quickshell input follow our nixpkgs to ensure Qt version consistency
- Fixes 'Cannot mix incompatible Qt library (6.9.1) with this library (6.9.0)' error
- Resolves weather widget enable crashes due to Qt version conflicts
This ensures quickshell is built with the same Qt version (6.9.1) as our other
Qt packages, preventing runtime library incompatibility issues.
- Add ILLOGICAL_IMPULSE_VIRTUAL_ENV for Python virtual environment
- Add XDG_DATA_DIRS with gsettings-desktop-schemas for GNOME schemas
- Add LD_LIBRARY_PATH with all required system libraries
- This ensures Light mode selection works in quickshell settings
Fixes the issue where Light mode button was unresponsive due to missing
environment variables and library paths in the quickshell wrapper.
- Add matugen to writable-mode backup script directory list
- Add matugen conflict handling to Home Manager activation script
- Handle both symlinked and regular matugen directories
- Prevents activation failures due to existing matugen configs
This resolves the 'mkdir: cannot create directory' and 'ln: failed to create symbolic link'
errors that occur when ~/.config/matugen already exists during Home Manager activation.
- Add gsettings-desktop-schemas for GNOME schema support on non-GNOME systems
- Add libstdc++.so.6 support via stdenv.cc.cc.lib for Python packages
- Include all required system libraries for Python virtual environment
- Set XDG_DATA_DIRS to include GNOME schemas path
- Reorganize Python environment configuration for better clarity
This resolves the issue where Light mode couldn't be selected in the
quickshell settings menu due to missing dependencies and library linking issues.
- Change writeShellScriptBin from 'qs' to 'quickshell' to match package name
- Add QtPositioning and QtLocation to QML2_IMPORT_PATH in overlay
- This should resolve the circular reference and QtPositioning module issues
- Add kdePackages.qtlocation alongside qtpositioning
- This should resolve the 'module QtPositioning is not installed' error
- Ensures complete Qt location services for Weather and other services
- Include quickshell in the essential package set
- This ensures quickshell binary is available for the service to start
- Fixes missing quickshell binary issue
- Handle conflicting symlinks for icons, konsole, and fish directories
- Backup existing directories before home-manager creates new ones
- Run conflict handling before linkGeneration phase
- Use symlinkJoin with wrapProgram for proper binary wrapping
- This ensures the qs binary gets the QML2_IMPORT_PATH set correctly
- Should resolve the Qt5Compat.GraphicalEffects import issue permanently
- Replace complex overrideAttrs with simple wrapper script
- Directly set QML2_IMPORT_PATH to include Qt5Compat QML modules
- This ensures Qt5Compat.GraphicalEffects is always available
- Use QML2_IMPORT_PATH with correct path to qt5compat QML modules
- Simplified to just the essential path that works
- This resolves the Qt5Compat.GraphicalEffects import issue
- Use NIXPKGS_QT6_QML_IMPORT_PATH which is the correct variable for Qt6
- Add QT_PLUGIN_PATH for Qt5Compat plugins
- This should properly expose Qt5Compat.GraphicalEffects to quickshell
- Add qt6.qt5compat as build input to quickshell package
- Use wrapQtAppsHook for proper Qt module wrapping
- Set up QML import paths for Qt5Compat.GraphicalEffects
- This resolves the 'module Qt5Compat.GraphicalEffects is not installed' error
🐛 BUG FIX: Resolve Config.qml conflict in hybrid mode
🎯 ISSUE:
- Rich quickshell config was generating Config.qml
- Configuration copying was also trying to copy Config.qml
- Same conflict pattern as foot.ini
🔧 SOLUTION:
- Applied same fix to quickshell-config.nix
- Only generate Config.qml when configuration copying is disabled
- Prevents file installation conflicts
✅ HYBRID MODE SHOULD NOW WORK:
- Hyprland: declarative (overrides.hyprlandConf)
- Quickshell: copied files (complex QML structure)
- Terminal: copied files (foot.ini from source)
- No more configuration conflicts!
BREAKING CHANGE: Remove external dots-hyprland dependency
- Imported all essential configs from dots-hyprland/installer-replication
- Added complete configs/ directory with:
- hypr/ - Hyprland configuration
- quickshell/ - Quickshell widgets and config
- applications/ - Application configurations
- scripts/ - Utility scripts
- matugen/ - Material You theming
- Updated flake.nix to use local ./configs instead of external repo
- Simplified update-flake script (removed external repo management)
- Updated README to reflect self-contained architecture
- All builds pass with local configurations
Benefits:
- No external repository dependencies
- Faster builds (no network dependencies)
- Version controlled configs in single repo
- Easier maintenance and development
- Complete installer replication in one place
- Moved all inline shell scripts to packages/scripts/
- Created packages/default.nix for clean package definitions
- Reduced flake.nix from 400+ lines to ~80 lines
- Maintained all functionality while improving maintainability
- All builds and checks still pass