feat: add dispatch enable_monitor,disable_monitr,toggle_monitor

This commit is contained in:
DreamMaoMao
2025-10-30 13:30:02 +08:00
parent 181205df35
commit 27fdead702
4 changed files with 58 additions and 7 deletions

View File

@@ -66,4 +66,7 @@ int create_virtual_output(const Arg *arg);
int destroy_all_virtual_output(const Arg *arg);
int focuslast(const Arg *arg);
int toggle_trackpad_enable(const Arg *arg);
int setoption(const Arg *arg);
int setoption(const Arg *arg);
int disable_monitor(const Arg *arg);
int enable_monitor(const Arg *arg);
int toggle_monitor(const Arg *arg);

View File

@@ -1570,3 +1570,48 @@ int toggleoverview(const Arg *arg) {
refresh_monitors_workspaces_status(selmon);
return 0;
}
int disable_monitor(const Arg *arg) {
Monitor *m = NULL;
struct wlr_output_state state = {0};
wl_list_for_each(m, &mons, link) {
if (regex_match(arg->v, m->wlr_output->name)) {
wlr_output_state_set_enabled(&state, false);
wlr_output_commit_state(m->wlr_output, &state);
m->asleep = 1;
updatemons(NULL, NULL);
break;
}
}
return 0;
}
int enable_monitor(const Arg *arg) {
Monitor *m = NULL;
struct wlr_output_state state = {0};
wl_list_for_each(m, &mons, link) {
if (regex_match(arg->v, m->wlr_output->name)) {
wlr_output_state_set_enabled(&state, true);
wlr_output_commit_state(m->wlr_output, &state);
m->asleep = 0;
updatemons(NULL, NULL);
break;
}
}
return 0;
}
int toggle_monitor(const Arg *arg) {
Monitor *m = NULL;
struct wlr_output_state state = {0};
wl_list_for_each(m, &mons, link) {
if (regex_match(arg->v, m->wlr_output->name)) {
wlr_output_state_set_enabled(&state, !m->wlr_output->enabled);
wlr_output_commit_state(m->wlr_output, &state);
m->asleep = !m->wlr_output->enabled;
updatemons(NULL, NULL);
break;
}
}
return 0;
}