Files
nix/modules/nixos/desktop-hyprland.nix
2026-04-22 19:58:50 +02:00

113 lines
2.5 KiB
Nix

{
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;
};
}