{ pkgs, user ? "xenia", hyprland, ... }: { imports = [ ./desktop.nix hyprland.nixosModules.default ]; environment.systemPackages = with pkgs; [ libsForQt5.polkit-kde-agent xdg-utils wlr-randr hyprpaper pipewire wireplumber wtype wl-clipboard grim slurp swayimg pamixer pavucontrol playerctl brightnessctl ]; security.pam.services.swaylock = { }; services = { blueman.enable = true; gvfs.enable = true; tumbler.enable = true; greetd = { enable = true; settings = { default_session = { inherit user; command = "Hyprland"; }; initial_session = { inherit user; command = "Hyprland"; }; }; }; }; fonts = { packages = with pkgs; [ # normal fonts noto-fonts noto-fonts-cjk noto-fonts-emoji font-awesome # nerdfonts (nerdfonts.override { fonts = [ "FiraCode" ]; }) # icon fonts material-symbols emacs-all-the-icons-fonts material-design-icons weather-icons vscode-extensions.file-icons.file-icons ]; fontconfig = { enable = true; # user defined fonts # the reason there's Noto Color Emoji everywhere is to override DejaVu's # B&W emojis that would sometimes show instead of some Color emojis defaultFonts = { serif = [ "Noto Serif" "Noto Color Emoji" ]; sansSerif = [ "Noto Sans" "Noto Color Emoji" ]; monospace = [ "FiraCode Nerd Font" "Noto Sans" "Noto Color Emoji" ]; emoji = [ "Noto Color Emoji" ]; }; }; }; xdg = { portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; }; mimeApps = { enable = true; defaultApplications = { "image/jpeg" = [ "swayimg.desktop" ]; "image/png" = [ "swayimg.desktop" ]; }; associations.added = { "image/jpeg" = [ "swayimg.desktop" ]; "image/png" = [ "swayimg.desktop" ]; }; }; }; programs = { hyprland = { enable = true; package = hyprland.packages.${pkgs.system}.hyprland; xwayland.enable = true; }; thunar = { enable = true; plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ]; }; }; }