Skip to content

Key names and escape sequences

Dave Pearson edited this page Dec 4, 2023 · 10 revisions

Introduction

In late summer and autumn 2023 we conducted a reasonably comprehensive review of terminal emulators and the escape sequences they produce for various keys; this was primarily done with a tool that helped record recognised triggered keys as well as unknown sequences (using a small hook inside Textual to get the unknown sequences).

General findings

The most common issue found amongst the terminals was modified F3, which was subsequently handled. Aide from that, no other clear issue was seen. Things that did stand out though was that:

  • Pretty much every terminal tested had some keys that had sequences currently unknown to Textual.
  • Few, if any, had any significant overlap between terminals.
  • Some forms of modified function key were off limits on macOS, mainly due to those key combinations having default meanings there.

Terminal notes

The following is the notes recorded while looking at each terminal/environment combination.

Alacritty - Darwin

Ctrl+number keys is just the number.

Higher Ctrl+Shift+Fn keys work okay, lower ones don't. macOS getting in the way?

Expected keys (14)

ctrl+0

Just 0

ctrl+1

Just 1

ctrl+2

Just 2

ctrl+3

Just 3

ctrl+4

Just 4

ctrl+5

Just 5

ctrl+6

Just 6

ctrl+7

Just 7

ctrl+8

Just 8

ctrl+9

Just 9

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

insert

Doesn't do anything

Unknown keys (2)

