# schrottkatze NixOS rice built on **Niri** (Wayland compositor) with **Gruvbox Dark Hard** theming. ![wallpaper](niri/wallpaper.jpg) ## Stack | Component | Choice | |-----------|--------| | Compositor | [Niri](https://github.com/YaLTeR/niri) (Wayland) | | Terminal | Kitty (+ Alacritty backup) | | Bar | [Eww](https://github.com/elkowar/eww) (top + bottom) | | Launcher | Fuzzel | | Editor | Helix | | Browser | Firefox (hardened, Tridactyl) | | Notifications | Dunst | | Lock Screen | Swaylock + Swayidle | | Theme Engine | [Stylix](https://github.com/danth/stylix) | ## Features - **Gruvbox Dark Hard** palette applied system-wide via Stylix - **Gradient window borders** — pink-to-cyan active, pink-to-orange inactive - **Custom GLSL window open animation** (`arc.frag` shader) - **Eww bars** with CPU/RAM/battery monitors, systray, workspace indicators, Mullvad VPN status - **Decorative pride flag overlays** on both bars - **Privacy-hardened Firefox** — telemetry disabled, HTTPS-only, fingerprinting resistance, uBlock Origin - **Screen capture blocking** for sensitive apps (Signal, Element, Discord) - **Vim-style keybindings** throughout (hjkl navigation in Niri) - **Czech keyboard layout** with Caps→Escape remap - **Xwayland support** via `xwayland-satellite` ## Fonts | Role | Font | |------|------| | Monospace | Departure Mono Nerd Font | | Sans-serif | Atkinson Hyperlegible | | Serif | Linux Libertine O | | Emoji | Noto Color Emoji | ## Structure ``` . ├── default.nix # Entry point — imports system + home ├── system.nix # System-level config (Niri, Pipewire, Stylix, fonts) ├── home.nix # Home Manager config (packages, GPG agent) ├── browser.nix # Firefox setup, extensions, search engines ├── terminal.nix # Kitty config ├── notifications.nix # Dunst config ├── fuzzel.nix # Launcher config ├── eww.nix # Bar config ├── niri.nix # Niri compositor config (KDL generation) ├── stylix.nix # Theme overrides ├── swayidle.nix # Lock screen integration ├── niri/ │ ├── wallpaper.jpg │ ├── arc.frag # Window open animation shader │ └── kdl/ # Niri config modules │ ├── binds.kdl # Keybindings │ ├── style.kdl # Window styling │ ├── input.kdl # Keyboard/mouse/touchpad │ ├── quirks.kdl # Per-app window rules │ ├── privacy.kdl # Screen capture blocks │ └── ... └── eww/ └── configDir/ # Eww bar widgets, scripts, CSS ``` ## Key Bindings | Bind | Action | |------|--------| | `Mod+Return` | Kitty | | `Mod+D` | Fuzzel launcher | | `Mod+N` | Firefox | | `Mod+E` | Edit Niri config | | `Mod+M` | Color picker | | `Mod+I` | Emoji picker | | `Mod+hjkl` | Focus window (vim dirs) | | `Mod+Shift+hjkl` | Move window | | `Mod+1-9` | Switch workspace | ## Search Engines (Firefox) Kagi (default), DuckDuckGo, Nix Packages, Nix Options, Home Manager Options, NixOS Wiki, Noogle, lib.rs, Rust docs, MDN.