server-desktop-01/docs/window-manager/progress.md

92 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Window Manager Migration — Progress Log
Running log of decisions, actions, and findings as we migrate from GNOME to Hyprland on Fedora 43.
## 2026-04-17 — Decision + planning
**Decision: Hyprland + DankMaterialShell (DMS).**
Considered:
- **Sway** — most stable; already installed as fallback. Rejected as *primary* because community momentum has shifted to Hyprland/Niri, and user wants eye candy.
- **Niri** — too new for a "stable enough for daily use" pick.
- **Hyprland** — chosen. Mature enough for daily use, active community, the default people will be learning in 2028.
Shell:
- **DMS** chosen over **Noctalia**. Reasoning: first-party Fedora COPR, `dms setup` replaces waybar + swaylock + swayidle + mako + fuzzel + polkit in one package, lowest config burden for a new user. Noctalia is equally healthy but its plugin model and patched Quickshell fork add papercuts while still learning Hyprland itself. Revisit later.
GNOME and Sway stay installed as GDM fallback sessions.
**Hardware detected:**
- Fedora 43, kernel 6.19.11-200.fc43.x86_64
- GPU: AMD Radeon Vega (Cezanne APU, primary) + NVIDIA RTX 3060 (discrete, unused for display)
- Only `nvidia-gpu-firmware` installed — no proprietary NVIDIA driver. Hyprland will run on the AMD path (the easy one). `prime-run` for dGPU later if needed.
**Research (summarized from agents):**
- Hyprland install path on Fedora: `solopasha/hyprland` COPR (not yet in official repos as of Jan 2026 knowledge cutoff — verify at install time).
- DMS install path: `avengemedia/dms` COPR. Latest release 1.4.4 (2026-03-21).
- Noctalia latest release 4.7.6 (2026-04-15) — noted for future reference.
- Starter config reference: `mylinuxforwork/hyprland-starter` — minimal and readable, not adopted wholesale.
- Chose dwindle layout (Hyprland default, BSPWM-style).
- Terminal: kitty primary, foot installed as lightweight backup.
- Launcher: fuzzel (native Wayland, keyboard-first). DMS spotlight also available.
**Docs created:**
- `idea.md` — original notes.
- `plan.md` — step-by-step install plan in phases 04, deferred items in phase 5.
- `cheatsheet.md` — keybindings reference.
- `progress.md` — this file.
**Next:** work through `plan.md` Phase 0 → Phase 4. Append dated entries here as each phase completes.
---
## Template for future entries
```
## YYYY-MM-DD — <phase or topic>
- What happened.
- Anything that didn't go as the plan said — correction applied.
- Decisions made that weren't in the plan.
```
## 2026-04-17 — Starting state
- Fedora: Fedora release 43 (Forty Three)
- Kernel: 6.19.11-200.fc43.x86_64
- Session: wayland / GNOME
- Installed Wayland sessions: gnome-classic.desktop gnome-classic-wayland.desktop gnome.desktop gnome-wayland.desktop sway.desktop
- GPU:
01:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] (rev a1)
08:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev c9)
## 2026-04-17 — Phase 0 complete
- Enabled RPM Fusion free, solopasha/hyprland COPR, avengemedia/dms COPR (+ danklinux dep repo)
- Available versions verified: hyprland 0.51.1, dms 1.4.4, hyprlock 0.9.2, hypridle 0.1.7, hyprpaper 0.7.6, hyprpolkitagent 0.1.3, xdg-desktop-portal-hyprland 1.3.11, kitty 0.43.1, fuzzel 1.14.0, foot 1.25.0
- Noted: nonfree-nvidia-driver repo is already enabled on this system (pre-existing), but we are NOT installing akmod-nvidia
- systems-admin initialized as local-only git repo; initial docs commit 7714c6e
## 2026-04-17 — Phase 1 dependency detour
- solopasha's hyprpolkitagent currently broken on Fedora 43: its dep hyprland-qt-support was built against Qt 6.9 but updates now ship Qt 6.10.3.
- Workaround: installing lxpolkit instead (GTK, no Qt dep). Autostart line changed to 'exec-once = lxpolkit'.
- Revisit hyprpolkitagent once solopasha rebuilds against Qt 6.10.
- 2026-04-18: Installed DMS v1.4.4
## 2026-04-18 — Phase 2 + Phase 3 complete
- Created ~/.config/hypr/hyprland.conf; `hyprland --verify-config` reported "config ok"
- Using lxpolkit in autostart (not hyprpolkitagent — see Phase 1 detour)
- Created ~/.config/hypr/hyprpaper.conf; hyprpaper added to autostart; ~/Pictures/wallpapers/ created (drop default.jpg there before first login)
- Moved hypr config into ~/.dotfiles/hypr stow package; symlink verified; committed 60f57df to dotfiles repo
- DMS config will be added to stow after confirming dms setup output is stable (per plan note)
## 2026-04-19 — Phase 4: windowrule syntax fix
- On first Hyprland login: config errors on all windowrule lines — "Invalid rulev2 found: match:class ^(...)$"
- Root cause: `^(...)$` wrapping was the old windowrulev2 regex format; Hyprland 0.51 explicitly rejects it even with the new `windowrule` keyword. Correct 0.51 syntax uses plain names or bare regexes with no outer grouping parens.
- Fixed all windowrule and layerrule patterns in hyprland.conf (stripped `^(...)$`; kept `^org\.gnome\.` prefix anchor without outer group).
- Updated docs: CLAUDE.md, docs/hyprland/version-history.md, docs/hyprland/window-rules.md all corrected to show actual 0.51 syntax.
- Noted: solopasha COPR still at 0.51.1 for Fedora 43; upstream latest is 0.54.0. Upgrade deferred until COPR catches up.