Disable outputs in rootston config
This commit is contained in:
parent
d9ecfbaf32
commit
be3a7b0017
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
struct roots_output_config {
|
struct roots_output_config {
|
||||||
char *name;
|
char *name;
|
||||||
|
bool enable;
|
||||||
enum wl_output_transform transform;
|
enum wl_output_transform transform;
|
||||||
int x, y;
|
int x, y;
|
||||||
float scale;
|
float scale;
|
||||||
|
|
|
@ -263,10 +263,19 @@ static int config_ini_handler(void *user, const char *section, const char *name,
|
||||||
oc->name = strdup(output_name);
|
oc->name = strdup(output_name);
|
||||||
oc->transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
oc->transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
||||||
oc->scale = 1;
|
oc->scale = 1;
|
||||||
|
oc->enable = true;
|
||||||
wl_list_insert(&config->outputs, &oc->link);
|
wl_list_insert(&config->outputs, &oc->link);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(name, "x") == 0) {
|
if (strcmp(name, "enable") == 0) {
|
||||||
|
if (strcasecmp(value, "true") == 0) {
|
||||||
|
oc->enable = true;
|
||||||
|
} else if (strcasecmp(value, "false") == 0) {
|
||||||
|
oc->enable = false;
|
||||||
|
} else {
|
||||||
|
wlr_log(L_ERROR, "got invalid output enable value: %s", value);
|
||||||
|
}
|
||||||
|
} else if (strcmp(name, "x") == 0) {
|
||||||
oc->x = strtol(value, NULL, 10);
|
oc->x = strtol(value, NULL, 10);
|
||||||
} else if (strcmp(name, "y") == 0) {
|
} else if (strcmp(name, "y") == 0) {
|
||||||
oc->y = strtol(value, NULL, 10);
|
oc->y = strtol(value, NULL, 10);
|
||||||
|
|
|
@ -324,9 +324,10 @@ void output_add_notify(struct wl_listener *listener, void *data) {
|
||||||
wlr_log(L_DEBUG, "'%s %s %s' %"PRId32"mm x %"PRId32"mm", wlr_output->make,
|
wlr_log(L_DEBUG, "'%s %s %s' %"PRId32"mm x %"PRId32"mm", wlr_output->make,
|
||||||
wlr_output->model, wlr_output->serial, wlr_output->phys_width,
|
wlr_output->model, wlr_output->serial, wlr_output->phys_width,
|
||||||
wlr_output->phys_height);
|
wlr_output->phys_height);
|
||||||
|
|
||||||
if (wl_list_length(&wlr_output->modes) > 0) {
|
if (wl_list_length(&wlr_output->modes) > 0) {
|
||||||
struct wlr_output_mode *mode = NULL;
|
struct wlr_output_mode *mode =
|
||||||
mode = wl_container_of((&wlr_output->modes)->prev, mode, link);
|
wl_container_of((&wlr_output->modes)->prev, mode, link);
|
||||||
wlr_output_set_mode(wlr_output, mode);
|
wlr_output_set_mode(wlr_output, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,13 +342,17 @@ void output_add_notify(struct wl_listener *listener, void *data) {
|
||||||
struct roots_output_config *output_config =
|
struct roots_output_config *output_config =
|
||||||
roots_config_get_output(config, wlr_output);
|
roots_config_get_output(config, wlr_output);
|
||||||
if (output_config) {
|
if (output_config) {
|
||||||
if (output_config->mode.width) {
|
if (output_config->enable) {
|
||||||
set_mode(wlr_output, output_config);
|
if (output_config->mode.width) {
|
||||||
|
set_mode(wlr_output, output_config);
|
||||||
|
}
|
||||||
|
wlr_output_set_scale(wlr_output, output_config->scale);
|
||||||
|
wlr_output_set_transform(wlr_output, output_config->transform);
|
||||||
|
wlr_output_layout_add(desktop->layout, wlr_output, output_config->x,
|
||||||
|
output_config->y);
|
||||||
|
} else {
|
||||||
|
wlr_output_enable(wlr_output, false);
|
||||||
}
|
}
|
||||||
wlr_output_set_scale(wlr_output, output_config->scale);
|
|
||||||
wlr_output_set_transform(wlr_output, output_config->transform);
|
|
||||||
wlr_output_layout_add(desktop->layout, wlr_output, output_config->x,
|
|
||||||
output_config->y);
|
|
||||||
} else {
|
} else {
|
||||||
wlr_output_layout_add_auto(desktop->layout, wlr_output);
|
wlr_output_layout_add_auto(desktop->layout, wlr_output);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue