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.
This commit is contained in:
Celes Renata
2025-08-10 13:17:25 -07:00
parent 866a004fd2
commit 0321f75443
3 changed files with 22 additions and 6 deletions
+8 -6
View File
@@ -81,6 +81,12 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
# Enable Python environment for color generation
programs.dots-hyprland.python = {
enable = true;
autoSetup = true;
};
# Install packages based on selected set # Install packages based on selected set
home.packages = home.packages =
let let
@@ -90,12 +96,6 @@ in
else if cfg.packageSet == "essential" then packageSets.essentialPackages else if cfg.packageSet == "essential" then packageSets.essentialPackages
else packageSets.allPackages; else packageSets.allPackages;
# Enable Python virtual environment (CRITICAL for both modes)
programs.dots-hyprland.python = {
enable = true;
autoSetup = true;
};
# Enable configuration management based on mode # Enable configuration management based on mode
programs.dots-hyprland.configuration = mkIf (cfg.mode == "declarative" || cfg.mode == "hybrid") { programs.dots-hyprland.configuration = mkIf (cfg.mode == "declarative" || cfg.mode == "hybrid") {
enable = mkDefault (cfg.mode == "hybrid"); # Enable copying for hybrid mode enable = mkDefault (cfg.mode == "hybrid"); # Enable copying for hybrid mode
@@ -131,6 +131,8 @@ in
# Set critical environment variables (required for both modes) # Set critical environment variables (required for both modes)
home.sessionVariables = { home.sessionVariables = {
ILLOGICAL_IMPULSE_VIRTUAL_ENV = "$HOME/.local/state/quickshell/.venv"; ILLOGICAL_IMPULSE_VIRTUAL_ENV = "$HOME/.local/state/quickshell/.venv";
# Ensure GNOME schemas are available for gsettings
XDG_DATA_DIRS = "$XDG_DATA_DIRS:${pkgs.gsettings-desktop-schemas}/share";
}; };
# Ensure ~/.local/bin is in PATH for our working qs script # Ensure ~/.local/bin is in PATH for our working qs script
+1
View File
@@ -29,6 +29,7 @@ let
# Set up proper library path for Python packages (64-bit only) # Set up proper library path for Python packages (64-bit only)
export LD_LIBRARY_PATH="${lib.makeLibraryPath (with pkgs; [ export LD_LIBRARY_PATH="${lib.makeLibraryPath (with pkgs; [
stdenv.cc.cc.lib # provides libstdc++.so.6
gcc-unwrapped.lib gcc-unwrapped.lib
glibc glibc
zlib zlib
+13
View File
@@ -26,6 +26,7 @@ let
widgetPackages = with pkgs; [ widgetPackages = with pkgs; [
fuzzel fuzzel
glib # for gsettings glib # for gsettings
gsettings-desktop-schemas # GNOME schemas for non-GNOME environments
hypridle hypridle
hyprutils hyprutils
hyprlock hyprlock
@@ -71,6 +72,18 @@ let
gobject-introspection gobject-introspection
sassc sassc
opencv4 # python-opencv opencv4 # python-opencv
# Additional system libraries needed for Python packages
stdenv.cc.cc.lib # provides libstdc++.so.6
glibc
zlib
libffi
openssl
bzip2
xz
ncurses
readline
sqlite
]; ];
# Additional packages that might be needed # Additional packages that might be needed