Files
alt-illogical-impulse/packages/dots-hyprland-packages.nix
T
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

137 lines
3.3 KiB
Nix

# Package mappings from dots-hyprland meta-packages to nixpkgs
# Direct mapping from PKGBUILD files in arch-packages/
{ lib, pkgs }:
let
# Import utility packages
utilityPackages = import ./default.nix { inherit pkgs; };
# illogical-impulse-basic PKGBUILD
basicPackages = with pkgs; [
axel
bc
coreutils
cliphist
cmake
curl
rsync
wget
ripgrep
jq
meson
xdg-user-dirs
];
# illogical-impulse-widgets PKGBUILD
widgetPackages = with pkgs; [
fuzzel
glib # for gsettings
gsettings-desktop-schemas # GNOME schemas for non-GNOME environments
hypridle
hyprutils
hyprlock
hyprpicker
networkmanagerapplet # nm-connection-editor
quickshell # Provided by quickshell flake input via overlay
translate-shell
wlogout
# Qt modules needed for quickshell widgets
kdePackages.qt5compat # For Qt5Compat.GraphicalEffects
kdePackages.qtdeclarative # For QML
kdePackages.qtwayland # For Wayland support
kdePackages.qtpositioning # For Weather service location features
kdePackages.qtlocation # Additional location services for QtPositioning
];
# illogical-impulse-hyprland PKGBUILD
hyprlandPackages = with pkgs; [
hypridle
hyprcursor
hyprland
hyprland-qtutils
# hyprland-qt-support -> might be in hyprland-qtutils
hyprlang
hyprlock
hyprpicker
hyprsunset
hyprutils
hyprwayland-scanner
xdg-desktop-portal-hyprland
wl-clipboard
];
# illogical-impulse-python PKGBUILD (system dependencies)
pythonSystemPackages = with pkgs; [
clang
# uv -> not needed in NixOS approach, we use pip directly
gtk4
libadwaita
libsoup_3 # libsoup3
libportal-gtk4
gobject-introspection
sassc
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
audioPackages = with pkgs; [
pipewire
wireplumber
pavucontrol
playerctl
];
# Font packages (from installer analysis)
fontPackages = with pkgs; [
# Rubik font (installer sets this as default)
# Note: might need to add custom font derivation
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
font-awesome
material-design-icons
nerd-fonts.jetbrains-mono
nerd-fonts.fira-code
];
# Theme and appearance packages
themePackages = with pkgs; [
matugen # for Material You color generation
# Additional theme packages as needed
];
in
{
inherit
basicPackages
widgetPackages
hyprlandPackages
pythonSystemPackages
audioPackages
fontPackages
themePackages;
# Combined package sets for different use cases
essentialPackages = basicPackages ++ widgetPackages ++ hyprlandPackages ++
(builtins.attrValues utilityPackages);
allPackages = basicPackages ++ widgetPackages ++ hyprlandPackages ++
pythonSystemPackages ++ audioPackages ++ fontPackages ++ themePackages ++
(builtins.attrValues utilityPackages);
# Minimal set for testing
minimalPackages = basicPackages ++ widgetPackages ++ (builtins.attrValues utilityPackages);
}