Tim Culverhouse
fb649e689d
input(kitty): fix reporting of alternate keys
...
Fix reporting of alternate keys when using the kitty protocol. Alternate
keyboard layouts were failing to report the "base layout" key. This
implementation now matches kitty's output 1:1, and has some added unit
tests for cyrillic characters.
This also fixes a bug where a caps_lock modified key would report the
shifted key as well. The protocol explicitly requires that shifted keys
are only reported if the shift modifier is true.
2023-09-29 06:37:08 -05:00
Mitchell Hashimoto
35a4427f54
input: 0x7F is a control character, use helper
...
Fixes #556
One check for control chars was missing 0x7F. Since we do this three
times, extract it to a helper and call that.
2023-09-27 07:57:21 -07:00
Mitchell Hashimoto
510f0fe8f2
apprt/embedded: if a physical key input is a keypad key, keep it
2023-09-22 11:44:18 -07:00
Mitchell Hashimoto
9ad27924a6
input: correct xterm encoding for modified F1-F4
...
Fixes #499
2023-09-20 14:33:55 -07:00
Mitchell Hashimoto
ff74f27b99
macos: send caps lock state to UCKeyTranslate
2023-09-19 15:42:36 -07:00
Mitchell Hashimoto
62a35417ab
input: kitty alternates and text should not include control characters
2023-09-19 15:18:00 -07:00
Mitchell Hashimoto
58a43f1980
config: store some basic errors on parse
2023-09-11 09:10:26 -07:00
Mitchell Hashimoto
4570356e57
turn zoom into a toggle rather than an explicit zoom/unzoom
2023-09-02 16:03:51 -07:00
Mitchell Hashimoto
519a97b782
core: add unzoom_split binding
2023-09-02 15:15:12 -07:00
Mitchell Hashimoto
50a1a52ae3
core: add zoom keybinding for splits
2023-09-02 14:52:43 -07:00
Mitchell Hashimoto
67bc9f59ed
input: kitty keymap was missing page up/down
2023-08-31 14:32:42 -07:00
Mitchell Hashimoto
369ffebb72
input: when overwriting a binding, we must update the reverse map
2023-08-31 13:08:33 -07:00
Mitchell Hashimoto
fe5da86bb0
input: maintain a reverse mapping to quickly look up trigger by action
2023-08-31 12:45:43 -07:00
Mitchell Hashimoto
ba883ce39a
add ghostty_config_trigger C API to find a trigger for an action
2023-08-30 22:14:44 -07:00
Mitchell Hashimoto
17e46bf0f4
input: move action parsing to dedicating Action.parse
2023-08-30 21:39:25 -07:00
Mitchell Hashimoto
39c2332d35
input: keypad enter should act as normal "\r" if no other seq matches
...
This matches Kitty behavior on both macOS and Linux. In certain keyboard
modes and Kitty keyboard modes, the behavior changes but those already
matched (tested).
2023-08-26 07:43:22 -07:00
Mitchell Hashimoto
e7c11f7d13
input: kitty should not encode modifier-only key unless "report all"
2023-08-24 21:24:41 -07:00
Mitchell Hashimoto
3a93aaf9cf
apprt/embedded: do not translate control characters
...
macOS translates inputs such as shift+tab into the control character tab
(ascii 0x09). Linux/GTK does not translate character inputs except to
printable characters. We don't want control character translations
because these are all handled manually by our key encoder (i.e.
translating ctrl+c to 0x03).
2023-08-24 15:01:57 -07:00
Mitchell Hashimoto
5e45dc3386
input: kitty encoding should only output unmodified utf8 if printable
2023-08-22 15:00:53 -07:00
Mitchell Hashimoto
99abff85dd
input: pc style function keys should use all mods, not effective
2023-08-21 08:10:27 -07:00
Mitchell Hashimoto
7ccf86b175
remove imgui and devmode
...
imgui has been a source of compilation challenges (our fault not theirs)
and devmode hasn't worked in awhile, so drop it.
2023-08-20 08:50:24 -07:00
Thorsten Ball
2e9b787668
macOS: new window can inherit font size
...
This is the second part of #281 and adds the same mechanism that was
added for tabs in #296 for windows.
It works exactly the same way.
2023-08-19 09:29:56 +02:00
Mitchell Hashimoto
4f5460475c
Merge pull request #296 from mitchellh/mrn/macos-inherit-font-size
...
macOS: inherit font size when creating new tab
2023-08-18 09:22:06 -07:00
Mitchell Hashimoto
b7e1122224
input: remove old TODO. This is handled now in the app runtimes
2023-08-17 12:59:22 -07:00
Thorsten Ball
d2dae7a696
macOS: inherit font size when creating new tab
...
This is one part of #281 .
2023-08-17 20:56:56 +02:00
Mitchell Hashimoto
91456fe420
input: repeat events need to be handled for Kitty w/o report events
2023-08-17 11:23:13 -07:00
Mitchell Hashimoto
78080f0cd6
input: proper optional entry handling
2023-08-17 09:52:44 -07:00
Mitchell Hashimoto
6493da0dd3
input: Kitty encodes alternate keys
2023-08-17 09:51:16 -07:00
Mitchell Hashimoto
fe0e1f5ee8
input: key must provide unshifted codepoint
2023-08-17 09:40:32 -07:00
Mitchell Hashimoto
37daf02804
core: use Kitty encoding if enabled
2023-08-17 09:02:43 -07:00
Mitchell Hashimoto
fb9dc74b29
input: lot more Kitty encoding logic
2023-08-17 08:55:37 -07:00
Mitchell Hashimoto
91ba53b081
input: KittySequence for encoding sequences
2023-08-17 08:43:40 -07:00
Mitchell Hashimoto
c5177f6609
input: begin kitty key encoding logic (not working yet)
2023-08-16 22:08:16 -07:00
Mitchell Hashimoto
b42178bf34
input: add kitty keymap data
2023-08-16 22:08:05 -07:00
Mitchell Hashimoto
9cef09c58d
input: do not send ctrl-sequences for ctrl-i,m,[
2023-08-16 14:17:31 -07:00
Mitchell Hashimoto
2ff2e018ba
input: clarify why we use all mods for unicode CSI u
2023-08-16 14:04:38 -07:00
Mitchell Hashimoto
dcf9cdd8bf
input: CSI u encoding for modified unicode chars
2023-08-16 13:57:17 -07:00
Mitchell Hashimoto
c254a8b09e
input: encoding should always write to the buf
2023-08-16 12:48:48 -07:00
Mitchell Hashimoto
aadb78394b
input: legacy encoding never emits sequence during dead key state
2023-08-16 12:48:48 -07:00
Mitchell Hashimoto
9b90692fc7
core: start on key2Callback for the new callback that uses KeyEncoder
2023-08-16 12:48:48 -07:00
Mitchell Hashimoto
a2d4e7ce29
input: legacy key encoding handles alt-as-esc for general utf8
2023-08-16 12:48:48 -07:00
Mitchell Hashimoto
871f797758
input: KeyEncoder handles the charCallback stuff now too
2023-08-16 12:48:48 -07:00
Mitchell Hashimoto
6555bb1410
input: KeyEncoder legacy encoding handles old keyCallback logic
2023-08-16 12:48:48 -07:00
Mitchell Hashimoto
f57fd99d3e
input: starting to work on KeyEncoder, got ctrl sequences
2023-08-16 12:48:48 -07:00
Mitchell Hashimoto
e7bb9c60b2
input: expand Mods size, convert everything to use it
2023-08-14 12:31:16 -07:00
Mitchell Hashimoto
3556cf8407
input: unify binding-sensitive mods to a single func
2023-08-14 11:51:10 -07:00
Mitchell Hashimoto
aec342918b
input: various more helpers
2023-08-13 15:38:30 -07:00
Mitchell Hashimoto
c0736676ce
core: match and emit function keys
2023-08-13 14:55:32 -07:00
Mitchell Hashimoto
23f6f950b9
input: add all the mappings for pc style function keys
...
Not hooked up yet.
2023-08-13 14:55:31 -07:00
Mitchell Hashimoto
a8426a90dd
input: carbon modifier bits were not correct for some modifiers
...
I went and downloaded a couple different programs that use
UCKeyTranslate and dumped their values since I cannot find the header
file and then wrote a unit test to make sure we stay accurate here.
2023-08-12 15:32:18 -07:00