Draw idle as one timeline, and let the power button answer to its owner

Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
Gabriel Brown
2026-08-24 20:33:44 -04:00
parent 6f0ce639d9
commit e1ff25fc66
23 changed files with 2655 additions and 174 deletions
@@ -1253,6 +1253,27 @@ Singleton {
detail: "On battery, sleeping is what makes the charge last"
},
// ── Power button ────────────────────────────────────────────────────
// logind is told to ignore the power key -- config/copy ships the
// drop-in -- so what a press does is the compositor's decision rather
// than the system's, and changing it needs no root.
//
// No `hypr` block: this is not a compositor option, it is read by
// config/dot/hypr/keybinds.lua the way the workspace rules are. The
// bind evaluates it AT PRESS TIME rather than at config time, so a
// change here applies to the very next press and no reload is needed.
{
key: "powerButtonAction", type: "enum", def: "menu", group: "power",
label: "Pressing the power button",
detail: "The system ignores the key; Panama decides — so a bumped button never yanks the plug",
options: [
{ value: "menu", label: "Shows the power menu" },
{ value: "suspend", label: "Suspends" },
{ value: "poweroff", label: "Powers off (two-press)" },
{ value: "nothing", label: "Does nothing" }
]
},
// ── Night light schedule ────────────────────────────────────────────
// Hours as decimals, so 17.5 is half past five. Wrapping past midnight
// is normal here and is what the shipped values do: on at 17:00, off at