Commit Graph

29 Commits

Author SHA1 Message Date
Celes Renata 98e2ffe352 fix: Disable foot config generation for dynamic transparency support
- Remove xdg.configFile foot/foot.ini generation from terminal-config.nix
- Allows external transparency systems (like Quickshell) to manage foot config
- Prevents static NixOS-managed foot config from overriding dynamic settings
- Fixes issue where foot terminals ignore transparency toggle changes

This enables proper dynamic transparency control without NixOS interference.
2025-08-10 22:32:05 -07:00
Celes Renata 8346398657 Fix /light and /dark commands: Add LD_LIBRARY_PATH to quickshell wrapper
- 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
2025-08-10 17:46:11 -07:00
Celes Renata b4f32209f5 Remove duplicate LD_LIBRARY_PATH from quickshell wrapper
- Remove LD_LIBRARY_PATH from quickshell wrapper in flake.nix
- python-environment.nix already sets LD_LIBRARY_PATH in sessionVariables
- Fixes conflict between two LD_LIBRARY_PATH definitions
- Ensures proper library path inheritance for Python virtual environment
2025-08-10 17:25:14 -07:00
Celes Renata 44a831cfb7 Fix NixOS Python environment: Add LD_LIBRARY_PATH to sessionVariables
- Add system libraries to LD_LIBRARY_PATH for Python virtual environment
- Includes libstdc++, glibc, zlib, libffi, openssl, bzip2, xz, ncurses, readline, sqlite
- Fixes 'libstdc++.so.6: cannot open shared object file' error in color generation
- Ensures all child processes inherit proper library paths
2025-08-10 17:12:48 -07:00
Celes Renata 6cdc9017fb modify quickshell-bin 2025-08-10 16:28:40 -07:00
Celes Renata db015cfb43 Remove ~/.local/bin/qs wrapper script, use quickshell directly
- Removed qs script creation from home-manager.nix activation
- Updated quickshell-reset.sh to not create qs script
- Updated comments to reflect direct quickshell usage
- Fixes exec-once timing issues by eliminating wrapper script
2025-08-10 16:22:00 -07:00
Celes Renata 2f3a5b85d6 add kdialog 2025-08-10 14:55:29 -07:00
Celes Renata a6247666d5 Fix Qt version mismatch by making quickshell follow our nixpkgs
- 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.
2025-08-10 14:23:41 -07:00
Celes Renata 6a11660704 Add environment variables to quickshell wrapper
- 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.
2025-08-10 14:14:33 -07:00
Celes Renata c90cc9427c Add matugen directory to backup handling
- 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.
2025-08-10 13:25:22 -07:00
Celes Renata 0321f75443 Fix Light mode selection in quickshell settings
- 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.
2025-08-10 13:17:25 -07:00
Celes Renata 866a004fd2 Fix quickshell overlay script name and add Qt positioning modules
- 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
2025-08-10 12:26:06 -07:00
Celes Renata c28d64fd23 Add QtLocation package for complete positioning support
- 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
2025-08-10 12:18:23 -07:00
Celes Renata 410e6083ea Add quickshell package to widgetPackages
- Include quickshell in the essential package set
- This ensures quickshell binary is available for the service to start
- Fixes missing quickshell binary issue
2025-08-10 11:56:39 -07:00
Celes Renata efae617d52 Add conflict handling for home-manager symlinks
- Handle conflicting symlinks for icons, konsole, and fish directories
- Backup existing directories before home-manager creates new ones
- Run conflict handling before linkGeneration phase
2025-08-10 11:47:18 -07:00
Celes Renata 5f15f5ed78 Fix quickshell wrapper using symlinkJoin
- 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
2025-08-09 23:39:33 -07:00
Celes Renata 1601f5c85f Fix quickshell Qt5Compat with proper wrapper script
- Replace complex overrideAttrs with simple wrapper script
- Directly set QML2_IMPORT_PATH to include Qt5Compat QML modules
- This ensures Qt5Compat.GraphicalEffects is always available
2025-08-09 23:36:02 -07:00
Celes Renata 9e5a394b54 Final fix for Qt5Compat QML import path
- 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
2025-08-09 23:28:53 -07:00
Celes Renata 60c9d69eba Fix Qt6 QML import path for Qt5Compat
- 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
2025-08-09 23:22:25 -07:00
Celes Renata 5b107bd118 Fix quickshell Qt5Compat dependency issue
- 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
2025-08-09 23:20:10 -07:00
Celes Renata dd19328008 Fix quickshell Config.qml conflict in hybrid mode
🐛 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!
2025-08-09 13:12:14 -07:00
Celes Renata 671df6cc66 Fix hybrid mode configuration conflict
🐛 BUG FIX: Resolve foot.ini conflict in hybrid mode

