From d3f25441353c3b55a3df3b12b34bf5afdecbe89f Mon Sep 17 00:00:00 2001 From: Jacob Schantli Date: Wed, 4 Nov 2026 21:18:14 -0700 Subject: [PATCH] Update README.md --- README.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c9527ea..475c093 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,8 @@ Press **Super+Shift+/** after logging in to see every keybind. | Audio | PipeWire, WirePlumber, SOF firmware | | Hardware | Bluetooth, `tuned-ppd` power profiles, `fwupd` firmware updates | | Desktop | niri, DankMaterialShell, `xwayland-satellite` | -| niri config | Waybar disabled (DMS is the bar), Super+T opens Ptyxis, Super+D opens the DMS launcher, Super+Alt+L locks with DMS | +| niri config | Waybar autostart disabled; DMS keybinds and Ptyxis added through an included `dms-setup.kdl` | +| Snapshots | snapper + Btrfs Assistant, with a before/after snapshot around every dnf transaction | | Removed | Waybar, mako, fuzzel, swaybg, swayidle, swaylock, Alacritty (DMS replaces them) | | Login screen | DMS greeter (greetd), graphical boot target | | Essentials | Ptyxis, Nautilus, Firefox, desktop portals, GNOME Keyring, Noto fonts, Flatpak + Flathub, fastfetch | @@ -62,6 +63,38 @@ on re-runs; any `~/.zshrc` that was already there is backed up to `~/.zshrc.bak` - Fingerprint reader setup (Framework laptops) - EasyEffects (for Framework's speaker profile) +## Keybinds added + +These live in `~/.config/niri/dms-setup.kdl`, included at the end of `config.kdl` so they +override niri's defaults. To change one, add your own bind in `config.kdl` **after** the +`include` line; the script overwrites `dms-setup.kdl` on re-runs. + +| Keys | Does | +| --- | --- | +| Super+T | Ptyxis | +| Super+D | DMS app launcher | +| Super+Alt+L | Lock screen | +| Super+Alt+V | Clipboard history | +| Super+Alt+N | Notifications | +| Super+Alt+C | Control centre | +| Super+Alt+S | DMS settings | + +## Snapshots and rollback + +On a Btrfs install (Fedora's default), the script sets up snapper: + +- Every `dnf` install, update or removal takes a **pre** and **post** snapshot of the root + filesystem. +- The finished setup is saved as an "important" snapshot called + `fedora-niri-dms-setup baseline`. +- The 10 newest snapshot pairs are kept and older ones are cleaned up automatically. + +To undo a bad update, open **Btrfs Assistant** → Snapper, pick the snapshot from before the +update, and restore it. From a terminal, `snapper -c root list` shows them all. + +Snapshots cover `dnf` only. Flatpak updates aren't captured, and booting straight into a +snapshot from GRUB would need `grub-btrfs`, which isn't in Fedora's repos. + ## Requirements - Fedora 43 or newer, installed as **Fedora Custom Operating System** @@ -99,6 +132,23 @@ rebooting: - No HDR yet: niri doesn't support it. HDR gaming needs a separate gamescope session. - DMS comes from the stable `avengemedia/dms` COPR, not the faster-moving `dms-git`. +## Development + +Every push and pull request runs `.gitea/workflows/shellcheck.yml`, which syntax-checks +and ShellChecks every `.sh` file in the repo. It needs Actions enabled on the repo +(Settings → Repository → Enable Repository Actions) and an `act_runner` registered with +the `ubuntu-latest` label. + +``` +fedora-niri-dms/ +├── fedora-niri-dms-setup.sh +├── README.md +├── LICENSE +└── .gitea/ + └── workflows/ + └── shellcheck.yml +``` + ## License MIT \ No newline at end of file