diff --git a/render.c b/render.c index 65c39bf8..d873aa79 100644 --- a/render.c +++ b/render.c @@ -4017,8 +4017,12 @@ render_xcursor_set(struct seat *seat, struct terminal *term, const char *xcursor seat->pointer.theme, xcursor); if (seat->pointer.cursor == NULL) { - LOG_ERR("failed to load xcursor pointer '%s'", xcursor); - return false; + seat->pointer.cursor = wl_cursor_theme_get_cursor( + seat->pointer.theme, XCURSOR_TEXT_FALLBACK ); + if (seat->pointer.cursor == NULL) { + LOG_ERR("failed to load xcursor pointer '%s', and fallback '%s'", xcursor, XCURSOR_TEXT_FALLBACK); + return false; + } } } else seat->pointer.cursor = NULL; diff --git a/terminal.c b/terminal.c index 27ea033a..3076340c 100644 --- a/terminal.c +++ b/terminal.c @@ -48,6 +48,7 @@ const char *const XCURSOR_HIDDEN = "hidden"; const char *const XCURSOR_LEFT_PTR = "left_ptr"; const char *const XCURSOR_TEXT = "text"; +const char *const XCURSOR_TEXT_FALLBACK = "xterm"; //const char *const XCURSOR_HAND2 = "hand2"; const char *const XCURSOR_TOP_LEFT_CORNER = "top_left_corner"; const char *const XCURSOR_TOP_RIGHT_CORNER = "top_right_corner"; diff --git a/terminal.h b/terminal.h index 187a5187..d3602383 100644 --- a/terminal.h +++ b/terminal.h @@ -664,6 +664,7 @@ struct terminal { extern const char *const XCURSOR_HIDDEN; extern const char *const XCURSOR_LEFT_PTR; extern const char *const XCURSOR_TEXT; +extern const char *const XCURSOR_TEXT_FALLBACK; //extern const char *const XCURSOR_HAND2; extern const char *const XCURSOR_TOP_LEFT_CORNER; extern const char *const XCURSOR_TOP_RIGHT_CORNER;