Files
illogical-impulse/modules/desktop/desktop.nix
T
2025-08-11 15:32:25 -05:00

220 lines
5.4 KiB
Nix

{
config,
lib,
inputs,
pkgs,
...
}: let
inherit
(lib)
mkIf
mkMerge
mkDefault
mkOption
types
;
cfg = config.programs.illogical-impulse;
in {
options = {
programs.illogical-impulse = {
enable = mkOption {
type = types.bool;
default = true;
description = ''
Enables Hyprland and quickshell.
'';
};
};
};
config = mkIf cfg.enable {
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
environment.etc."skel/.config/quickshell" = {
source = builtins.path {path = ../../../.config/quickshell;};
};
environment.etc."skel/.local/share/OneUI" = {
source = inputs.oneUI;
};
environment.etc."skel/.config/hypr" = {
source = builtins.path {path = ../../../.config/hypr;};
};
environment.etc."skel/.config/matugen" = {
source = builtins.path {path = ../../../.config/matugen;};
};
environment.etc."skel/.config/foot" = {
source = builtins.path {path = ../../../.config/foot;};
};
environment.etc."skel/.config/kitty" = {
source = builtins.path {path = ../../../.config/kitty;};
};
environment.etc."skel/.config/qt5ct" = {
source = builtins.path {path = ../../../.config/qt5ct;};
};
environment.etc."skel/.config/qt6ct" = {
source = builtins.path {path = ../../../.config/qt6ct;};
};
environment.etc."skel/.config/wlogout" = {
source = builtins.path {path = ../../../.config/wlogout;};
};
environment.etc."skel/.config/Kvantum" = {
source = builtins.path {path = ../../../.config/Kvantum;};
};
environment.systemPackages = with pkgs;
[
inputs.illogical-impulse.legacyPackages.${pkgs.system}.iiShellConfig
inputs.illogical-impulse.legacyPackages.${pkgs.system}.iiOneUI4Icons
inputs.illogical-impulse.legacyPackages.${pkgs.system}.quickshellWithQT
inputs.matugen.packages.${pkgs.system}.default
inputs.hyprland.packages.${pkgs.system}.default
]
++
# --- Illogical Impulse Audio Dependencies ---
[
cava
pavucontrol
wireplumber
libdbusmenu-gtk3
playerctl
]
# --- Illogical Impulse Backlight Dependencies ---
++ [
geoclue2 # FIXME
brightnessctl
ddcutil
]
# --- Illogical Impulse Basic Dependencies ---
++ [
axel
bc
coreutils
cliphist
cmake
curl
rsync
wget
ripgrep
jq
meson
xdg-user-dirs
]
# --- Illogical Impulse Bibata Dependencies ---
++ [
bibata-cursors
]
# --- Illogical Impulse Fonts and Theming Dependencies ---
++ [
# adw-gtk-theme-git
# breeze
# breeze-plus
# darkly-bin
adw-gtk3 #FIXME
darkly
eza
foot
fish
fontconfig
# kde-material-you-colors
kitty
# matugen.packages.${pkgs.system}.default
# otf-space-grotesk
starship
# ttf-gabarito-git
nerd-fonts.jetbrains-mono
# ttf-material-symbols-variable-git
# ttf-readex-pro
# ttf-rubik-vf
# ttf-twemoji
]
# --- Illogical Impulse Hyprland Dependencies ---
++ [
# hyprland.packages.${pkgs.system}.default
hypridle
hyprcursor
hyprlang
hyprlock
hyprpicker
hyprsunset
hyprutils
hyprwayland-scanner
wl-clipboard
]
# --- Illogical Impulse KDE Dependencies ---
++ [
kdePackages.bluedevil
gnome-keyring
networkmanager
kdePackages.plasma-nm
kdePackages.polkit-kde-agent-1
kdePackages.dolphin
kdePackages.systemsettings
]
# TODO
# Microtex
++ [
]
# --- Illogical Impulse OneUI Dependencies ---
++ [
]
# --- Illogical Impulse XDG Portal Dependencies ---
++ [
xdg-desktop-portal
kdePackages.xdg-desktop-portal-kde
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
]
# --- Illogical Impulse Python Dependencies ---
++ [
clang
uv
gtk4
libadwaita
libsoup_3
libportal-gtk4
gobject-introspection
sassc
python3Packages.opencv-python
]
# --- Illogical Impulse Screencapture Dependencies ---
++ [
hyprshot
slurp
swappy
tesseract
# tesseract-data-eng
wf-recorder
]
# --- Illogical Impulse GTK/Qt Dependencies ---
++ [
kdePackages.kdialog
# qt6-5compat
# qt6-avif-image-plugin
# qt6-base
# qt6-declarative
# qt6-imageformats
# qt6-multimedia
# qt6-positioning
# qt6-quicktimeline
# qt6-sensors
# qt6-svg
# qt6-tools
# qt6-translations
# qt6-virtualkeyboard
# qt6-wayland
upower
wtype
ydotool
]
# --- Illogical Impulse Widget Dependencies ---
++ [
fuzzel
# glib2
translate-shell
wlogout
];
};
}