feat: uwsm integration and hyprland worktime saver keybinds

- Replace SDDM with greetd+tuigreet (VT1) using uwsm-managed Hyprland
- Remove legacy exec-once from hyprland.conf
- Create 6 systemd user services: hyprpaper, waybar, dunst, hypridle,
  hyprlauncher, cliphist (all WantedBy=graphical-session.target)
- Add worktime saver keybinds: fullscreen, float, cycle windows,
  scratchpad, reload config, browser, keybind menu
- Home row navigation: HJKL for focus, move, resize (SUPER+ALT)
- Replace wofi with hyprlauncher (first-party, uwsm app prefix)
- Add hyprlauncher config with finders: desktop, math, unicode, font
- New ansible role templates: systemd/user services
- Documentation: hyprland-uwsm.md, cheatsheet.txt

KDE Wallet -> Bitwarden migration deferred (extract script prepared)
This commit is contained in:
ja
2026-05-20 16:02:53 +02:00
parent 9d06a71f71
commit 1fcb467c04
10 changed files with 238 additions and 10 deletions
+70
View File
@@ -0,0 +1,70 @@
# Hyprland Configuration - uwsm Integration
## Architecture
Session management uses **UWSM** (Universal Wayland Session Manager) wrapping Hyprland in systemd user services.
```
greetd → tuigreet → uwsm start → systemd user session → Hyprland
systemd units: hyprpaper, waybar, dunst, hypridle, hyprlauncher, cliphist
XDG autostart: Nextcloud, JetBrains Toolbox, Flameshot, etc.
```
## Session Services
All session services are managed via systemd user units (`~/.config/systemd/user/*.service`):
| Service | Purpose | Status |
|---------|---------|--------|
| `hyprpaper.service` | Wallpaper daemon | active |
| `waybar.service` | Status bar | active |
| `dunst.service` | Notification daemon | active |
| `hypridle.service` | Idle/screenlock control | active |
| `hyprlauncher.service` | App launcher daemon | active |
| `cliphist.service` | Clipboard history store | active |
### Management Commands
```bash
# Check all session services
systemctl --user list-units | grep -E 'hypr|waybar|dunst|cliphist'
# Restart a specific service
systemctl --user restart waybar.service
# View logs
journalctl --user -u waybar.service -f
```
## Launchers
| Component | Tool | Keybind |
|-----------|------|---------|
| App Launcher | hyprlauncher | SUPER+D |
| Keybind Menu | hyprlauncher -o (piped) | SUPER+CTRL+K |
hypr launcher config: `~/.config/hypr/hyprlauncher.conf`
- `desktop_launch_prefix = uwsm app --` (proper systemd scoping)
- Cache enabled for frequency-based sorting
- Finders: desktop (default), math (=), unicode (.), font (')
## Login Manager
**greetd** with **tuigreet** on VT 1.
Config: `/etc/greetd/config.toml`
Default command: `tuigreet --time --remember --asterisks --cmd 'uwsm start -e -D Hyprland hyprland.desktop'`
## Key Categories
| Category | Modifier | Keys | Action |
|----------|----------|------|--------|
| Focus | SUPER | H/J/K/L, Arrows | Move focus |
| Move Window | SUPER+SHIFT | H/J/K/L, Arrows | Move window |
| Resize Window | SUPER+ALT | H/J/K/L | Resize active window |
| Windows | SUPER | F, SPACE, TAB, `, P, J | Window actions |
| Apps | SUPER | Q, B, E, D | Launch apps |
| Workspaces | SUPER | 1-9 | Switch/move workspaces |
| Lock | SUPER+CTRL | L | Lock screen |
See `~/.config/hypr/cheatsheet.txt` for the full reference.