summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.def.h6
-rw-r--r--dwl.c8
2 files changed, 10 insertions, 4 deletions
diff --git a/config.def.h b/config.def.h
index a4f7c13..419e6ef 100644
--- a/config.def.h
+++ b/config.def.h
@@ -29,12 +29,12 @@ static const Layout layouts[] = {
/* monitors */
static const MonitorRule monrules[] = {
- /* name mfact nmaster scale layout rotate/reflect */
+ /* name mfact nmaster scale layout rotate/reflect x y */
/* example of a HiDPI laptop monitor:
- { "eDP-1", 0.5, 1, 2, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL },
+ { "eDP-1", 0.5, 1, 2, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL -1, -1 },
*/
/* defaults */
- { NULL, 0.55, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL },
+ { NULL, 0.55, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, -1, -1 },
};
/* keyboard */
diff --git a/dwl.c b/dwl.c
index c2273ba..57870fe 100644
--- a/dwl.c
+++ b/dwl.c
@@ -194,6 +194,7 @@ typedef struct {
float scale;
const Layout *lt;
enum wl_output_transform rr;
+ int x, y;
} MonitorRule;
typedef struct {
@@ -908,6 +909,8 @@ createmon(struct wl_listener *listener, void *data)
wlr_xcursor_manager_load(cursor_mgr, r->scale);
m->lt[0] = m->lt[1] = r->lt;
wlr_output_set_transform(wlr_output, r->rr);
+ m->m.x = r->x;
+ m->m.y = r->y;
break;
}
}
@@ -953,7 +956,10 @@ createmon(struct wl_listener *listener, void *data)
* output (such as DPI, scale factor, manufacturer, etc).
*/
m->scene_output = wlr_scene_output_create(scene, wlr_output);
- wlr_output_layout_add_auto(output_layout, wlr_output);
+ if (m->m.x < 0 || m->m.y < 0)
+ wlr_output_layout_add_auto(output_layout, wlr_output);
+ else
+ wlr_output_layout_add(output_layout, wlr_output, m->m.x, m->m.y);
}
void