🎯 ISSUE:
- Rich terminal config was generating foot/foot.ini
- Configuration copying was also trying to copy foot/foot.ini
- Result: 'Error installing file outside $HOME' conflict

🔧 SOLUTION:
- Updated terminal-config.nix condition
- Only generate foot.ini when configuration copying is disabled
- Allows hybrid mode to work properly:
  - Hyprland: declarative (overrides)
  - Quickshell: copied files (complex QML)
  - Terminal: copied files (no conflict)

 RESULT:
- Hybrid mode should now build successfully
- No more file installation conflicts
- Best of both worlds: customizable + reliable
2025-08-09 13:10:32 -07:00
Celes Renata cd7e9840fe Add hybrid configuration mode as default
 NEW FEATURE: Hybrid Configuration Mode

🎯 HYBRID MODE (now default):
- Hyprland: Fully declarative (easy to customize inline)
- Quickshell: Copy QML files (complex structure, proven to work)
- Best of both worlds: customizable + reliable

🔧 IMPLEMENTATION:
- Added 'hybrid' to mode enum options
- Set hybrid as default mode
- Smart configuration copying logic:
  - copyMiscConfig = true (Quickshell QML files)
  - copyHyprlandConfig = false (use overrides instead)
  - copyFishConfig = true (fish shell config)

🎨 USER BENEFITS:
- Hyprland errors? Fix declaratively in home.nix
- Quickshell complex? Use proven copied files
- No more 'broken config dir?' issues
- Perfect for NixOS users who want control + reliability

Modes available:
- hybrid (default): Hyprland declarative + Quickshell copied
- declarative: Everything managed by Home Manager
- writable: Everything copied to ~/.config for editing
2025-08-09 13:05:43 -07:00
Celes Renata a13a9352ed Add touchegg configuration override support
 NEW FEATURE: Complete touchegg.conf override capability

🎯 Use Case:
- overrides.toucheggConf: Complete touchegg.conf override
- Allows custom gesture configuration
- Perfect for 3-finger click window dragging

🔧 Implementation:
- Added toucheggConf option to config-override.nix
- Generates complete touchegg.conf from override content
- Follows same pattern as other file overrides
2025-08-09 11:47:29 -07:00
Celes Renata 666700409a 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!
2025-08-08 23:59:41 -07:00
Celes Renata 9821e69f5c Implement rich NixOS configuration system
 COMPLETE: Full NixOS-style configuration system implemented

🎯 Features:
- Rich configuration options for Quickshell, Hyprland, and Terminal
- Type-safe NixOS module options with defaults and descriptions
- Generated configuration files from Nix expressions
- Example configurations (gaming, productivity, minimalist)
- Comprehensive documentation

🔧 Configuration Modules:
- modules/components/quickshell-config.nix - Quickshell options
- modules/components/hyprland-config.nix - Hyprland options
- modules/components/terminal-config.nix - Terminal options

📝 Example Usage:
programs.dots-hyprland = {
  quickshell.bar.utilButtons.showColorPicker = true;
  hyprland.general.gapsIn = 6;
  terminal.colors.alpha = 0.90;
};

🎨 Generated Files:
- ~/.config/quickshell/ii/modules/common/Config.qml (NixOS-managed)
- ~/.config/hypr/general.conf (NixOS-managed)
- ~/.config/foot/foot.ini (NixOS-managed)

 Tested: All configurations build and activate successfully
🎉 Ready for production use with full NixOS declarative configuration!
2025-08-08 23:10:33 -07:00
Celes Renata ac6d3adeb9 Make flake self-contained - consolidate installer-replication
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
2025-08-08 22:26:47 -07:00
Celes Renata 22b65891ac Unbitch flake.nix - extract shell scripts to separate files
- 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
2025-08-08 22:13:46 -07:00
Celes Renata 8011f1c842 Initial clean flake structure - Phase 3 complete 2025-08-08 22:05:41 -07:00