From 93df118ef297f9b9c628298d6e483dbba67ff12f Mon Sep 17 00:00:00 2001 From: tjallingt Date: Thu, 9 Apr 2026 16:41:54 +0200 Subject: [PATCH] seat: Use XCURSOR_SIZE and XCURSOR_THEME when creating the cursor manager --- seat.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/seat.c b/seat.c index 5f659a4..29efe05 100644 --- a/seat.c +++ b/seat.c @@ -836,7 +836,21 @@ seat_create(struct cg_server *server, struct wlr_backend *backend) wlr_cursor_attach_output_layout(seat->cursor, server->output_layout); if (!seat->xcursor_manager) { - seat->xcursor_manager = wlr_xcursor_manager_create(NULL, XCURSOR_SIZE); + const char *theme = getenv("XCURSOR_THEME"); + const char *size_str = getenv("XCURSOR_SIZE"); + + int32_t size = XCURSOR_SIZE; + if (size_str) { + char *end_ptr = NULL; + unsigned long value = strtoul(size_str, &end_ptr, 10); + if (end_ptr != size_str && *end_ptr == '\0') { + size = (int32_t)value; + } else { + wlr_log(WLR_ERROR, "Invalid value for XCURSOR_SIZE: '%s'", size_str); + } + } + + seat->xcursor_manager = wlr_xcursor_manager_create(theme, size); if (!seat->xcursor_manager) { wlr_log(WLR_ERROR, "Cannot create XCursor manager"); wlr_cursor_destroy(seat->cursor);