feat: add disable option to monitor rule

This commit is contained in:
DreamMaoMao 2026-06-27 16:45:57 +08:00
parent 2f77be7e69
commit 171d859cb5
3 changed files with 19 additions and 2 deletions

View file

@ -601,6 +601,7 @@ struct Monitor {
bool vrr_global_enable;
bool is_vrr_opening;
bool hdr_enable;
bool prefer_disable;
};
typedef struct {
@ -3469,6 +3470,7 @@ void createmon(struct wl_listener *listener, void *data) {
m->is_vrr_opening = false;
m->hdr_enable = false;
m->prefer_disable = false;
m->wlr_output = wlr_output;
m->wlr_output->data = m;
@ -3508,6 +3510,7 @@ void createmon(struct wl_listener *listener, void *data) {
scale = r->scale;
rr = r->rr;
m->hdr_enable = r->hdr;
m->prefer_disable = r->disable >= 0 ? r->disable : 0;
if (apply_rule_to_state(m, r, &m->pending, vrr, custom)) {
custom_monitor_mode = true;
@ -3526,7 +3529,11 @@ void createmon(struct wl_listener *listener, void *data) {
LISTEN(&wlr_output->events.request_state, &m->request_state,
requestmonstate);
wlr_output_state_set_enabled(&m->pending, 1);
if (m->prefer_disable) {
wlr_output_state_set_enabled(&m->pending, false);
} else {
wlr_output_state_set_enabled(&m->pending, true);
}
if (m->hdr_enable) {
output_state_setup_hdr(m, false, &m->pending);