diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-04-10 12:13:24 +0200 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-04-10 12:13:24 +0200 |
| commit | 0f4f072b317bafad7016dcb9fdb3a4dd593d7f85 (patch) | |
| tree | 00c27ce036e6cadf5baf863998b192249d2228b1 | |
| parent | a414126dbda913dcc33d5f9546a9f99859d1557f (diff) | |
Add schrottkatze rice: core structure and stylix config
default.nix exports {system, home}, system.nix has Niri, GDM,
Gruvbox Dark Hard stylix, polkit, audio, fonts, XDG portals.
stylix.nix has HM-level target overrides, GTK cursor/icon theme.
| -rw-r--r-- | home/rices/schrottkatze/default.nix | 4 | ||||
| -rw-r--r-- | home/rices/schrottkatze/home.nix | 43 | ||||
| -rw-r--r-- | home/rices/schrottkatze/stylix.nix | 23 | ||||
| -rw-r--r-- | home/rices/schrottkatze/system.nix | 121 |
4 files changed, 191 insertions, 0 deletions
diff --git a/home/rices/schrottkatze/default.nix b/home/rices/schrottkatze/default.nix new file mode 100644 index 0000000..6b7865d --- /dev/null +++ b/home/rices/schrottkatze/default.nix @@ -0,0 +1,4 @@ +{ + system = import ./system.nix; + home = import ./home.nix; +} diff --git a/home/rices/schrottkatze/home.nix b/home/rices/schrottkatze/home.nix new file mode 100644 index 0000000..1a2b5f6 --- /dev/null +++ b/home/rices/schrottkatze/home.nix @@ -0,0 +1,43 @@ +{pkgs, ...}: { + imports = [ + ./terminal.nix + ./notifications.nix + ./fuzzel.nix + ./swayidle.nix + ./browser.nix + ./niri.nix + ./eww.nix + ./layaway.nix + ./stylix.nix + ]; + + programs.swaylock.enable = true; + services.network-manager-applet.enable = true; + xsession.enable = true; + + home.packages = with pkgs; [ + fluent-reader + obsidian + zsh + hyprpicker + bemoji + librsvg + cairo + xwayland-satellite + ]; + + services.gpg-agent = { + enable = true; + enableSshSupport = true; + }; + + fonts.fontconfig = { + enable = true; + defaultFonts = { + emoji = ["Noto Color Emoji"]; + monospace = []; + sansSerif = ["Atkinson Hyperlegible"]; + serif = []; + }; + }; +} diff --git a/home/rices/schrottkatze/stylix.nix b/home/rices/schrottkatze/stylix.nix new file mode 100644 index 0000000..a3eaeaa --- /dev/null +++ b/home/rices/schrottkatze/stylix.nix @@ -0,0 +1,23 @@ +{pkgs, ...}: { + stylix.targets = { + helix.enable = false; + btop.enable = false; + nushell.enable = false; + starship.enable = false; + kitty.enable = false; + dunst.enable = false; + wofi.enable = false; + }; + gtk = { + enable = true; + cursorTheme = { + package = pkgs.phinger-cursors; + name = "phinger-cursors"; + size = 30; + }; + iconTheme = { + package = pkgs.gruvbox-dark-icons-gtk; + name = "gruvbox-dark-icons"; + }; + }; +} diff --git a/home/rices/schrottkatze/system.nix b/home/rices/schrottkatze/system.nix new file mode 100644 index 0000000..d72d02c --- /dev/null +++ b/home/rices/schrottkatze/system.nix @@ -0,0 +1,121 @@ +{pkgs, lib, ...}: { + # Desktop environment - Niri compositor + programs.niri.enable = true; + + # Display manager - GDM + services.displayManager = { + gdm = { + enable = true; + banner = "Meow :3"; + }; + defaultSession = "niri"; + }; + + # 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; +} |
