config: add new option ‘selection-target’

This option controls the clipboard target that selected text should be
copied to.
This commit is contained in:
Daniel Eklöf 2021-01-16 11:26:03 +01:00
parent 1253f5e27e
commit e69ca255b0
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 23 additions and 0 deletions

View file

@ -673,6 +673,22 @@ parse_section_main(const char *key, const char *value, struct config *conf,
conf->notify.argv = argv;
}
else if (strcmp(key, "selection-target") == 0) {
if (strcasecmp(value, "primary") == 0)
conf->selection_target = SELECTION_TARGET_PRIMARY;
else if (strcasecmp(value, "clipboard") == 0)
conf->selection_target = SELECTION_TARGET_CLIPBOARD;
else if (strcasecmp(value, "both") == 0)
conf->selection_target = SELECTION_TARGET_BOTH;
else {
LOG_AND_NOTIFY_ERR(
"%s:%d: [default]: %s: invalid 'selection-target'; "
"must be one of 'primary', 'clipboard' or 'both",
path, lineno, value);
return false;
}
}
else {
LOG_AND_NOTIFY_ERR("%s:%u: [default]: %s: invalid key", path, lineno, key);
return false;
@ -2127,6 +2143,7 @@ config_load(struct config *conf, const char *conf_path,
.render_worker_count = sysconf(_SC_NPROCESSORS_ONLN),
.server_socket_path = get_server_socket_path(),
.presentation_timings = false,
.selection_target = SELECTION_TARGET_PRIMARY,
.hold_at_exit = false,
.notify = {
.raw_cmd = NULL,

View file

@ -181,6 +181,11 @@ struct config {
char *server_socket_path;
bool presentation_timings;
bool hold_at_exit;
enum {
SELECTION_TARGET_PRIMARY,
SELECTION_TARGET_CLIPBOARD,
SELECTION_TARGET_BOTH
} selection_target;
struct {
char *raw_cmd;

View file

@ -23,6 +23,7 @@
# bell=none
# word-delimiters=,│`|:"'()[]{}<>
# notify=notify-send -a foot -i foot ${title} ${body}
# selection-target=primary
# workers=<number of logical CPUs>
[scrollback]