\x1b[1;2R

Shift f3

\x1b[1;5R

Ctrl+f3

Triggered keys (1)

ctrl+@

Was triggered by ctrl+space

Apple_Terminal (450) - Darwin

Ctrl and home/end just result in home/end.

Shift home/end/pageup/pagedown seem to navigate the terminal scrollback history, even in a fullscreen application.

Shift up and down just result in up and down.

Shift f1 through f4 just cause a terminal bell, with nothing else appearing to turn up in the terminal.

No ctrl and function key combination does anything; most just terminal bell.

No ctrl and number combination does anything; they all seem to just terminal bell.

Overall, keys that aren't handled seem to sound the terminal bell.

Expected keys (18)

ctrl+down

Just does down

ctrl+end

Just end

ctrl+h

Backspace

ctrl+home

Just home

ctrl+i

Tab

ctrl+m

Enter

ctrl+pagedown

Just does page up.

ctrl+pageup

Just does page down.

ctrl+shift+2

Does ctrl+@ AKA NUL

ctrl+shift+end

Seems to scroll the terminal history buffer

ctrl+shift+home

Seems to scrol the terminal history buffer

ctrl+up

Just does up.

shift+down

Just down

shift+end

Seems to scroll the terminal history buffer

shift+home

Seems to scroll the terminal history buffer

shift+pagedown

Seems to scroll the terminal history buffer

shift+pageup

Seems to scroll the terminal history buffer.

shift+up

Just up

contour (0.3.12.262) - Darwin

Control and number keys just seem to do the number itself.

Shift up and down don't seem to do anything.

F3 doesn't work.

Expected keys (10)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

f3

Does nothing

shift+down

Does nothing

shift+end

Does nothing

shift+home

Does nothing

shift+pagedown

Does nothing

shift+pageup

Does nothing

shift+up

Does nothing

Unknown keys (3)

\x1bO2P

Shift f2

\x1bO2Q\t\t

Ignore this, just an accidental press of shift f2 followed by some tabs.

\x1bO2S

Shift f4

Triggered keys (1)

ctrl+c

This was triggered by Enter on the numeric keypad.

GNOME Terminal - Linux

F11 and Ctrl+F11 toggle fullscreen mode.

Expected keys (3)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

Unknown keys (2)

\x1b[1;2R

Shift f3

\x1b[1;5R

Ctrl+f3

Hyper (3.4.1) - Windows

Shift pageup/down seem to do a version of a history buffer scrollback; but behaves weirdly in a Textual app.

Ctrl and number keys do nothing.

Ctrl+, opens a text editor with the configuration.

Ctrl+Shift+F5 is a full reload of the terminal; killing your application (and whole session).

Expected keys (4)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

f11

Toggles full screen mode

Unknown keys (7)

\x1b[1;2R

Shift f3

\x1b[1;5R

Ctrl+f3

\x1bd

Pressed ctrl+home

\x1bw\t\t

Apparently fallout from pressing ctrl+home and trying to get control back.

\x1bw

Also after pressing ctrl+home, then escape.

\x1bd\t

Pressing ctrl+end seems to result in a B (uppercase) followed by this.

\x1b[1;6R

Ctrl+shift+f3, I seem to recall.

iTerm.app (3.4.20) - Darwin

Few core changes made to how iTerm handles keys.

Control and section sign results in a '0'.

Control and Fn do nothing (actually they seem to do things in my desktop, so an OS thing?).

Expected keys (5)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

ctrl+pagedown

Scrolls the terminal itself

ctrl+pageup

Scrolls the terminal itself

Unknown keys (1)

\x1b[1;2R

Shift F3.

Kitty - Darwin

Control and number keys don't produce ctrl+0 through ctrl+9, generally producing other things.

Control, shift and number keys don't produce anything at all.

Out of the box Ctrl+Shift+Fn seems to be reserved by kitty for some default bindings.

Lots of ctrl+cmd+ combinations seem to generate sequences, ctrl+cmd+, is used by kitty out of the box.

Expected keys (26)

ctrl+0

Just 0

ctrl+1

Just 1

ctrl+2

Ctrl+@

ctrl+3

Produces escape

ctrl+4

Ctrl+backslash

ctrl+5

Ctrl+right_square_bracket

ctrl+6

ctrl+circumflex_accent

ctrl+7

ctrl+underscore

ctrl+8

backspace

ctrl+9

Just 9

ctrl+h

This registers as backspace.

ctrl+i

This registers a tab.

ctrl+m

This registers as enter.

ctrl+shift+0

Nothing

ctrl+shift+1

Nothing

ctrl+shift+2

Nothing

ctrl+shift+3

Nothing

ctrl+shift+4

Nothing

ctrl+shift+5

Nothing

ctrl+shift+6

Nothing

ctrl+shift+7

Nothing

ctrl+shift+8

Nothing

ctrl+shift+9

Nothing

ctrl+shift+delete

Seems to wipe the terminal, for some reason. Moving around again makes it draw back in.

insert

Pressing insert does nothing.

shift+insert

This doesn't register anything.

Unknown keys (30)

\x1b[13;2~

This was shift F3

\x1b[13;5~

This was ctrl+F3

\x1b[1;9P11

I missed where this came from

\x1b[167;5u

This is ctrl+§

\x1b[97;9u

Not sure how I got this one; It was while I was annotating another key so I think it may have happened while inside the dialog.

Actually, it can't have been while I was in the dialog, beause it's only when we're in the key recording widget that this is a thing?

On the third hand... the unknown sequence capture code is in place all the time. Perhaps I should remove it when not in the relevant widget?

\x1b[13;6~

Ctrl+shift+f3

\x1b[3;13~

Ctrl+cmd+del

\x1b[1;13H

ctrl+cmd+home

\x1b[1;13F

ctrl+cmd+end

\x1b[5;13~

ctrl+cmd+pgup

\x1b[6;13~

ctrl+cmd+pgdn

\x1b[49;13u

ctrl+cmd+1

\x1b[50;13u

ctrl+cmd+2

\x1b[51;13u

ctrl+cmd+3

\x1b[52;13u

ctrl+cmd+4

\x1b[53;13u

ctrl+cmd+5

\x1b[54;13u

ctrl+cmd+6

\x1b[55;13u

ctrl+cmd+7

\x1b[56;13u

ctrl+cmd+8

\x1b[57;13u

ctrl+cmd+9

\x1b[48;13u

ctrl+cmd+0

\x1b[45;13u

ctrl+cmd+-

\x1b[61;13u

ctrl+cmd++

\x1b[91;13u

ctrl+cmd+[

\x1b[93;13u

ctrl+cmd+]

\x1b[92;13u

ctrl+cmd+\

\x1b[39;13u

ctrl+cmd+'

\x1b[59;13u

ctrl+cmd+;

\x1b[47;13u

ctrl+cmd+/

\x1b[46;13u

ctrl+cmd+.

Triggered keys (5)

ctrl+backslash

This was produced by ctrl+4.

ctrl+underscore

Produced by ctrl+7.

ctrl+circumflex_accent

Produced by ctrl+6.

ctrl+f1

This doesn't work; no key press is registered.

ctrl+f8

Pressing ctrl+f8 doesn't register a key.

rio (0.0.22) - Darwin

Anything to do with function keys seems to produce unicode characters rather than escape seqeunces.

Expected keys (3)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

Unexpected keys (16)

Ctrl+home

Ctrl+end

Ctrl+pgup

Ctrl+pgdn

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

f11

f12

rio (0.0.26) - Darwin

Ctrl+fn keys don't appear to do anything.

Ctrl+number emits just the number.

Expected keys (12)

ctrl+delete

Emits shift+ instead

ctrl+down

Emits shift+ instead

ctrl+end

Emits shift+ instead

ctrl+h

Backspace

ctrl+home

Emits shift+ instead.

ctrl+i

Tab

ctrl+left

Emits shift+ instead.

ctrl+m

Enter

ctrl+pagedown

Emits shift+ instead

ctrl+pageup

Emits shift+ instead

ctrl+right

Emits shift+ instead

ctrl+up

Emits shift+ instead

Unexpected keys (1)

Shift+opt+k

Unknown keys (3)

\x1b[1;2R

Shift+f3

But I need to update Textual and this should then work.

\x1b[2;2~\t\t

Ignore

\x1b[2;2~

Shift+insert

Triggered keys (10)

shift+insert

This was actually ctrl+insert

shift+delete

Ctrl+delete too, it seems

shift+home

ctrl+home too

shift+end

ctrl+end too

shift+pageup

ctrl+pageup too

shift+pagedown

ctrl+pagedn too

shift+left

ctrl+left too

shift+right

ctrl+right too

shift+up

ctrl+up too

shift+down

ctrl+down too

Tabby - Darwin

Ctrl Fn keys seem to do nothing.

Pressing Ctrl+Shift together seems to pop up some sort of tab description.

Expected keys (5)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

shift+pagedown

Does nothing

shift+pageup

Does nothing

Unknown keys (2)

\x1b[1;2R

Shift f3

\x1b\r\t\t\t\t\t\t

Not sure what I pressed to kick this off, but then I was tabbing a few times afterwards.

Triggered keys (2)

ctrl+right_square_bracket

Invoked by ctrl+5 too.

ctrl+backslash

Actually pressed ctrl+4

Terminator - Darwin

Running under XQuartz.

F1 pulls up the help for the terminal (in a web browser). F11 toggles full screeen. Shift+F10 pulls up a context menu (perhpas an XQuartz thing?) Ctrl+PgUp/Dn don't seem to do anything. Many Ctrl+Shift+ keys are reserved for use by the emulator itself (c+s+Q quits, for example)

Expected keys (5)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

f1

Loads help in the web browser

f11

Toggles full screen

textual-web (0.5.4) - Darwin

Ctrl+Fn keys don't seem to work at all.

Shift pgup/pgdn don't work.

Ctrl pgup/pgdn change tabs (in Chrome anyway, no special configuration).

Ctrl and number keys don't result in those expected names; but some give other keys.

Ctrl shift and pgdn/pgup does nothing.

Expected keys (9)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

ctrl+pagedown

Changes tabs in the browser

ctrl+pageup

Changes tabs in the browser

ctrl+shift+pagedown

Does nothing

ctrl+shift+pageup

Does nothing

shift+pagedown

Doesn't work

shift+pageup

Doesn't work

Unknown keys (2)

\x1b[1;2R

Shift+f3

\x1b[1;6R

Ctrl+shift+f3

Triggered keys (4)

ctrl+w

Caused by opt-backspace

ctrl+right_square_bracket

Ctrl+5

ctrl+circumflex_accent

Ctrl+6

ctrl+@

Ctrl+shift+2

urxvt - Darwin

Shift+pgup/dn seem to scroll the scrollback buffer.

Ctrl+shift puts the terminal into "Keycap picture insert mode", which then lets you type in all sorts of other characters! See things like upwards_white_arrow, etc.

Expected keys (3)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

Unknown keys (35)

\x1b[23$

Shift-F11

\x1b[24$

Shift-F12

\x1b[11^

Ctrl+F1

\x1b[12^

Ctrl+F2

\x1b[13^

Ctrl+F3

\x1b[14^

Ctrl+F4

\x1b[15^

Ctrl+F5

\x1b[17^

Ctrl+F6

\x1b[18^

Ctrl+F7

\x1b[19^

Ctrl+F8

\x1b[20^

Ctrl+F9

\x1b[21^

Ctrl+F10

\x1b[23^

Ctrl+F11

\x1b[24^

Ctrl+F12

\x1b[3$

Shift+delete

\x1b[7$

Shift+home

\x1b[8$

Shift+end

\x1b[3^

Ctrl+del

\x1b[7^

Ctrl+home

\x1b[8^

Ctrl+end

\x1b[5^

Ctrl+pgup

\x1b[6^

Ctrl+pgdn

\x1bOm

Shift+minus on the numeric keypad

\x1bOk

Shift+plus on the numeric keypad

\x1bOw

Shift+home/7 on the numeric keypad

\x1bOx

Shift+8 on the numeric keyboard

\x1bOo

Shift+/ on the numeric keypad.

\x1bOj

Shift+* on the numeric keypad

\x1b[a

Shift+up

\x1b[b

Shift+down

\x1b[d

Shift+left

\x1b[c

Shift+right

\x1bOa

Ctrl+up

\x1bOb

Ctrl+down

\x1bOu

Shift+5 on the numeric keypad

Triggered keys (4)

ctrl+@

Ctrl+2

ctrl+backslash

Ctrl+4

ctrl+circumflex_accent

Ctrl+6

ctrl+underscore

Ctrl+7

urxvt - Linux

Unknown keys (12)

\x1b[3$

Shift delete

\x1b[7$

Shift home

\x1b[8$

Shift end

\x1b[d

Shift left

\x1b[c

Shift right

\x1b[3^

ctrl del

\x1b[7^

Ctrl home

\x1b[8^

Ctrl end

\x1b[5^

Ctrl pgup

\x1b[6^

Ctrl pgdn

\x1b[23$

Shift f11

\x1b[24$

Shift f12

WezTerm (20230712-072601-f4abf8fd) - Darwin

Ctrl+Fn do things on my desktop, so likely a macOS default.

Expected keys (7)

ctrl+h

Results in backspace

ctrl+i

Tab

ctrl+m

Results in enter

shift+escape

Just produces escape

shift+insert

Does not work

shift+pagedown

Does not work

shift+pageup

Does not work

Unknown keys (16)

\x1b[1;2R

Shift f3

\x1b§

Opt+secton sign

\x1b1

Opt+1

\x1b2

Opt+2

\x1b§\t

Ignore, just noise from testing

\x1b§\t\t\t\t

Ignore, just noise from testing

\x1b3

Opt+3

\x1b4

Opt+4

\x1b5

Opt+5

\x1b6

Opt+6

\x1b7

Opt+7

\x1b8

Opt+8

\x1b9

Opt+9

\x1b0

Opt+0

\x1b-

Opt+minus

\x1b=

Opt+=

Triggered keys (1)

ctrl+@

Ctrl+space was pressed

Windows Terminal - Windows

F11 toggles full screen (at least without any config changes).

Only some Ctrl+Fn keys work. It's not clear what the pattern is; perhaps used by the terminal?

Some keys work fine but generate an unexpected ctrl+@ before them; this is a known issue.

Ctrl+Shift+number seems to be used for opening ip fresh tabs; perhaps hot-keyed shells?

Expected keys (12)

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

ctrl+shift+down

Nothing

ctrl+shift+end

Nothing

ctrl+shift+home

Nothing

ctrl+shift+insert

Nothing

ctrl+shift+pagedown

Nothing

ctrl+shift+pageup

Nothing

ctrl+shift+up

Nothing

ctrl+v

Does nothing (detectable). Presumably this is paste?

f11

This seems to be used by the terminal to toggle fullscreen mode.

Unknown keys (2)

\x1b[1;2R

Shift F3

\x1b[1;5R

Ctrl+F3

Triggered keys (6)

backslash

This was the section sign, but I imagine this is a Windows vs Mac keyboard issue.

ctrl+backslash

Fired by ctrl+4

escape

Fired by ctrl+3 too.

ctrl+right_square_bracket

Fired by ctrl+5

ctrl+circumflex_accent

Fired by ctrl+6

ctrl+underscore

Fired by ctrl+7

XTerm(378) - Darwin

shift and pgup/pgdn do nothing. ctrl and shift and pgup/pgdn do nothing.

Ctrl+Fn don't seem to do anything.

Expected keys (17)

ctrl+0

Does nothing

ctrl+1

Does nothing

ctrl+2

Does nothing

ctrl+3

Does nothing

ctrl+4

Does nothing

ctrl+5

Does nothing

ctrl+6

Does nothing

ctrl+7

Does nothing

ctrl+8

Does nothing

ctrl+9

Does nothing

ctrl+h

Backspace

ctrl+i

Tab

ctrl+m

Enter

ctrl+shift+pagedown

Does nothing

ctrl+shift+pageup

Does nothing

shift+pagedown

Does nothing

shift+pageup

Does nothing

Unknown keys (4)

\x1b[28;2~

After pressing shift+delete

\x1b[1;5R

Ctrl+F3 (fixed in later Textual).

\x1b[28;6~

ctrl+shift+insert

\x1b[28;5~

Ctrl+insert

Triggered keys (2)

f15

This was Insert

ctrl+underscore

Actually ctrl+/

Unknown sequences

The following is a breakdown of sequences encountered, which were unknown to Textual. Some of these may go on to be handled following this writeup. The main guidance we'll follow here is that a new binding name that might not be common to all terminals should be avoided (because it may encourage developers to bind keys that aren't very portable, thus resulting in a degraded user experience); on the other hand, if an escape sequence is encountered for a particular terminal that maps to a very common binding, unless we can find a good reason to not do so (so checking for any sort of sequence clash would be a good idea here), we should add support for that sequence.

Sequence Notes Handled Via
\x1bd Pressed ctrl-home (Hyper (3.4.1)-Windows)
\x1bw Also after pressing ctrl-home, then escape. (Hyper (3.4.1)-Windows)
\x1b[28;2~ After pressing shift-delete (XTerm(378)-Darwin)
\x1b[28;6~ ctrl-shift-insert
(XTerm(378)-Darwin)
\x1b[28;5~ ctrl-insert (XTerm(378)-Darwin)
\x1b[23$ shift-F11 (urxvt-Darwin)
shift-f11 (urxvt-Linux)
\x1b[24$ shift-F12 (urxvt-Darwin)
shift-f12 (urxvt-Linux)
\x1b[11^ ctrl-F1 (urxvt-Darwin) #3737
\x1b[12^ ctrl-F2 (urxvt-Darwin) #3737
\x1b[14^ ctrl-F4 (urxvt-Darwin) #3737
\x1b[15^ ctrl-F5 (urxvt-Darwin) #3737
\x1b[17^ ctrl-F6 (urxvt-Darwin) #3737
\x1b[18^ ctrl-F7 (urxvt-Darwin) #3737
\x1b[19^ ctrl-F8 (urxvt-Darwin) #3737
\x1b[20^ ctrl-F9 (urxvt-Darwin) #3737
\x1b[21^ ctrl-F10 (urxvt-Darwin) #3737
\x1b[23^ ctrl-F11 (urxvt-Darwin) #3737
\x1b[24^ ctrl-F12 (urxvt-Darwin) #3737
\x1b[3$ shift-delete (urxvt-Darwin)
shift-delete (urxvt-Linux)
\x1b[7$ shift-home (urxvt-Linux)
shift-home (urxvt-Darwin)
\x1b[8$ shift-end (urxvt-Linux)
shift-end (urxvt-Darwin)
\x1b[3^ ctrl-del (urxvt-Darwin)
ctrl-del (urxvt-Linux)
\x1b[7^ ctrl-home (urxvt-Darwin)
ctrl-home (urxvt-Linux)
\x1b[8^ ctrl-end (urxvt-Darwin)
ctrl-end (urxvt-Linux)
\x1b[5^ ctrl-pgup (urxvt-Darwin)
ctrl-pgup (urxvt-Linux)
\x1b[6^ ctrl-pgdn (urxvt-Linux)
ctrl-pgdn (urxvt-Darwin)
\x1bOm shift-minus on the numeric keypad (urxvt-Darwin) #3769
\x1bOk shift-plus on the numeric keypad (urxvt-Darwin) #3769
\x1bOw shift-home/7 on the numeric keypad (urxvt-Darwin) #3769
\x1bOx shift-8 on the numeric keyboard (urxvt-Darwin) #3769
\x1bOo shift-/ on the numeric keypad. (urxvt-Darwin) #3769
\x1bOj shift-* on the numeric keypad (urxvt-Darwin) #3769
\x1b[a shift-up (urxvt-Darwin)
\x1b[b shift-down (urxvt-Darwin)
\x1b[d shift-left (urxvt-Darwin)
shift-left (urxvt-Linux)
\x1b[c shift-right (urxvt-Linux)
shift-right (urxvt-Darwin)
\x1bOa ctrl-up (urxvt-Darwin)
\x1bOb ctrl-down (urxvt-Darwin)
\x1bOu shift-5 on the numeric keypad (urxvt-Darwin) #3769
\x1b§ Opt+secton sign (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b1 Opt+1 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b2 Opt+2 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b3 Opt+3 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b4 Opt+4 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b5 Opt+5 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b6 Opt+6 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b7 Opt+7 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b8 Opt+8 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b9 Opt+9 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b0 Opt+0 (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b- Opt+minus (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b= Opt+= (WezTerm (20230712-072601-f4abf8fd)-Darwin)
\x1b[1;9P11 I missed where this came from (Kitty-Darwin)
\x1b[167;5u This is ctrl-§ (Kitty-Darwin)
\x1b[97;9u Not sure how I got this one; It was while I was annotating another key so I think it may have happened while inside the dialog.

Actually, it can't have been while I was in the dialog, beause it's only when we're in the key recording widget that this is a thing?

On the third hand... the unknown sequence capture code is in place all the time. Perhaps I should remove it when not in the relevant widget?
(Kitty-Darwin)
\x1b[3;13~ ctrl-cmd-del (Kitty-Darwin)
\x1b[1;13H ctrl-cmd-home (Kitty-Darwin)
\x1b[1;13F ctrl-cmd-end (Kitty-Darwin)
\x1b[5;13~ ctrl-cmd-pgup (Kitty-Darwin)
\x1b[6;13~ ctrl-cmd-pgdn (Kitty-Darwin)
\x1b[49;13u ctrl-cmd-1 (Kitty-Darwin)
\x1b[50;13u ctrl-cmd-2 (Kitty-Darwin)
\x1b[51;13u ctrl-cmd-3 (Kitty-Darwin)
\x1b[52;13u ctrl-cmd-4 (Kitty-Darwin)
\x1b[53;13u ctrl-cmd-5 (Kitty-Darwin)
\x1b[54;13u ctrl-cmd-6 (Kitty-Darwin)
\x1b[55;13u ctrl-cmd-7 (Kitty-Darwin)
\x1b[56;13u ctrl-cmd-8 (Kitty-Darwin)
\x1b[57;13u ctrl-cmd-9 (Kitty-Darwin)
\x1b[48;13u ctrl-cmd-0 (Kitty-Darwin)
\x1b[45;13u ctrl-cmd-- (Kitty-Darwin)
\x1b[61;13u ctrl-cmd-+ (Kitty-Darwin)
\x1b[91;13u ctrl-cmd-[ (Kitty-Darwin)
\x1b[93;13u ctrl-cmd-] (Kitty-Darwin)
\x1b[92;13u ctrl-cmd-\ (Kitty-Darwin)
\x1b[39;13u ctrl-cmd-' (Kitty-Darwin)
\x1b[59;13u ctrl-cmd-; (Kitty-Darwin)
\x1b[47;13u ctrl-cmd-/ (Kitty-Darwin)
\x1b[46;13u ctrl-cmd-. (Kitty-Darwin)
\x1b[2;2~ shift-insert (rio (0.0.26)-Darwin)
\x1bO2P shift-f2 (contour (0.3.12.262)-Darwin)
\x1bO2S shift-f4 (contour (0.3.12.262)-Darwin)
Clone this wiki locally