diff options
Diffstat (limited to 'home/rices/schrottkatze/system.nix')
| -rw-r--r-- | home/rices/schrottkatze/system.nix | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/home/rices/schrottkatze/system.nix b/home/rices/schrottkatze/system.nix new file mode 100644 index 0000000..13e1516 --- /dev/null +++ b/home/rices/schrottkatze/system.nix @@ -0,0 +1,123 @@ +{ + 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; +} |
