{ nixosModules, pkgs, ... }: { imports = [ nixosModules.packages.desktop nixosModules.packages.python ]; programs.dconf.enable = true; programs.hyprland = { enable = true; xwayland.enable = true; }; programs.thunar.enable = true; programs.thunderbird.enable = true; programs.xwayland.enable = true; hardware.graphics.enable = true; security.polkit.enable = true; security.rtkit.enable = true; services.displayManager.defaultSession = "hyprland"; services.displayManager.sddm = { enable = true; wayland.enable = true; }; security.pam.services.login.enableGnomeKeyring = true; security.pam.services.sddm.enableGnomeKeyring = true; services.gnome.gnome-keyring.enable = true; services.gvfs.enable = true; services.libinput.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; wireplumber.enable = true; extraConfig.pipewire."10-buffer-stability" = { context.properties = { # Favor playback stability over minimum latency when the system is busy. default.clock.rate = 48000; default.clock.quantum = 1024; default.clock.min-quantum = 1024; default.clock.max-quantum = 2048; }; }; }; services.tumbler.enable = true; services.udisks2.enable = true; xdg.portal = { enable = true; xdgOpenUsePortal = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-hyprland ]; }; fonts.packages = with pkgs; [ jetbrains-mono nerd-fonts.jetbrains-mono nerd-fonts.symbols-only noto-fonts noto-fonts-cjk-sans noto-fonts-color-emoji vista-fonts corefonts source-han-sans ]; fonts.fontconfig.defaultFonts = { monospace = [ "JetBrainsMono Nerd Font" "JetBrains Mono" ]; sansSerif = [ "Noto Sans" ]; serif = [ "Noto Serif" ]; emoji = [ "Noto Color Emoji" ]; }; systemd.user.services.hyprpolkitagent = { description = "Hyprland polkit agent"; wantedBy = [ "graphical-session.target" ]; after = [ "graphical-session.target" ]; partOf = [ "graphical-session.target" ]; serviceConfig = { ExecStart = "${pkgs.hyprpolkitagent}/bin/hyprpolkitagent"; Restart = "on-failure"; RestartSec = 1; }; }; systemd.user.services.pipewire.serviceConfig = { Nice = -15; CPUWeight = 90; IOWeight = 90; }; systemd.user.services.wireplumber.serviceConfig = { Nice = -10; CPUWeight = 80; IOWeight = 80; }; }