aboutsummaryrefslogtreecommitdiff
path: root/rootston
diff options
context:
space:
mode:
Diffstat (limited to 'rootston')
-rw-r--r--rootston/config.c3
-rw-r--r--rootston/desktop.c5
-rw-r--r--rootston/rootston.ini.example2
3 files changed, 8 insertions, 2 deletions
diff --git a/rootston/config.c b/rootston/config.c
index 727b52d0..638d6e73 100644
--- a/rootston/config.c
+++ b/rootston/config.c
@@ -276,6 +276,9 @@ static int config_ini_handler(void *user, const char *section, const char *name,
} else if (strcmp(name, "geometry") == 0) {
free(config->cursor.mapped_box);
config->cursor.mapped_box = parse_geometry(value);
+ } else if (strcmp(name, "theme") == 0) {
+ free(config->cursor.theme);
+ config->cursor.theme = strdup(value);
} else {
wlr_log(L_ERROR, "got unknown cursor config: %s", name);
}
diff --git a/rootston/desktop.c b/rootston/desktop.c
index 1695d007..a2af5e95 100644
--- a/rootston/desktop.c
+++ b/rootston/desktop.c
@@ -338,10 +338,11 @@ struct roots_desktop *desktop_create(struct roots_server *server,
desktop->server = server;
desktop->config = config;
- desktop->xcursor_manager = wlr_xcursor_manager_create(NULL,
+ desktop->xcursor_manager = wlr_xcursor_manager_create(config->cursor.theme,
ROOTS_XCURSOR_SIZE);
if (desktop->xcursor_manager == NULL) {
- wlr_log(L_ERROR, "Cannot create XCursor manager");
+ wlr_log(L_ERROR, "Cannot create XCursor manager for theme %s",
+ config->cursor.theme);
wlr_list_free(desktop->views);
free(desktop);
return NULL;
diff --git a/rootston/rootston.ini.example b/rootston/rootston.ini.example
index c33b0f04..17467100 100644
--- a/rootston/rootston.ini.example
+++ b/rootston/rootston.ini.example
@@ -21,6 +21,8 @@ rotate = 90
map-to-output = VGA-1
# Restrict cursor movements to concrete rectangle
geometry = 2500x800
+# Load a custom XCursor theme
+theme = default
# Single device configuration. String after semicolon must match device's name.
[device:PixArt Dell MS116 USB Optical Mouse]