add cursor configuration
This commit is contained in:
parent
b3a43e2261
commit
699d489f93
|
@ -67,6 +67,12 @@ static int config_ini_handler(void *user, const char *section, const char *name,
|
||||||
wlr_log(L_ERROR, "got unknown transform value: %s", value);
|
wlr_log(L_ERROR, "got unknown transform value: %s", value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (strcmp(section, "cursor") == 0) {
|
||||||
|
if (strcmp(name, "map-to-output") == 0) {
|
||||||
|
config->cursor.mapped_output = strdup(value);
|
||||||
|
} else {
|
||||||
|
wlr_log(L_ERROR, "got unknown cursor config: %s", name);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
wlr_log(L_ERROR, "got unknown config section: %s", section);
|
wlr_log(L_ERROR, "got unknown config section: %s", section);
|
||||||
}
|
}
|
||||||
|
@ -128,6 +134,9 @@ void example_config_destroy(struct example_config *config) {
|
||||||
if (config->config_path) {
|
if (config->config_path) {
|
||||||
free(config->config_path);
|
free(config->config_path);
|
||||||
}
|
}
|
||||||
|
if (config->cursor.mapped_output) {
|
||||||
|
free(config->cursor.mapped_output);
|
||||||
|
}
|
||||||
free(config);
|
free(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,10 @@ struct output_config {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct example_config {
|
struct example_config {
|
||||||
|
struct {
|
||||||
|
char *mapped_output;
|
||||||
|
} cursor;
|
||||||
|
|
||||||
struct wl_list outputs;
|
struct wl_list outputs;
|
||||||
char *config_path;
|
char *config_path;
|
||||||
};
|
};
|
||||||
|
|
|
@ -70,6 +70,11 @@ static void handle_output_add(struct output_state *ostate) {
|
||||||
sample->layout = configure_layout(sample->config, &ostate->compositor->outputs);
|
sample->layout = configure_layout(sample->config, &ostate->compositor->outputs);
|
||||||
wlr_cursor_attach_output_layout(sample->cursor, sample->layout);
|
wlr_cursor_attach_output_layout(sample->cursor, sample->layout);
|
||||||
|
|
||||||
|
char *mapped_output = sample->config->cursor.mapped_output;
|
||||||
|
if (mapped_output && strcmp(mapped_output, wlr_output->name) == 0) {
|
||||||
|
wlr_cursor_map_to_output(sample->cursor, wlr_output);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// TODO configuration
|
// TODO configuration
|
||||||
if (strcmp("DP-1", ostate->output->name) == 0) {
|
if (strcmp("DP-1", ostate->output->name) == 0) {
|
||||||
|
@ -95,6 +100,10 @@ static void handle_output_remove(struct output_state *ostate) {
|
||||||
wlr_output_layout_destroy(sample->layout);
|
wlr_output_layout_destroy(sample->layout);
|
||||||
sample->layout = configure_layout(sample->config, &ostate->compositor->outputs);
|
sample->layout = configure_layout(sample->config, &ostate->compositor->outputs);
|
||||||
wlr_cursor_attach_output_layout(sample->cursor, sample->layout);
|
wlr_cursor_attach_output_layout(sample->cursor, sample->layout);
|
||||||
|
|
||||||
|
if (strcmp(sample->config->cursor.mapped_output, ostate->output->name) == 0) {
|
||||||
|
wlr_cursor_map_to_output(sample->cursor, NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_output_resolution(struct compositor_state *state,
|
static void handle_output_resolution(struct compositor_state *state,
|
||||||
|
|
|
@ -30,4 +30,11 @@ rotate=270
|
||||||
x=1080
|
x=1080
|
||||||
y=232
|
y=232
|
||||||
|
|
||||||
|
# Cursor Configuration
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~
|
||||||
|
# Value "map-to-output" specifies the output to which the cursor is
|
||||||
|
# constrained.
|
||||||
|
[cursor]
|
||||||
|
map-to-output=HDMI-A-1
|
||||||
|
|
||||||
# vim:filetype=dosini
|
# vim:filetype=dosini
|
||||||
|
|
Loading…
Reference in New Issue