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:
@@ -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.
|
||||
Reference in New Issue
Block a user