docs(cpugov): drop stale walker and pkexec references
walker is gone, so it no longer switches profiles out of band; the remaining sources are powerprofilesctl and D-Bus clients. cpugov never raised an auth prompt: ppd's polkit policy allows switch-profile for the active session.
This commit is contained in:
1 parent
bad576881b
commit
56552962b5
3 files changed
+4
-4
No files matched your search
@@ -106,7 +106,7 @@ quickshell is the **default bar and notification daemon**, started by `quickshel
|
||||
- **Popouts by keybind:** registered popouts are addressable by name through the `PopoutRouter` singleton, which exposes an `IpcHandler { target: "popout" }` with `toggle`/`open`/`close`. A niri keybind fires `qs -c moonarch ipc call popout toggle <name>` (e.g. `Mod+A` → `audio`, in `defaults/xdg/niri/config.kdl`). The router routes to the focused monitor's `PopoutState` via `Niri.activeOutput` (workspace `is_focused` → `output`, matched against `screen.name`); an open popout grabs the keyboard (Escape closes). Names: `audio backlight network bluetooth nightlight cpugov battery notifications media launcher camera calendar clipboard power`. Tray is not keybind-addressable.
|
||||
|
||||
- **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.
|
||||
- **No exception for auth prompts.** A popout action that raises a pkexec or keyring prompt (camera, batsaver, VPN) loses the focus to it and therefore closes the popout; the resulting state shows on the next open. cpugov raises none: ppd's polkit policy allows `switch-profile` for the active session, so `powerprofilesctl set` runs without a prompt. 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` 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.
|
||||
|
||||
@@ -9,7 +9,7 @@ PopoutPanel {
|
||||
title: qsTr("CPU Governor")
|
||||
panelWidth: 200
|
||||
|
||||
// Reflect an out-of-band switch (walker menu) whenever the popout becomes the shown one.
|
||||
// Reflect an out-of-band switch (terminal, D-Bus client) whenever the popout becomes the shown one.
|
||||
readonly property bool shown: root.popouts && root.popouts.hasCurrent
|
||||
onShownChanged: if (root.shown)
|
||||
CpuGovService.refresh()
|
||||
|
||||
@@ -26,8 +26,8 @@ Singleton {
|
||||
stateProc.running = true;
|
||||
}
|
||||
|
||||
// The profile changes via apply() (→ instant refresh), the walker menu, or a program holding a profile
|
||||
// over D-Bus. powerprofilesctl has no watch subcommand, so poll as a slow fallback for those.
|
||||
// The profile changes via apply() (→ instant refresh), powerprofilesctl from a terminal, or a program
|
||||
// holding a profile over D-Bus. powerprofilesctl has no watch subcommand, so poll as a slow fallback for those.
|
||||
Timer {
|
||||
interval: 60000
|
||||
running: true
|
||||
|
||||
Reference in new issue
Block a user