{ pkgs, hostname, hostTypes, lib, ... }: { imports = # Desktop programs (exclude servers) lib.optionals (hostTypes.isLinuxDesktop hostname) [ ./ghostty/ghostty.nix ./rofi/rofi.nix ./hypr/hypridle.nix ./hypr/hyprland.nix ./hypr/hyprlock.nix ./hypr/theme.nix # ./hypr/waybar.nix ./hypr/waybar/waybar-ddubs-2.nix ./hypr/wlogout.nix ] # macOS programs ++ lib.optionals (hostTypes.isMacos hostname) [ ./ghostty/ghostty.nix ]; gtk = lib.mkIf (hostTypes.isLinuxDesktop hostname) { enable = true; gtk3.extraConfig.gtk-application-prefer-dark-theme = true; gtk4.extraConfig.gtk-application-prefer-dark-theme = true; }; qt = lib.mkIf (hostTypes.isLinuxDesktop hostname) { enable = true; platformTheme.name = "kde"; style.name = "breeze"; }; dconf = lib.mkIf (hostTypes.isLinuxDesktop hostname) { settings."org/gnome/desktop/interface".color-scheme = "prefer-dark"; }; home.packages = # Desktop packages (Linux desktops) lib.optionals (hostTypes.isLinuxDesktop hostname) (with pkgs; [ brightnessctl bambu-studio blender brave desmume gparted jellyfin-media-player kdePackages.bluedevil kdePackages.bluez-qt kdePackages.kate kdePackages.kdeconnect-kde kdePackages.oxygen-sounds kdePackages.partitionmanager kdePackages.isoimagewriter libreoffice-still librewolf localsend lutris-unwrapped meld melonDS moonlight-qt nestopia-ue nix-ld obsidian pandoc prismlauncher protonplus protonup-qt putty pwninit pwntools qFlipper r2modman remmina signal-desktop spice steam steamcmd swww tor-browser vesktop vlc wireshark yubikey-agent swaynotificationcenter # Hyprland Stuff hypridle hyprpolkitagent pyprland #uwsm hyprlang hyprshot hyprcursor mesa nwg-displays nwg-look waypaper waybar # waybar-weatherf hyprland-qt-support # rpi-imager ]) # Host-specific packages ++ lib.optionals (hostname == "eva-01") (with pkgs; [ calibre sdrangel sdrpp sonic-visualiser vscode ]) ++ lib.optionals (hostname == "eva-03") (with pkgs; [ pavucontrol streamcontroller openrazer-daemon polychromatic # vscode ]); services.swaync = lib.mkIf (hostTypes.isLinuxDesktop hostname) { enable = true; }; }