summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-12-09 15:55:58 +0100
committerSimon Zeni <simon@bl4ckb0ne.ca>2021-12-09 10:47:01 -0600
commit3f58f12617ca4d6a311d060081e40bf01a73c239 (patch)
tree16f1da9d83f9bbd9b5c973a9891057074595d896
parent1eaa61f503f38673db2c18d22515406c66d13424 (diff)
Fixup headless output names
We use the headless backend to create a special fallback output used when no other output is connected. However this messes up the "real" headless output names users have come to expect (e.g. currently the first headless output will be named "HEADLESS-2" instead of "HEADLESS-1"). Fix this by setting the output name with [1]. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3395
-rw-r--r--sway/desktop/output.c10
-rw-r--r--sway/server.c1
2 files changed, 11 insertions, 0 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index e0d763495..3ae97e664 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -5,6 +5,7 @@
#include <time.h>
#include <wayland-server-core.h>
#include <wlr/backend/drm.h>
+#include <wlr/backend/headless.h>
#include <wlr/render/wlr_renderer.h>
#include <wlr/types/wlr_buffer.h>
#include <wlr/types/wlr_drm_lease_v1.h>
@@ -833,13 +834,22 @@ static void handle_present(struct wl_listener *listener, void *data) {
output->refresh_nsec = output_event->refresh;
}
+static unsigned int last_headless_num = 0;
+
void handle_new_output(struct wl_listener *listener, void *data) {
struct sway_server *server = wl_container_of(listener, server, new_output);
struct wlr_output *wlr_output = data;
+
if (wlr_output == root->fallback_output->wlr_output) {
return;
}
+ if (wlr_output_is_headless(wlr_output)) {
+ char name[64];
+ snprintf(name, sizeof(name), "HEADLESS-%u", ++last_headless_num);
+ wlr_output_set_name(wlr_output, name);
+ }
+
sway_log(SWAY_DEBUG, "New output %p: %s (non-desktop: %d)",
wlr_output, wlr_output->name, wlr_output->non_desktop);
diff --git a/sway/server.c b/sway/server.c
index ff269c79a..582a04ab0 100644
--- a/sway/server.c
+++ b/sway/server.c
@@ -227,6 +227,7 @@ bool server_init(struct sway_server *server) {
struct wlr_output *wlr_output =
wlr_headless_add_output(server->headless_backend, 800, 600);
+ wlr_output_set_name(wlr_output, "FALLBACK");
root->fallback_output = output_create(wlr_output);
// This may have been set already via -Dtxn-timeout