49 Commits

Author SHA1 Message Date
e34414f6d6 Test for permanent responses for capabilities (#862) 2025-04-21 03:09:59 +00:00
8e1778e2db Some terminal docs, naming changes, and shuffling (#839) 2025-03-28 16:19:22 +00:00
cd8f78e70e Detect Kitty text sizing protocol (#835) 2025-03-26 11:25:23 -04:00
7e10e56d87 Cursor position event (#829) 2025-03-25 17:44:32 +00:00
4b40ca742a Expose terminal name (#828) 2025-03-25 16:22:46 +00:00
3f2c6107e7 Parse secondary attributes event (#827) 2025-03-25 15:59:41 +00:00
83a7d0c2f3 Create Terminal.Theme, and use Terminal.Size more (#815)
The ternary theme more accurately models our knowledge, and the size propagates both cell and pixel values.
2025-03-21 04:10:01 +00:00
52916d2f4a Rewrite POSIX Tty to actually use the TTY (#805)
And a PTY for testing. Windows still uses stdin/stdout for now.
2025-03-19 20:27:29 +00:00
01f5a6132e Expose all events on Termainl (#798)
Do not use a channel to communicate between the parser and the state machine. Process directly, and then forward all events to the channel.
2025-03-16 03:19:27 +00:00
a9441cc34f Eliminate terminal event package (#795) 2025-03-15 03:57:21 +00:00
d77614b518 Split Terminal API from TTY Terminal implementation (#785)
This fixes the public API problem in the runtime.

Expose a TestTerminal from the testing library as well.
2025-03-13 15:30:10 +00:00
423ba21f8c Push terminal feature detection into terminal library (#784)
This starts to provide a high-level terminal abstraction. It's not perfect, but it's good enough to start with.
2025-03-13 04:34:30 +00:00
3c1458fbcb Do not repeat APIs from Tty (#758)
These are lower-level, so you can go down to get them.
2025-02-28 20:26:56 +00:00
2a352c26f8 Post-split rename (part 2) 2025-02-28 10:10:50 -05:00
8b8f02d0a0 Bring back TerminalParser (#756)
This is a better design, and it will allow TerminalReader to ascend into a higher-level abstraction that is more useful.
2025-02-28 14:58:07 +00:00
903e9d15e4 Expose underlying Tty instance from TerminalReader (#754) 2025-02-27 21:07:32 +00:00
4461277809 Eliminate useless Tty type (#728)
I want the name for renaming PlatformInput.
2025-02-23 16:53:23 +00:00
915d5ce41a Move raw mode enabling to platform input (#723) 2025-02-23 06:10:14 +00:00
1f78d959ce Query for Kitty underline support (#715) 2025-02-20 15:29:29 +00:00
82bd8277e8 Add more capability detection to startup (#702)
Kitty notification and pointer shape.
2025-02-18 05:29:37 +00:00
cc31d49df5 Switch to our own terminal library (#695)
* Switch to our own terminal library

This handles raw mode, VT parsing, and other system integration.

* Docs needs native libraries now

* API dump

* More test hacks

* Formatting
2025-02-14 14:44:52 -05:00
968d2fe4c5 Parse terminal ID(?) from primary device attributes (#690)
I have no idea if this is called an "ID", but the docs omit a name. This is needed to determine during capability querying whether we can issue more complex queries or at the dumbest of dumb terminals (read: Terminal.app on macOS).
2025-02-12 05:51:56 +00:00
17c2369efd Add API for synchronosly fetching the current terminal size (#688) 2025-02-10 10:32:36 -05:00
5ece0808b3 Parse tertiary DA for kicks (#684) 2025-02-07 12:04:19 -05:00
d32e42be0e Add platform resize events (#683) 2025-02-06 15:57:53 -05:00
fe34cd2f29 Rewrite native input handling
This will allow out-of-band events to come in, such as a resize from SIGWINCH, or focus and resize from Windows' console events in a future change.
2025-01-24 05:25:38 +00:00
aaf44d68b0 Parse Kitty pointer shape query events (#637) 2025-01-08 04:41:08 +00:00
815a79eadd Output bytes with parsed events (#570) 2024-12-06 03:27:23 +00:00
7c0c660647 XTerm size event parsing (#569) 2024-12-05 04:57:59 +00:00
5c851537c0 Parse XTerm mouse (#561) 2024-12-04 00:49:37 -05:00
313a770845 Flesh out Kitty parsing even more (#559) 2024-12-03 05:03:12 +00:00
a2b8cd4744 Parse Kitty keyboard event type (#556) 2024-11-29 06:24:55 +00:00
1930f5b6c1 Start parsing Kitty keyboard events (#555)
Just enough to capture Ctrl+C in this mode for now.
2024-11-29 05:26:51 +00:00
0daaffcb7f Make ResizeEvent more robust (#551)
Ignore subparameters and validate mode number.
2024-11-27 15:16:39 -05:00
fbdea9c215 Start parsing OSC color updates (#549) 2024-11-27 15:39:18 +00:00
7dcd087b74 Parse operating status reports (#544) 2024-11-22 21:51:09 +00:00
c7718be9b6 Parse DEC mode reports (#542)
Also reduce handling of error cases. Since the bytes are included, the codepath the parser takes will be clear upon debugging. No need to optimize for cases which should never happen.
2024-11-22 15:47:38 +00:00
be19d649e6 Parse Kitty keyboard query responses (#541) 2024-11-22 06:03:51 +00:00
801dbe185d Use dedicated event for terminal version (#540)
The xterm spec says this is a 'DSR sequence' which is why the DSR event was used previously, but the format is completely different than the other DSR-based responses.
2024-11-22 04:59:32 +00:00
2aa8682c00 Parse system theme events (#539) 2024-11-22 04:28:49 +00:00
b1af118fcc Primary device attributes event test (#538)
And other small fixes from last night.
2024-11-21 15:38:58 +00:00
baef906adb Start testing the terminal parser (#537)
Fix a bug in the "CSI ... ~" logic which defaulted to a fallback index that included the tilde, rather than the index of the tilde itself.
2024-11-21 03:44:27 +00:00
762020cd72 Start parsing terminal events (#534) 2024-11-20 18:13:15 -05:00
61497a5cb3 Make Tty functions static on the JVM (#527) 2024-11-15 04:02:38 +00:00
90ca74d617 Support read with a millisecond timeout (#500) 2024-10-19 03:55:00 +00:00
d254d94c06 Add stdin reader to Tty class (#472) 2024-09-12 00:41:14 -04:00
b7516bc630 Stuff (#466)
- Klib API dumps
- UInt comparison
- Publishing gets Dokka automatically
2024-09-07 00:00:20 -04:00
89e9f8befe Make raw mode entry more robust (#465) 2024-09-06 23:18:27 -04:00
fbd6b8f0b4 Start a terminal project for low-level utilities (#457)
Up first is a mechanism to enable raw mode.
2024-08-30 10:54:56 -04:00