aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-04-10 12:13:24 +0200
committerNatasha Moongrave <natasha@256phi.eu>2026-04-10 12:13:24 +0200
commit0f4f072b317bafad7016dcb9fdb3a4dd593d7f85 (patch)
tree00c27ce036e6cadf5baf863998b192249d2228b1
parenta414126dbda913dcc33d5f9546a9f99859d1557f (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.nix4
-rw-r--r--home/rices/schrottkatze/home.nix43
-rw-r--r--home/rices/schrottkatze/stylix.nix23
-rw-r--r--home/rices/schrottkatze/system.nix121
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;
+}