mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
The main reason for having two color sections is to be able to switch between dark and light. Thus, it's better if the section names reflect this, rather than the more generic 'colors' and 'colors2' (which was the dark one and which was the light one, now again?) When the second color section was added, we kept the original name, colors, to make sure we didn't break existing configurations, and third-party themes. However, in the long run, it's probably better to be specific in the section naming, to avoid confusion. So, add 'colors-dark', and 'colors-light'. Keep 'colors' and 'colors2' as aliases for now, but mark them as deprecated. They WILL be removed in a future release. Also rename the option values for initial-color-theme, from 1/2, to dark/light. Keep the old ones for now, marked as deprecated. Update all bundled themes to use the new names. In the light-only themes (i.e. themes that define a single, light, theme), use colors-light, and set initial-color-theme=light. Possible improvements: disable color switching if only one color section has been explicitly configured (todo: figure out how to handle the default color theme values...)
178 lines
5.1 KiB
C
178 lines
5.1 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <xkbcommon/xkbcommon.h>
|
|
#include <tllist.h>
|
|
|
|
#include "config.h"
|
|
|
|
enum bind_action_normal {
|
|
BIND_ACTION_NONE,
|
|
BIND_ACTION_NOOP,
|
|
BIND_ACTION_SCROLLBACK_UP_PAGE,
|
|
BIND_ACTION_SCROLLBACK_UP_HALF_PAGE,
|
|
BIND_ACTION_SCROLLBACK_UP_LINE,
|
|
BIND_ACTION_SCROLLBACK_DOWN_PAGE,
|
|
BIND_ACTION_SCROLLBACK_DOWN_HALF_PAGE,
|
|
BIND_ACTION_SCROLLBACK_DOWN_LINE,
|
|
BIND_ACTION_SCROLLBACK_HOME,
|
|
BIND_ACTION_SCROLLBACK_END,
|
|
BIND_ACTION_CLIPBOARD_COPY,
|
|
BIND_ACTION_CLIPBOARD_PASTE,
|
|
BIND_ACTION_PRIMARY_PASTE,
|
|
BIND_ACTION_SEARCH_START,
|
|
BIND_ACTION_FONT_SIZE_UP,
|
|
BIND_ACTION_FONT_SIZE_DOWN,
|
|
BIND_ACTION_FONT_SIZE_RESET,
|
|
BIND_ACTION_SPAWN_TERMINAL,
|
|
BIND_ACTION_MINIMIZE,
|
|
BIND_ACTION_MAXIMIZE,
|
|
BIND_ACTION_FULLSCREEN,
|
|
BIND_ACTION_PIPE_SCROLLBACK,
|
|
BIND_ACTION_PIPE_VIEW,
|
|
BIND_ACTION_PIPE_SELECTED,
|
|
BIND_ACTION_PIPE_COMMAND_OUTPUT,
|
|
BIND_ACTION_SHOW_URLS_COPY,
|
|
BIND_ACTION_SHOW_URLS_LAUNCH,
|
|
BIND_ACTION_SHOW_URLS_PERSISTENT,
|
|
BIND_ACTION_TEXT_BINDING,
|
|
BIND_ACTION_PROMPT_PREV,
|
|
BIND_ACTION_PROMPT_NEXT,
|
|
BIND_ACTION_UNICODE_INPUT,
|
|
BIND_ACTION_QUIT,
|
|
BIND_ACTION_REGEX_LAUNCH,
|
|
BIND_ACTION_REGEX_COPY,
|
|
BIND_ACTION_THEME_SWITCH_1,
|
|
BIND_ACTION_THEME_SWITCH_2,
|
|
BIND_ACTION_THEME_SWITCH_DARK,
|
|
BIND_ACTION_THEME_SWITCH_LIGHT,
|
|
BIND_ACTION_THEME_TOGGLE,
|
|
|
|
/* Mouse specific actions - i.e. they require a mouse coordinate */
|
|
BIND_ACTION_SCROLLBACK_UP_MOUSE,
|
|
BIND_ACTION_SCROLLBACK_DOWN_MOUSE,
|
|
BIND_ACTION_SELECT_BEGIN,
|
|
BIND_ACTION_SELECT_BEGIN_BLOCK,
|
|
BIND_ACTION_SELECT_EXTEND,
|
|
BIND_ACTION_SELECT_EXTEND_CHAR_WISE,
|
|
BIND_ACTION_SELECT_WORD,
|
|
BIND_ACTION_SELECT_WORD_WS,
|
|
BIND_ACTION_SELECT_QUOTE,
|
|
BIND_ACTION_SELECT_ROW,
|
|
|
|
BIND_ACTION_KEY_COUNT = BIND_ACTION_THEME_TOGGLE + 1,
|
|
BIND_ACTION_COUNT = BIND_ACTION_SELECT_ROW + 1,
|
|
};
|
|
|
|
enum bind_action_search {
|
|
BIND_ACTION_SEARCH_NONE,
|
|
BIND_ACTION_SEARCH_SCROLLBACK_UP_PAGE,
|
|
BIND_ACTION_SEARCH_SCROLLBACK_UP_HALF_PAGE,
|
|
BIND_ACTION_SEARCH_SCROLLBACK_UP_LINE,
|
|
BIND_ACTION_SEARCH_SCROLLBACK_DOWN_PAGE,
|
|
BIND_ACTION_SEARCH_SCROLLBACK_DOWN_HALF_PAGE,
|
|
BIND_ACTION_SEARCH_SCROLLBACK_DOWN_LINE,
|
|
BIND_ACTION_SEARCH_SCROLLBACK_HOME,
|
|
BIND_ACTION_SEARCH_SCROLLBACK_END,
|
|
BIND_ACTION_SEARCH_CANCEL,
|
|
BIND_ACTION_SEARCH_COMMIT,
|
|
BIND_ACTION_SEARCH_FIND_PREV,
|
|
BIND_ACTION_SEARCH_FIND_NEXT,
|
|
BIND_ACTION_SEARCH_EDIT_LEFT,
|
|
BIND_ACTION_SEARCH_EDIT_LEFT_WORD,
|
|
BIND_ACTION_SEARCH_EDIT_RIGHT,
|
|
BIND_ACTION_SEARCH_EDIT_RIGHT_WORD,
|
|
BIND_ACTION_SEARCH_EDIT_HOME,
|
|
BIND_ACTION_SEARCH_EDIT_END,
|
|
BIND_ACTION_SEARCH_DELETE_PREV,
|
|
BIND_ACTION_SEARCH_DELETE_PREV_WORD,
|
|
BIND_ACTION_SEARCH_DELETE_NEXT,
|
|
BIND_ACTION_SEARCH_DELETE_NEXT_WORD,
|
|
BIND_ACTION_SEARCH_DELETE_TO_START,
|
|
BIND_ACTION_SEARCH_DELETE_TO_END,
|
|
BIND_ACTION_SEARCH_EXTEND_CHAR,
|
|
BIND_ACTION_SEARCH_EXTEND_WORD,
|
|
BIND_ACTION_SEARCH_EXTEND_WORD_WS,
|
|
BIND_ACTION_SEARCH_EXTEND_LINE_DOWN,
|
|
BIND_ACTION_SEARCH_EXTEND_BACKWARD_CHAR,
|
|
BIND_ACTION_SEARCH_EXTEND_BACKWARD_WORD,
|
|
BIND_ACTION_SEARCH_EXTEND_BACKWARD_WORD_WS,
|
|
BIND_ACTION_SEARCH_EXTEND_LINE_UP,
|
|
BIND_ACTION_SEARCH_CLIPBOARD_PASTE,
|
|
BIND_ACTION_SEARCH_PRIMARY_PASTE,
|
|
BIND_ACTION_SEARCH_UNICODE_INPUT,
|
|
BIND_ACTION_SEARCH_COUNT,
|
|
};
|
|
|
|
enum bind_action_url {
|
|
BIND_ACTION_URL_NONE,
|
|
BIND_ACTION_URL_CANCEL,
|
|
BIND_ACTION_URL_TOGGLE_URL_ON_JUMP_LABEL,
|
|
BIND_ACTION_URL_COUNT,
|
|
};
|
|
|
|
typedef tll(xkb_keycode_t) xkb_keycode_list_t;
|
|
|
|
struct key_binding {
|
|
enum key_binding_type type;
|
|
|
|
int action; /* enum bind_action_* */
|
|
xkb_mod_mask_t mods;
|
|
|
|
union {
|
|
struct {
|
|
xkb_keysym_t sym;
|
|
xkb_keycode_list_t key_codes;
|
|
} k;
|
|
|
|
struct {
|
|
uint32_t button;
|
|
int count;
|
|
} m;
|
|
};
|
|
|
|
const struct binding_aux *aux;
|
|
};
|
|
typedef tll(struct key_binding) key_binding_list_t;
|
|
|
|
struct terminal;
|
|
struct seat;
|
|
struct wayland;
|
|
|
|
struct key_binding_set {
|
|
key_binding_list_t key;
|
|
key_binding_list_t search;
|
|
key_binding_list_t url;
|
|
key_binding_list_t mouse;
|
|
xkb_mod_mask_t selection_overrides;
|
|
};
|
|
|
|
struct key_binding_manager;
|
|
|
|
struct key_binding_manager *key_binding_manager_new(void);
|
|
void key_binding_manager_destroy(struct key_binding_manager *mgr);
|
|
|
|
void key_binding_new_for_seat(
|
|
struct key_binding_manager *mgr, const struct seat *seat);
|
|
|
|
void key_binding_new_for_conf(
|
|
struct key_binding_manager *mgr, const struct wayland *wayl,
|
|
const struct config *conf);
|
|
|
|
/* Returns the set of key bindings associated with this seat/conf pair */
|
|
struct key_binding_set *key_binding_for(
|
|
struct key_binding_manager *mgr, const struct config *conf,
|
|
const struct seat *seat);
|
|
|
|
/* Remove all key bindings tied to the specified seat */
|
|
void key_binding_remove_seat(
|
|
struct key_binding_manager *mgr, const struct seat *seat);
|
|
|
|
void key_binding_unref(
|
|
struct key_binding_manager *mgr, const struct config *conf);
|
|
|
|
void key_binding_load_keymap(
|
|
struct key_binding_manager *mgr, const struct seat *seat);
|
|
void key_binding_unload_keymap(
|
|
struct key_binding_manager *mgr, const struct seat *seat);
|