Export XCURSOR_SIZE and XCURSOR_THEME

These can be used by toolkits (currently Qt, libxcursor, glfw) to
choose a default cursor theme and size.

This backports this rootston commit:
3a181ab430
This commit is contained in:
emersion 2018-10-17 21:10:30 +02:00
parent 10d07478ad
commit fd9198a3a4

View File

@ -83,6 +83,17 @@ bool server_init(struct sway_server *server) {
&server->xdg_shell_surface); &server->xdg_shell_surface);
server->xdg_shell_surface.notify = handle_xdg_shell_surface; server->xdg_shell_surface.notify = handle_xdg_shell_surface;
// TODO: configurable cursor theme and size
int cursor_size = 24;
const char *cursor_theme = NULL;
char cursor_size_fmt[16];
snprintf(cursor_size_fmt, sizeof(cursor_size_fmt), "%d", cursor_size);
setenv("XCURSOR_SIZE", cursor_size_fmt, 1);
if (cursor_theme != NULL) {
setenv("XCURSOR_THEME", cursor_theme, 1);
}
#ifdef HAVE_XWAYLAND #ifdef HAVE_XWAYLAND
server->xwayland.wlr_xwayland = server->xwayland.wlr_xwayland =
wlr_xwayland_create(server->wl_display, server->compositor, true); wlr_xwayland_create(server->wl_display, server->compositor, true);
@ -93,8 +104,8 @@ bool server_init(struct sway_server *server) {
&server->xwayland_ready); &server->xwayland_ready);
server->xwayland_ready.notify = handle_xwayland_ready; server->xwayland_ready.notify = handle_xwayland_ready;
// TODO: configurable cursor theme and size server->xwayland.xcursor_manager =
server->xwayland.xcursor_manager = wlr_xcursor_manager_create(NULL, 24); wlr_xcursor_manager_create(cursor_theme, cursor_size);
wlr_xcursor_manager_load(server->xwayland.xcursor_manager, 1); wlr_xcursor_manager_load(server->xwayland.xcursor_manager, 1);
struct wlr_xcursor *xcursor = wlr_xcursor_manager_get_xcursor( struct wlr_xcursor *xcursor = wlr_xcursor_manager_get_xcursor(
server->xwayland.xcursor_manager, "left_ptr", 1); server->xwayland.xcursor_manager, "left_ptr", 1);