diff options
Diffstat (limited to 'dwl.c')
-rw-r--r-- | dwl.c | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -81,6 +81,11 @@ typedef struct { struct wl_listener frame; } Monitor; +typedef struct { + const char *name; + float scale; +} MonitorRule; + /* Used to move all of the data necessary to render a surface from the top-level * frame handler to the per-surface render function. */ struct render_data { @@ -247,9 +252,17 @@ createmon(struct wl_listener *listener, void *data) } } - /* Allocates and configures our state for this output */ + /* Allocates and configures monitor state using configured rules */ Monitor *m = calloc(1, sizeof(*m)); m->wlr_output = wlr_output; + int i; + for (i = 0; i < LENGTH(monrules); i++) { + if (!monrules[i].name || + !strcmp(wlr_output->name, monrules[i].name)) { + wlr_output_set_scale(wlr_output, monrules[i].scale); + break; + } + } /* Sets up a listener for the frame notify event. */ m->frame.notify = rendermon; wl_signal_add(&wlr_output->events.frame, &m->frame); |