aboutsummaryrefslogtreecommitdiff
path: root/home/rices/schrottkatze/README.md
blob: 9442c65ae09ba8de90ac4204d3ea93c420c08101 (plain)
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.

![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.