mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
keymap: align backspace escapes with XTerm
Backspace now emits DEL for all non-ctrl modifier combos, and BS for all ctrl modifier combos. The alt modifier prefixes DEL/BS with ESC. This also removes my own hack of mapping ctrl+backspace to alt+backspace. Describe backspace behavior in both the README and the man page. TODO: implement DECBKM to allow applications to toggle the backspace behavior.
This commit is contained in:
parent
54fbfb6405
commit
ae23023341
3 changed files with 44 additions and 3 deletions
17
README.md
17
README.md
|
|
@ -15,6 +15,7 @@
|
||||||
1. [Mouse](#mouse)
|
1. [Mouse](#mouse)
|
||||||
1. [Server (daemon) mode](#server-daemon-mode)
|
1. [Server (daemon) mode](#server-daemon-mode)
|
||||||
1. [Alt/meta](#alt-meta)
|
1. [Alt/meta](#alt-meta)
|
||||||
|
1. [Backspace](#backspace)
|
||||||
1. [DPI and font size](#dpi-and-font-size)
|
1. [DPI and font size](#dpi-and-font-size)
|
||||||
1. [Requirements](#requirements)
|
1. [Requirements](#requirements)
|
||||||
1. [Running](#running)
|
1. [Running](#running)
|
||||||
|
|
@ -220,6 +221,22 @@ mode_, `\E[?1034l`), and enabled again with `smm` (_set meta mode_,
|
||||||
'\E[?1034h`).
|
'\E[?1034h`).
|
||||||
|
|
||||||
|
|
||||||
|
## Backspace
|
||||||
|
|
||||||
|
Foot transmits DEL (`^?`) on <kbd>backspace</kbd>. This corresponds to
|
||||||
|
XTerm's `backarrowKey` option set to `false`, and to DECBKM being
|
||||||
|
_reset_.
|
||||||
|
|
||||||
|
To instead transmit BS (`^H`), press
|
||||||
|
<kbd>ctrl</kbd>+<kbd>backspace</kbd>.
|
||||||
|
|
||||||
|
Note that foot does **not** implement DECBKM, and that the behavior
|
||||||
|
described above **cannot** be changed.
|
||||||
|
|
||||||
|
Finally, pressing <kbd>alt</kbd> will prefix the transmitted byte with
|
||||||
|
ESC.
|
||||||
|
|
||||||
|
|
||||||
## DPI and font size
|
## DPI and font size
|
||||||
|
|
||||||
Font sizes are apparently a complex thing. Many applications use a
|
Font sizes are apparently a complex thing. Many applications use a
|
||||||
|
|
|
||||||
|
|
@ -199,6 +199,17 @@ This can also be disabled programatically with *rmm* (Reset Meta Mode,
|
||||||
*\E[?1034l*), and enabled again with *smm* (Set Meta Mode,
|
*\E[?1034l*), and enabled again with *smm* (Set Meta Mode,
|
||||||
*\E[?1034h*).
|
*\E[?1034h*).
|
||||||
|
|
||||||
|
# BACKSPACE
|
||||||
|
|
||||||
|
Foot transmits DEL (*^?*) on backspace. This corresponds to XTerm's
|
||||||
|
*backarrowKey* option set to *false*, and to DECBKM being _reset_.
|
||||||
|
|
||||||
|
To instead transmit BS (*^H*), press *ctrl*+*backspace*.
|
||||||
|
|
||||||
|
Note that foot does *not* implement DECBKM, and that the behavior
|
||||||
|
described above *cannot* be changed.
|
||||||
|
|
||||||
|
Finally, pressing *alt* will prefix the transmitted byte with ESC.
|
||||||
|
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
|
|
||||||
|
|
|
||||||
19
keymap.h
19
keymap.h
|
|
@ -38,9 +38,22 @@ static const struct key_data key_backtab[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct key_data key_backspace[] = {
|
static const struct key_data key_backspace[] = {
|
||||||
{MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x7f"},
|
{MOD_SHIFT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x7f"},
|
||||||
{MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x7f"},
|
{MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x7f"},
|
||||||
{MOD_ANY, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x7f"},
|
{MOD_SHIFT | MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x7f"},
|
||||||
|
{MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x08"},
|
||||||
|
{MOD_SHIFT | MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x08"},
|
||||||
|
{MOD_ALT | MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x08"},
|
||||||
|
{MOD_SHIFT | MOD_ALT | MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x08"},
|
||||||
|
{MOD_META, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x7f"},
|
||||||
|
{MOD_META | MOD_SHIFT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x7f"},
|
||||||
|
{MOD_META | MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x7f"},
|
||||||
|
{MOD_META | MOD_SHIFT | MOD_ALT, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x7f"},
|
||||||
|
{MOD_META | MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x08"},
|
||||||
|
{MOD_META | MOD_SHIFT | MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x08"},
|
||||||
|
{MOD_META | MOD_ALT | MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x08"},
|
||||||
|
{MOD_META | MOD_SHIFT | MOD_ALT | MOD_CTRL, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\033\x08"},
|
||||||
|
{MOD_ANY, CURSOR_KEYS_DONTCARE, KEYPAD_DONTCARE, "\x7f"},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_MODS_FOR_SINGLE(sym) \
|
#define DEFAULT_MODS_FOR_SINGLE(sym) \
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue