From 9a4438fb6549d1063bceeafc2a3a988edf7386f0 Mon Sep 17 00:00:00 2001 From: Window Maker Date: Mon, 25 May 2026 11:48:23 +0200 Subject: [PATCH] cursor: respect XCURSOR_THEME and XCURSOR_SIZE environment variables The xcursor manager was hardcoded to NULL theme with size 24. Now reads XCURSOR_THEME and XCURSOR_SIZE from the environment, matching the behavior of other Wayland compositors like Sway. --- src/backend/wayland/wl_backend.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backend/wayland/wl_backend.c b/src/backend/wayland/wl_backend.c index 3297f58..4d4dc3c 100644 --- a/src/backend/wayland/wl_backend.c +++ b/src/backend/wayland/wl_backend.c @@ -2682,7 +2682,13 @@ wl_display_open(const char *name) wl_state.cursor = wlr_cursor_create(); if (wl_state.cursor) { wlr_cursor_attach_output_layout(wl_state.cursor, wl_state.output_layout); - wl_state.xcursor_mgr = wlr_xcursor_manager_create(NULL, 24); + { + const char *theme = getenv("XCURSOR_THEME"); + const char *size_str = getenv("XCURSOR_SIZE"); + unsigned int size = size_str ? (unsigned int)atoi(size_str) : 24; + if (size == 0) size = 24; + wl_state.xcursor_mgr = wlr_xcursor_manager_create(theme, size); + } if (wl_state.xcursor_mgr) wlr_xcursor_manager_load(wl_state.xcursor_mgr, 1.0f); wwarning("wl_backend: cursor created, xcursor theme loaded");