forked from Shinonome/alt-illogical-impulse
157 lines
4.4 KiB
Nix
157 lines
4.4 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.kdialog
|
|
kdePackages.qtwayland # For Wayland support
|
|
kdePackages.qtpositioning # For Weather service location features
|
|
kdePackages.qtlocation # Additional location services for QtPositioning
|
|
|
|
# KDE components for bluetooth and network management
|
|
kdePackages.kcmutils # Provides kcmshell6
|
|
kdePackages.kde-cli-tools # KDE CLI tools
|
|
kdePackages.bluez-qt # Bluetooth QML module
|
|
kdePackages.bluedevil # KDE bluetooth manager
|
|
kdePackages.plasma-nm # KDE network manager
|
|
kdePackages.kconfig # KDE config module
|
|
kdePackages.kirigami # KDE UI framework
|
|
|
|
# Wrapper scripts for KDE tools with proper QML paths
|
|
(pkgs.writeShellScriptBin "kcmshell6-bluetooth" ''
|
|
export QML2_IMPORT_PATH="${pkgs.kdePackages.bluez-qt}/lib/qt-6/qml:${pkgs.kdePackages.bluedevil}/lib/qt-6/qml:${pkgs.kdePackages.plasma-nm}/lib/qt-6/qml:${pkgs.kdePackages.kconfig}/lib/qt-6/qml:${pkgs.kdePackages.kirigami}/lib/qt-6/qml"
|
|
exec ${pkgs.kdePackages.kcmutils}/bin/kcmshell6 kcm_bluetooth
|
|
'')
|
|
(pkgs.writeShellScriptBin "kcmshell6-network" ''
|
|
export QML2_IMPORT_PATH="${pkgs.kdePackages.plasma-nm}/lib/qt-6/qml:${pkgs.kdePackages.kconfig}/lib/qt-6/qml:${pkgs.kdePackages.kirigami}/lib/qt-6/qml"
|
|
exec ${pkgs.kdePackages.kcmutils}/bin/kcmshell6 kcm_networkmanagement
|
|
'')
|
|
];
|
|
|
|
# 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);
|
|
}
|