1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# schrottkatze
NixOS rice built on **Niri** (Wayland compositor) with **Gruvbox Dark Hard** theming.

## 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.
|