{ pkgs, lib, ... }: { # Desktop environment - Niri compositor programs.niri.enable = true; # Default session services.displayManager.defaultSession = "niri"; services.xserver.xkb = { layout = "cz"; options = "eurosign:e,caps:escape"; }; # Polkit fix for Niri security.polkit.enable = true; systemd.user.services.niri-flake-polkit.enable = false; systemd.user.services.polkit-gnome-authentication-agent-1 = { description = "polkit-gnome-authentication-agent-1"; wantedBy = ["graphical-session.target"]; wants = ["graphical-session.target"]; after = ["graphical-session.target"]; serviceConfig = { Type = "simple"; ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; Restart = "on-failure"; RestartSec = 1; TimeoutStopSec = 10; }; }; # Audio - Pipewire programs.noisetorch.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; environment.systemPackages = with pkgs; [ playerctl pulsemixer ]; # XDG portals xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-cosmic ]; xdg.portal.config.common.default = [ "gnome" ]; # Fonts nixpkgs.config.packageOverrides = pkgs: { google-fonts = pkgs.google-fonts.overrideAttrs (oldAttrs: { src = pkgs.fetchFromGitHub { owner = "google"; repo = "fonts"; rev = "0bd2d5599819aa0774f5ca64c8ac3f54ae3fd54f"; sha256 = "sha256-E89GYJKG65Dh7TPI6TVre/4LCxXnxvTAPYS/OPj7nPg="; }; installPhase = oldAttrs.installPhase + "mv $out/share/fonts/truetype $out/share/fonts/ttf\n" + "rm $out/share/fonts/ttf/Noto*Emoji*.ttf"; }); }; fonts = { packages = with pkgs; [ nerd-fonts.fira-code nerd-fonts.departure-mono google-fonts noto-fonts-color-emoji montserrat atkinson-hyperlegible arkpandora_ttf liberation_ttf caladea carlito garamond-libre ocr-a amiri libertine inter b612 departure-mono yasashisa-gothic ]; fontDir.enable = true; }; # Stylix configuration - Gruvbox Dark Hard stylix = { enable = true; polarity = "dark"; base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; fonts = { serif = { package = pkgs.libertine; name = "Linux Libertine O"; }; sansSerif = { package = pkgs.atkinson-hyperlegible; name = "Atkinson Hyperlegible"; }; monospace = { package = pkgs.nerd-fonts.departure-mono; name = "Departure Mono Nerd Font"; }; emoji = { package = pkgs.noto-fonts-color-emoji; name = "Noto Color Emoji"; }; }; }; # Flatpak & misc services services.flatpak.enable = true; services.illum.enable = true; services.upower.enable = true; }