mirror of
https://github.com/cage-kiosk/cage.git
synced 2026-07-02 00:06:10 -04:00
cage: add support for wlr-output-power-management
This implements the zwlr_output_power_management_v1 protocol, which allow clients such as swayidle to toggle display power state. Outputs are intentionally not removed per the discussion in #245. A dpms_powered_off flag is tracked on each output to prevent a DPMS "on" request from re-enabling an output that was disabled via wlr-output-management rather than DPMS. The protocol generation/dep additions is heavily inspired by swaywm Fixes #245
This commit is contained in:
parent
79e1e0dfaa
commit
7e44e3c832
7 changed files with 199 additions and 1 deletions
10
cage.c
10
cage.c
|
|
@ -518,6 +518,15 @@ main(int argc, char *argv[])
|
|||
server.output_manager_test.notify = handle_output_manager_test;
|
||||
wl_signal_add(&server.output_manager_v1->events.test, &server.output_manager_test);
|
||||
|
||||
server.output_power_manager_v1 = wlr_output_power_manager_v1_create(server.wl_display);
|
||||
if (!server.output_power_manager_v1) {
|
||||
wlr_log(WLR_ERROR, "Unable to create the output power manager");
|
||||
ret = 1;
|
||||
goto end;
|
||||
}
|
||||
server.output_power_manager_set_mode.notify = handle_output_power_manager_set_mode;
|
||||
wl_signal_add(&server.output_power_manager_v1->events.set_mode, &server.output_power_manager_set_mode);
|
||||
|
||||
#if WLR_HAS_DRM_BACKEND
|
||||
server.drm_lease_v1 = wlr_drm_lease_v1_manager_create(server.wl_display, server.backend);
|
||||
if (server.drm_lease_v1) {
|
||||
|
|
@ -662,6 +671,7 @@ main(int argc, char *argv[])
|
|||
wl_list_remove(&server.new_idle_inhibitor_v1.link);
|
||||
wl_list_remove(&server.new_output.link);
|
||||
wl_list_remove(&server.output_layout_change.link);
|
||||
wl_list_remove(&server.output_power_manager_set_mode.link);
|
||||
|
||||
end:
|
||||
if (pid != 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue