Mitchell Hashimoto
7626f194e9
basic charset mapping, support configuration, print tests
2022-08-27 09:42:05 -07:00
Mitchell Hashimoto
75b63f3df3
british charset
2022-08-27 08:41:06 -07:00
Mitchell Hashimoto
40ca2a69fb
starting charset tables
2022-08-26 20:00:25 -07:00
Mitchell Hashimoto
1f4572b3d2
update TODO
2022-08-26 15:20:28 -07:00
Mitchell Hashimoto
50409271a3
Mouse Reporting #8
...
Implements all known formats and event types for mouse reporting. This makes vim, htop, etc. handle mouse events!
Mouse formats:
* X10
* UTF-8
* SGR
* urxvt
* SGR Pixels
Event types:
* X10
* "Normal" - mouse button press/release, including scroll wheel
* "Button" - "Normal" + mouse motion events while a button is pressed
* "Any" - "Normal" + mouse motion events at anytime (even if a button is not pressed)
See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking
2022-08-26 15:10:14 -07:00
Mitchell Hashimoto
ff460887b5
fix miscompilation around sgr mode
2022-08-26 15:07:22 -07:00
Mitchell Hashimoto
fe6ba02709
sgr pixels mouse report format
2022-08-26 14:59:44 -07:00
Mitchell Hashimoto
1039ad76bf
urxvt reporting format
2022-08-26 14:57:35 -07:00
Mitchell Hashimoto
f551c0ef66
SGR reporting
2022-08-26 14:55:18 -07:00
Mitchell Hashimoto
b46fe522d5
UTF-8 mouse reporting
2022-08-26 14:42:20 -07:00
Mitchell Hashimoto
ab305add6c
any event mouse tracking
2022-08-26 14:26:42 -07:00
Mitchell Hashimoto
bd5dd69538
normal event (motion) mouse tracking
2022-08-26 14:17:42 -07:00
Mitchell Hashimoto
9aa5378ffa
Track/cache button state and mods state
2022-08-26 13:55:24 -07:00
Mitchell Hashimoto
a4bab6592d
normal events can now track scroll
2022-08-26 12:25:33 -07:00
Mitchell Hashimoto
3096b32f13
mouse normal events in x10 format
2022-08-26 12:17:58 -07:00
Mitchell Hashimoto
93f45af41b
X10 click-only mouse reporting
2022-08-26 12:04:54 -07:00
Mitchell Hashimoto
43b7727cf8
change u1 in mode to bool
2022-08-26 11:27:44 -07:00
Mitchell Hashimoto
f9274bdafc
define mouse events, all TODO
2022-08-26 11:14:34 -07:00
Mitchell Hashimoto
dc6fc5c1c3
implement faint colors (SGR 2)
2022-08-26 11:13:34 -07:00
Mitchell Hashimoto
65df657b4e
make cell attrs bools instead of u1s
2022-08-26 11:09:48 -07:00
Mitchell Hashimoto
469515c02b
bind function keys (F1 to F12)
2022-08-26 10:27:41 -07:00
Mitchell Hashimoto
4ffd5cd994
SGR 39/49 (reset fg/bg, respectively)
2022-08-26 09:56:17 -07:00
Mitchell Hashimoto
a1130095f8
note charsets are TODO
2022-08-26 09:27:51 -07:00
Mitchell Hashimoto
551de6eda4
update TODO
2022-08-25 16:45:39 -07:00
Mitchell Hashimoto
c7a5045bd4
missed comment
2022-08-25 16:24:20 -07:00
Mitchell Hashimoto
84b75967a2
scale the cursor position from screen coords to pixels
2022-08-25 16:09:54 -07:00
Mitchell Hashimoto
a9b34b43c5
code for getting physical DPI
...
we don't need it but I want to put it in Git history
2022-08-25 15:53:29 -07:00
Mitchell Hashimoto
9601920b4d
font size is now in font points, determine size based on window DPI
2022-08-25 12:29:28 -07:00
Mitchell Hashimoto
46bbab5d10
ignore zero-width characters for now
2022-08-24 13:48:22 -07:00
Mitchell Hashimoto
d0f888daae
update TODO, we fixed atlas resizing
2022-08-24 12:41:51 -07:00
Mitchell Hashimoto
f4b1783c1f
atlas tracks modified/resize state, reallocate on GPU if resized
2022-08-24 12:41:31 -07:00
Mitchell Hashimoto
d8248ef0ae
fix data corruption on growing the Atlas
2022-08-24 12:14:02 -07:00
Mitchell Hashimoto
4751e3185d
update TODO
2022-08-24 11:32:47 -07:00
Mitchell Hashimoto
76bce8893c
Keybindings, support arrow keys, home/end, page up/down
...
Introduces a more robust keybinding system. Previously, keybinds were hardcoded into literal `if key = this and modifier = that`. Now, we have a system for defining keybindings in a human friendly way i.e. `super+c=copy_from_clipboard` and a system internally for looking up and executing keybind actions.
There's still a lot more keybinds we can add support for but now that this system is in place it should be easy to do as we get there. Namely, we need to fully implement this: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-PC-Style-Function-Keys
You can now set custom keybinds by specifying the `--keybind` flag to the program. Example: `ghostty --keybind=super+c=copy_from_clipboard`. You can repeat this flag to specify more keybinds. The full set of actions available is in `src/input/Binding.zig` under `Action`.
2022-08-24 11:24:30 -07:00
Mitchell Hashimoto
5713c2f468
move input test to qualified
2022-08-24 11:17:28 -07:00
Mitchell Hashimoto
3b5a9caff5
hook up more control keys: home, end, page up, page down
2022-08-24 11:16:36 -07:00
Mitchell Hashimoto
80376ce6da
hook up keybindings for copy/paste and arrow keys
2022-08-24 11:08:39 -07:00
Mitchell Hashimoto
e6f09093dd
unify non-printables up by bindings
2022-08-24 10:21:27 -07:00
Mitchell Hashimoto
b33268cee3
only handle non-printables on press/release, and BS is 0x7F
2022-08-24 10:18:05 -07:00
Mitchell Hashimoto
622537d665
look up keybindings on keypress, clean up how non-printables are handled
2022-08-24 10:02:13 -07:00
Mitchell Hashimoto
2800a46854
keybind parsing in CLI args
2022-08-24 09:31:14 -07:00
Mitchell Hashimoto
222f70857a
move input stuff to src/input
2022-08-23 19:52:14 -07:00
Mitchell Hashimoto
bc9f81e8d2
binding parse action with parameter
2022-08-23 17:48:52 -07:00
Mitchell Hashimoto
7303909d01
key.Binding and basic parsing
2022-08-23 17:40:36 -07:00
Mitchell Hashimoto
5d8915cc9a
remove unused zig file
2022-08-23 15:30:13 -07:00
Mitchell Hashimoto
8e1e8cfc51
pin new zig-overlay repo
2022-08-23 10:23:02 -07:00
Mitchell Hashimoto
3774972caf
update mach
2022-08-23 10:07:18 -07:00
Mitchell Hashimoto
5c61bfbe8f
fix stage2 compiler error
2022-08-21 21:38:24 -07:00
Mitchell Hashimoto
13225a2d78
remove done shader TODO
2022-08-20 17:39:34 -07:00
Mitchell Hashimoto
f19f5fdc79
update TODO
2022-08-20 17:37:41 -07:00