mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Add cursor theme to rootston config
This commit is contained in:
		
							parent
							
								
									bf5640db12
								
							
						
					
					
						commit
						cd566ccd8e
					
				
					 5 changed files with 10 additions and 3 deletions
				
			
		| 
						 | 
					@ -48,6 +48,7 @@ struct roots_config {
 | 
				
			||||||
	struct {
 | 
						struct {
 | 
				
			||||||
		char *mapped_output;
 | 
							char *mapped_output;
 | 
				
			||||||
		struct wlr_box *mapped_box;
 | 
							struct wlr_box *mapped_box;
 | 
				
			||||||
 | 
							char *theme;
 | 
				
			||||||
	} cursor;
 | 
						} cursor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct wl_list outputs;
 | 
						struct wl_list outputs;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -276,6 +276,9 @@ static int config_ini_handler(void *user, const char *section, const char *name,
 | 
				
			||||||
		} else if (strcmp(name, "geometry") == 0) {
 | 
							} else if (strcmp(name, "geometry") == 0) {
 | 
				
			||||||
			free(config->cursor.mapped_box);
 | 
								free(config->cursor.mapped_box);
 | 
				
			||||||
			config->cursor.mapped_box = parse_geometry(value);
 | 
								config->cursor.mapped_box = parse_geometry(value);
 | 
				
			||||||
 | 
							} else if (strcmp(name, "theme") == 0) {
 | 
				
			||||||
 | 
								free(config->cursor.theme);
 | 
				
			||||||
 | 
								config->cursor.theme = strdup(value);
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			wlr_log(L_ERROR, "got unknown cursor config: %s", name);
 | 
								wlr_log(L_ERROR, "got unknown cursor config: %s", name);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -338,10 +338,11 @@ struct roots_desktop *desktop_create(struct roots_server *server,
 | 
				
			||||||
	desktop->server = server;
 | 
						desktop->server = server;
 | 
				
			||||||
	desktop->config = config;
 | 
						desktop->config = config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	desktop->xcursor_manager = wlr_xcursor_manager_create(NULL,
 | 
						desktop->xcursor_manager = wlr_xcursor_manager_create(config->cursor.theme,
 | 
				
			||||||
		ROOTS_XCURSOR_SIZE);
 | 
							ROOTS_XCURSOR_SIZE);
 | 
				
			||||||
	if (desktop->xcursor_manager == NULL) {
 | 
						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);
 | 
							wlr_list_free(desktop->views);
 | 
				
			||||||
		free(desktop);
 | 
							free(desktop);
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,6 +21,8 @@ rotate = 90
 | 
				
			||||||
map-to-output = VGA-1
 | 
					map-to-output = VGA-1
 | 
				
			||||||
# Restrict cursor movements to concrete rectangle
 | 
					# Restrict cursor movements to concrete rectangle
 | 
				
			||||||
geometry = 2500x800
 | 
					geometry = 2500x800
 | 
				
			||||||
 | 
					# Load a custom XCursor theme
 | 
				
			||||||
 | 
					theme = default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Single device configuration. String after semicolon must match device's name.
 | 
					# Single device configuration. String after semicolon must match device's name.
 | 
				
			||||||
[device:PixArt Dell MS116 USB Optical Mouse]
 | 
					[device:PixArt Dell MS116 USB Optical Mouse]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,7 +46,7 @@ int wlr_xcursor_manager_load(struct wlr_xcursor_manager *manager,
 | 
				
			||||||
		return 1;
 | 
							return 1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	theme->scale = scale;
 | 
						theme->scale = scale;
 | 
				
			||||||
	theme->theme = wlr_xcursor_theme_load(NULL, manager->size * scale);
 | 
						theme->theme = wlr_xcursor_theme_load(manager->name, manager->size * scale);
 | 
				
			||||||
	if (theme->theme == NULL) {
 | 
						if (theme->theme == NULL) {
 | 
				
			||||||
		free(theme);
 | 
							free(theme);
 | 
				
			||||||
		return 1;
 | 
							return 1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue