Power settings do not recognize BOS bos-dpms wrapper listeners #85

Open
opened 2026-10-14 18:22:09 +08:00 by Breadway · 1 comment
Owner

How found: independent review of Breadway/bos PR88 at ea390fd0400a58803f92df948def89e8050c4b1a. Confidence: high, reproduced with the unmodified parsing/rendering functions fetched from bos-settings main (file blob 77227fe5bc).

The proposed BOS skel uses on-timeout = ~/.local/bin/bos-dpms off and on-resume = ~/.local/bin/bos-dpms on. src/src/commands/power_settings.rs:119-150 only migrates legacy dispatch and exactly matches the inline eval string. Reading this skel returns None for screen_off (UI reports 0). Saving disabled leaves the 480s wrapper listener active; saving 900s preserves the 480s listener and appends a second inline eval listener. This regresses the user-visible disable/change capability.

Reproduction: extracted actual main functions into an isolated Rust harness with regex, supplied PR88 exact skel text, ran cargo run --offline. Output: screen_off read: None; disabled keeps wrapper: true; 900s save keeps 480s wrapper: true; inline added: true.

Required: recognize wrapper and old inline/legacy forms without duplicate listeners, preserve wrapper on save, test initial 480s read, disable removes it, changing timeout updates one listener, resume and after_sleep stay compatible. Integrate this prerequisite before BOS PR88 ships, or retain compatible skel commands there. Related BOS-87; proposed wrapper not yet merged.

How found: independent review of Breadway/bos PR88 at ea390fd0400a58803f92df948def89e8050c4b1a. Confidence: high, reproduced with the unmodified parsing/rendering functions fetched from bos-settings main (file blob 77227fe5bc5b67a3aa7978393c82d158d08a4cba). The proposed BOS skel uses on-timeout = ~/.local/bin/bos-dpms off and on-resume = ~/.local/bin/bos-dpms on. src/src/commands/power_settings.rs:119-150 only migrates legacy dispatch and exactly matches the inline eval string. Reading this skel returns None for screen_off (UI reports 0). Saving disabled leaves the 480s wrapper listener active; saving 900s preserves the 480s listener and appends a second inline eval listener. This regresses the user-visible disable/change capability. Reproduction: extracted actual main functions into an isolated Rust harness with regex, supplied PR88 exact skel text, ran cargo run --offline. Output: screen_off read: None; disabled keeps wrapper: true; 900s save keeps 480s wrapper: true; inline added: true. Required: recognize wrapper and old inline/legacy forms without duplicate listeners, preserve wrapper on save, test initial 480s read, disable removes it, changing timeout updates one listener, resume and after_sleep stay compatible. Integrate this prerequisite before BOS PR88 ships, or retain compatible skel commands there. Related BOS-87; proposed wrapper not yet merged.
Author
Owner

No longer reproducible on current main. The bos-dpms wrapper this card describes was introduced in bos ea390fd and reverted the same day in 280c531 (on origin/main). The revert message names this exact failure: the wrapper was not recognized, so screen-off read as 0, disabling kept the listener, and changing the timeout added a duplicate. Skel hypridle.conf is back to the inline hyprctl eval "hl.dispatch(hl.dsp.dpms({ action = 'off' }))" form, which power_settings.rs matches exactly (DPMS_OFF), and no open bos PR reintroduces the wrapper.

Closing as done because the defect was removed at the source rather than by a parser change. If a wrapper is proposed again, the parser requirement in this card still applies before it ships.

No longer reproducible on current main. The bos-dpms wrapper this card describes was introduced in bos ea390fd and reverted the same day in 280c531 (on origin/main). The revert message names this exact failure: the wrapper was not recognized, so screen-off read as 0, disabling kept the listener, and changing the timeout added a duplicate. Skel hypridle.conf is back to the inline `hyprctl eval "hl.dispatch(hl.dsp.dpms({ action = 'off' }))"` form, which power_settings.rs matches exactly (DPMS_OFF), and no open bos PR reintroduces the wrapper. Closing as done because the defect was removed at the source rather than by a parser change. If a wrapper is proposed again, the parser requirement in this card still applies before it ships.
Breadway reopened this issue 2026-10-20 15:14:42 +08:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/bos-settings#85
No description provided.