From 83a33e01a3185b0d572dbeea625c2aa94590da58 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 ceb712ef..5346b905 100644 --- a/src/mango.c +++ b/src/mango.c @@ -3448,6 +3448,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)); @@ -3495,7 +3500,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); m->ext_group = wlr_ext_workspace_group_handle_v1_create(