From 9e5a5f3a42f5769241d32473b0a63dcd51645be1 Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Thu, 25 Jun 2026 14:08:45 +0800 Subject: [PATCH] fix: headless output must config before add to output layout --- src/mango.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mango.c b/src/mango.c index b9e5b00e..35f9266e 100644 --- a/src/mango.c +++ b/src/mango.c @@ -3529,6 +3529,11 @@ void createmon(struct wl_listener *listener, void *data) { output_state_setup_hdr(m, false, &m->pending); } + // 虚拟显示器在加入显示器链前必须先配置,否则会崩溃 + if (wlr_output_is_headless(m->wlr_output)) { + mango_output_commit(m); + } + wl_list_insert(&mons, &m->link); m->pertag = calloc(1, sizeof(Pertag)); @@ -3576,7 +3581,11 @@ void createmon(struct wl_listener *listener, void *data) { else wlr_output_layout_add(output_layout, wlr_output, m->m.x, m->m.y); - mango_scene_output_commit(m->scene_output, &m->pending); + // 无头显示器不不要支持hdr + if (!wlr_output_is_headless(m->wlr_output)) { + mango_scene_output_commit(m->scene_output, &m->pending); + } + wlr_output_effective_resolution(m->wlr_output, &m->m.width, &m->m.height); if (config.blur) {