feat: add cursor_size and cursor_theme option in config
This commit is contained in:
@@ -51,6 +51,8 @@ focus_cross_monitor=0
|
|||||||
focus_cross_tag=1
|
focus_cross_tag=1
|
||||||
enable_floating_snap=0
|
enable_floating_snap=0
|
||||||
snap_distance=30
|
snap_distance=30
|
||||||
|
cursor_size=24
|
||||||
|
# cursro_theme=Buuf
|
||||||
|
|
||||||
# keyboard
|
# keyboard
|
||||||
repeat_rate=25
|
repeat_rate=25
|
||||||
|
|||||||
@@ -204,6 +204,9 @@ typedef struct {
|
|||||||
char **exec_once;
|
char **exec_once;
|
||||||
int exec_once_count;
|
int exec_once_count;
|
||||||
|
|
||||||
|
char *cursor_theme;
|
||||||
|
unsigned int cursor_size;
|
||||||
|
|
||||||
} Config;
|
} Config;
|
||||||
|
|
||||||
typedef void (*FuncType)(const Arg *);
|
typedef void (*FuncType)(const Arg *);
|
||||||
@@ -832,6 +835,10 @@ void parse_config_line(Config *config, const char *line) {
|
|||||||
config->mouse_natural_scrolling = atoi(value);
|
config->mouse_natural_scrolling = atoi(value);
|
||||||
} else if (strcmp(key, "trackpad_natural_scrolling") == 0) {
|
} else if (strcmp(key, "trackpad_natural_scrolling") == 0) {
|
||||||
config->trackpad_natural_scrolling = atoi(value);
|
config->trackpad_natural_scrolling = atoi(value);
|
||||||
|
} else if (strcmp(key, "cursor_size") == 0) {
|
||||||
|
config->cursor_size = atoi(value);
|
||||||
|
} else if (strcmp(key, "cursor_theme") == 0) {
|
||||||
|
config->cursor_theme = strdup(value);
|
||||||
} else if (strcmp(key, "disable_while_typing") == 0) {
|
} else if (strcmp(key, "disable_while_typing") == 0) {
|
||||||
config->disable_while_typing = atoi(value);
|
config->disable_while_typing = atoi(value);
|
||||||
} else if (strcmp(key, "left_handed") == 0) {
|
} else if (strcmp(key, "left_handed") == 0) {
|
||||||
@@ -1464,11 +1471,17 @@ void free_config(void) {
|
|||||||
config.scroller_proportion_preset_count = 0;
|
config.scroller_proportion_preset_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(config.cursor_theme) {
|
||||||
|
free(config.cursor_theme);
|
||||||
|
config.cursor_theme = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// 释放 circle_layout
|
// 释放 circle_layout
|
||||||
free_circle_layout(&config);
|
free_circle_layout(&config);
|
||||||
|
|
||||||
// 释放动画资源
|
// 释放动画资源
|
||||||
free_baked_points();
|
free_baked_points();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void override_config(void) {
|
void override_config(void) {
|
||||||
@@ -1534,6 +1547,7 @@ void override_config(void) {
|
|||||||
tap_and_drag = config.tap_and_drag;
|
tap_and_drag = config.tap_and_drag;
|
||||||
drag_lock = config.drag_lock;
|
drag_lock = config.drag_lock;
|
||||||
mouse_natural_scrolling = config.mouse_natural_scrolling;
|
mouse_natural_scrolling = config.mouse_natural_scrolling;
|
||||||
|
cursor_size = config.cursor_size;
|
||||||
trackpad_natural_scrolling = config.trackpad_natural_scrolling;
|
trackpad_natural_scrolling = config.trackpad_natural_scrolling;
|
||||||
disable_while_typing = config.disable_while_typing;
|
disable_while_typing = config.disable_while_typing;
|
||||||
left_handed = config.left_handed;
|
left_handed = config.left_handed;
|
||||||
@@ -1622,6 +1636,7 @@ void set_value_default() {
|
|||||||
config.tap_and_drag = tap_and_drag;
|
config.tap_and_drag = tap_and_drag;
|
||||||
config.drag_lock = drag_lock;
|
config.drag_lock = drag_lock;
|
||||||
config.mouse_natural_scrolling = mouse_natural_scrolling;
|
config.mouse_natural_scrolling = mouse_natural_scrolling;
|
||||||
|
config.cursor_size = cursor_size;
|
||||||
config.trackpad_natural_scrolling = trackpad_natural_scrolling;
|
config.trackpad_natural_scrolling = trackpad_natural_scrolling;
|
||||||
config.disable_while_typing = disable_while_typing;
|
config.disable_while_typing = disable_while_typing;
|
||||||
config.left_handed = left_handed;
|
config.left_handed = left_handed;
|
||||||
@@ -1703,6 +1718,7 @@ void parse_config(void) {
|
|||||||
config.circle_layout_count = 0;
|
config.circle_layout_count = 0;
|
||||||
config.tag_rules = NULL;
|
config.tag_rules = NULL;
|
||||||
config.tag_rules_count = 0;
|
config.tag_rules_count = 0;
|
||||||
|
config.cursor_theme = NULL;
|
||||||
|
|
||||||
// 获取 MAOMAOCONFIG 环境变量
|
// 获取 MAOMAOCONFIG 环境变量
|
||||||
const char *maomaoconfig = getenv("MAOMAOCONFIG");
|
const char *maomaoconfig = getenv("MAOMAOCONFIG");
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ int focus_cross_monitor = 0;
|
|||||||
int focus_cross_tag = 0;
|
int focus_cross_tag = 0;
|
||||||
int snap_distance = 30;
|
int snap_distance = 30;
|
||||||
int enable_floating_snap = 0;
|
int enable_floating_snap = 0;
|
||||||
|
unsigned int cursor_size = 24;
|
||||||
|
|
||||||
unsigned int swipe_min_threshold = 20;
|
unsigned int swipe_min_threshold = 20;
|
||||||
|
|
||||||
|
|||||||
12
src/maomao.c
12
src/maomao.c
@@ -5588,13 +5588,12 @@ void handle_foreign_destroy(struct wl_listener *listener, void *data) {
|
|||||||
|
|
||||||
void setup(void) {
|
void setup(void) {
|
||||||
|
|
||||||
// signal(SIGSEGV, signalhandler);
|
setenv("XCURSOR_SIZE", "24", 1);
|
||||||
parse_config();
|
|
||||||
|
|
||||||
init_baked_points();
|
|
||||||
|
|
||||||
setenv("XDG_CURRENT_DESKTOP", "maomao", 1);
|
setenv("XDG_CURRENT_DESKTOP", "maomao", 1);
|
||||||
|
|
||||||
|
parse_config();
|
||||||
|
init_baked_points();
|
||||||
|
|
||||||
int drm_fd, i, sig[] = {SIGCHLD, SIGINT, SIGTERM, SIGPIPE};
|
int drm_fd, i, sig[] = {SIGCHLD, SIGINT, SIGTERM, SIGPIPE};
|
||||||
struct sigaction sa = {.sa_flags = SA_RESTART, .sa_handler = handlesig};
|
struct sigaction sa = {.sa_flags = SA_RESTART, .sa_handler = handlesig};
|
||||||
sigemptyset(&sa.sa_mask);
|
sigemptyset(&sa.sa_mask);
|
||||||
@@ -5750,8 +5749,7 @@ void setup(void) {
|
|||||||
* images are available at all scale factors on the screen (necessary for
|
* images are available at all scale factors on the screen (necessary for
|
||||||
* HiDPI support). Scaled cursors will be loaded with each output. */
|
* HiDPI support). Scaled cursors will be loaded with each output. */
|
||||||
// cursor_mgr = wlr_xcursor_manager_create(cursor_theme, 24);
|
// cursor_mgr = wlr_xcursor_manager_create(cursor_theme, 24);
|
||||||
cursor_mgr = wlr_xcursor_manager_create(NULL, 24);
|
cursor_mgr = wlr_xcursor_manager_create(config.cursor_theme, cursor_size);
|
||||||
setenv("XCURSOR_SIZE", "24", 1);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* wlr_cursor *only* displays an image on screen. It does not move around
|
* wlr_cursor *only* displays an image on screen. It does not move around
|
||||||
|
|||||||
Reference in New Issue
Block a user