From 22c2b92aee0ba1ef15b36816176f9648a7dd03ac Mon Sep 17 00:00:00 2001 From: nevaforget <> Date: Mon, 14 Sep 2026 09:05:19 +0200 Subject: [PATCH] chore(packages): drop walker, elephant, waybar and swaync walker-bin and the nine elephant providers were uninstalled on 2026-09-11; the lists still carried them, so moonup reported them as missing on every run and offered to reinstall them. quickshell's launcher and ClipboardPopout had already taken over the two modes that were in use. waybar, swaync and the two waybar-niri modules go with them. They were kept as a reserve bar when quickshell became the default in July; the reserve is no longer intact anyway, because two of its modules dispatch through walker as a dmenu. Not touched: defaults/xdg/{waybar,swaync,walker}/, walker.service, the waybar helper scripts and the Alt+W toggle. moonarch-waybar-updates has to stay regardless of its name -- UpdatesIndicator.qml calls it. --- CLAUDE.md | 5 +++-- packages/aur.txt | 12 ------------ packages/official.txt | 2 -- 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 0f01363..6fad7ce 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -105,7 +105,8 @@ quickshell is the **default bar and notification daemon**, spawned by niri as `q - **Close on focus loss:** an open popout folds up as soon as the focus leaves it. Three signals, all of them needed: (1) the host surface losing the keyboard — `PopoutHost` reads Qt's `Window.active`, since Quickshell's `PanelWindow` exposes no focus state of its own; this is the only signal that catches a focus grab by another *layer surface*. (2) niri focusing an actual window (`Niri.focusedWindowId >= 0`). The `>= 0` matters: niri sets window focus to **none** while the popout holds the keyboard (`Window focus changed: None` on the event stream), so reacting to every change would make each open close itself. (3) The focused workspace changing (`Niri.focusedWorkspaceId`) — workspace ids are unique across outputs, so this covers a monitor switch as well; a workspace switch does not necessarily take the keyboard off the popout, which is why (1) does not subsume it. `PopoutHost.sawFocus` gates the first `Window.active == false`, which arrives in the gap between mapping the surface and the compositor handing focus over. - **No exception for auth prompts.** A popout action that raises a pkexec or keyring prompt (camera, cpugov, batsaver, VPN) loses the focus to it and therefore closes the popout; the resulting state shows on the next open. That is a deliberate choice for one rule over a special case — the `OnDemand` keyboard focus in `PopoutHost` still exists so such a prompt can become typeable at all. -- **Launcher:** `Launcher.qml` is the first widget in the left cluster (an apps glyph) and owns `LauncherPopout.qml` — an application launcher over `DesktopEntries.applications` (search field + keyboard-navigable icon+name list; ↑/↓ select, Enter/click launch, Esc close; app icons via `Quickshell.iconPath`). It registers under `launcher` (so it is IPC-addressable) and is bound to `Mod+Space` (`qs -c moonarch ipc call popout toggle launcher`, in `config.kdl`) in addition to icon-click. Scope is app-launch (drun) only; `walker` stays installed and keeps the other modes (run-command, calc, files), but has no keybind of its own left — what still calls it is dmenu duty for the Waybar-reserve scripts (`moonarch-sink-switcher`, `moonarch-cpugov`, `moonarch-vpn`), which is why the package cannot be dropped. +- **Launcher:** `Launcher.qml` is the first widget in the left cluster (an apps glyph) and owns `LauncherPopout.qml` — an application launcher over `DesktopEntries.applications` (search field + keyboard-navigable icon+name list; ↑/↓ select, Enter/click launch, Esc close; app icons via `Quickshell.iconPath`). It registers under `launcher` (so it is IPC-addressable) and is bound to `Mod+Space` (`qs -c moonarch ipc call popout toggle launcher`, in `config.kdl`) in addition to icon-click. Scope is app-launch (drun) only. + - **`walker` is gone.** It and the whole `elephant` provider set were uninstalled on 2026-09-11, and `packages/aur.txt` followed on 2026-09-14. The launcher and `ClipboardPopout` had already taken over its two used modes. What did not follow it out: `defaults/xdg/walker/` (config + 20 theme files, still installed by the PKGBUILD and seeded into homes by `moonarch.install`), `defaults/etc/systemd/user/walker.service`, and the three dmenu scripts `moonarch-sink-switcher`, `moonarch-cpugov`, `moonarch-vpn`, which still shell out to `walker` and therefore do nothing. Waybar's `on-click` for the audio and cpugov modules points at the first two, so **those two Waybar modules are dead** while Waybar is the reserve bar. Porting them to `fuzzel`/`wofi` or dropping them is open. - **Launching goes through `app2unit`, a hard dependency.** `entry.execute()` spawns the app as a child of quickshell, and a child inherits its parent's cgroup — so every launched app lands inside `quickshell.service` and systemd kills it along with the unit whenever the bar restarts. `app2unit` wraps `systemd-run` and hands each app its own transient `app-*.scope`, the same shape niri gives the windows it spawns itself. It is an **external AUR package** (`app2unit`), not a systemd builtin: `Quickshell.execDetached` fails silently on a missing binary, so without it the launcher looks alive and starts nothing, with no trace in the quickshell log. `NetworkPopout.qml` uses it for `nm-connection-editor` for the same reason. NixOS carries it in the system environment, which is why the switch went unnoticed there. - **`Terminal=true` entries need a second package.** They go through `app2unit-term`, which hardcodes `A2U__TERMINAL_HANDLER=xdg-terminal-exec` and calls `check_terminal_handler()` before launching: a missing binary is `error "Terminal launch requested but 'xdg-terminal-exec' is unavailable!"` + `exit 1`, with no fallback to `$TERMINAL`. So `xdg-terminal-exec` (AUR) is as hard a dependency as `app2unit` itself, for terminal entries only — the failure is partial and therefore easy to miss: GUI apps keep launching while every terminal entry does nothing. @@ -143,7 +144,7 @@ The video player is `mpv` with [ModernZ](https://github.com/Samillion/ModernZ) a Diagnostic script that checks the system state against moonarch defaults: - Packages (official.txt + aur.txt installed? Orphans?) - System services (NetworkManager, bluetooth, greetd, ufw, power-profiles-daemon, etc.) -- User services (kanshi, wlsunset, stasis, walker, nautilus, cliphist-text, cliphist-image) +- User services (kanshi, wlsunset, stasis, nautilus, cliphist-text, cliphist-image) - Config files (SHA256 comparison deployed vs. moonarch default) - Helper scripts + symlinks (moonup, moondoc) - System config (UFW, pacman/paru repos, default shell) diff --git a/packages/aur.txt b/packages/aur.txt index a6b8dd2..b5efac2 100644 --- a/packages/aur.txt +++ b/packages/aur.txt @@ -21,18 +21,6 @@ kvantum-theme-catppuccin-git otf-openmoji # Niri / Wayland Extras -walker-bin -elephant-desktopapplications-bin -elephant-clipboard-bin -elephant-bluetooth-bin -elephant-calc-bin -elephant-runner-bin -elephant-files-bin -elephant-providerlist-bin -elephant-niriactions-bin -elephant-wireplumber-bin -waybar-niri-windows-bin -waybar-niri-workspaces-enhanced-git wdisplays-persistent-gettext wl-color-picker diff --git a/packages/official.txt b/packages/official.txt index 4b19bd2..226a990 100644 --- a/packages/official.txt +++ b/packages/official.txt @@ -59,9 +59,7 @@ kanshi xwayland-satellite # Desktop Utilities -waybar quickshell -swaync cliphist wl-clipboard wlsunset