73 Commits

Author SHA1 Message Date
Mitchell Hashimoto
738c4dff4c clear_screen keybinding works even when not at shell prompt
Instead of sending formfeed (0x0C), clear_screen actually does a
terminal emulator level clear instead. This MOSTLY matches the behavior
of iTerm and Terminal.app, with some differences:

  1. I do not clear _below_ the cursor. I feel like the use case for
     this feature is primarily to clear above the cursor. Happy to be
     wrong here but I want it proven to me!

  2. I do not clear in alternate screen mode. Clearing alt screens
     breaks rendering in Vim, less, etc. and it feels like the wrong
     behavior.
2023-07-05 14:01:01 -07:00
Mitchell Hashimoto
314f9287b1 Update Zig (#164)
* update zig

* pkg/fontconfig: clean up @as

* pkg/freetype,harfbuzz: clean up @as

* pkg/imgui: clean up @as

* pkg/macos: clean up @as

* pkg/pixman,utf8proc: clean up @as

* clean up @as

* lots more @as cleanup

* undo flatpak changes

* clean up @as
2023-06-30 12:15:31 -07:00
Mitchell Hashimoto
56f8e39e5b Update zig, mach, fmt 2023-06-25 11:08:20 -07:00
Mitchell Hashimoto
03fd649b5e terminal: CHT/CBT 2023-06-25 09:53:58 -07:00
Mitchell Hashimoto
b2cd2e06de use stdlib selfExePath 2023-06-24 12:12:49 -07:00
Mitchell Hashimoto
9c8f784386 termio: sets TERMINFO if we can find the terminfo dir 2023-06-24 12:10:10 -07:00
Mitchell Hashimoto
28a22fc07f various tests to ensure we parse curly underlines correctly 2023-06-20 09:24:07 -07:00
Mitchell Hashimoto
866de88ee6 termio/exec: check cwd validity 2023-05-31 19:17:08 -07:00
Mitchell Hashimoto
e59b2f7fca terminal: track pwd reported via OSC 7 2023-05-31 18:54:24 -07:00
Mitchell Hashimoto
414f2e52a5 terminal: semantic prompt aware resize 2023-05-31 16:16:00 -07:00
Mitchell Hashimoto
de00892f8e termio/exec: handle semantic prompt events 2023-05-27 15:48:31 -07:00
Mitchell Hashimoto
3689f1fe39 apprt/gtk: only show exit confirmation if process is alive 2023-03-25 16:36:12 -07:00
Mitchell Hashimoto
b1af02941a terminal: implement focus event mode 1004
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-FocusIn_FocusOut
2023-03-20 15:20:14 -07:00
Mitchell Hashimoto
ce10d875b6 Merge pull request #117 from mitchellh/config-stuff
Reloadable Configuration
2023-03-19 12:32:23 -07:00
Mitchell Hashimoto
b0b3b0af2d update config messages use pointers now to make messages small again 2023-03-19 10:48:42 -07:00
Mitchell Hashimoto
638e05454f termio: allow write req pool to grow if needed
This may be necessary if large amounts of data is being written (i.e. a
large clipboard paste). The pool is never shrunk again for now but once
the writes go through the buffer items will of course be reused so its
unlikely to need to continue growing.
2023-03-19 10:27:08 -07:00
Mitchell Hashimoto
6f4e913182 termio/exec: comment about what we're updating 2023-03-19 10:11:32 -07:00
Mitchell Hashimoto
8f0be3ad9e termio: use DerivedConfig 2023-03-19 10:09:17 -07:00
Mitchell Hashimoto
91c9655475 remove unused function, make apprt surface close mandatory 2023-03-18 19:33:08 -07:00
Mitchell Hashimoto
6b61a2449a termio: no need to close pty primary when process exits 2023-03-18 19:30:01 -07:00
Mitchell Hashimoto
d83bf5aeb4 termio: close surface on process exit 2023-03-18 19:21:28 -07:00
Mitchell Hashimoto
872c1211f5 pty: deinit should close child end 2023-03-18 19:15:29 -07:00
Mitchell Hashimoto
679f07605e termio: detect child process exit 2023-03-18 18:58:34 -07:00
Mitchell Hashimoto
1b88f7e9ab support mouse alt scroll (mode 1007)
This enables less and other older legacy programs to get mouse scroll
events
2023-03-17 19:10:08 -07:00
Mitchell Hashimoto
89d07fcd83 clear_history binding, default Cmd+K 2023-03-03 09:27:47 -08:00
Mitchell Hashimoto
38060978e2 termio/exec: don't pass pointer to stack var 2023-02-28 11:07:03 -08:00
Mitchell Hashimoto
a8025f6ec2 termio: env should not freed because arena gets it 2023-02-27 11:55:04 -08:00
Mitchell Hashimoto
83a1d783b1 termio: implement kill command for flatpak 2023-02-27 11:44:18 -08:00
Mitchell Hashimoto
52d22a140c termio: exec uses new flatpak command, no more host-spawn 2023-02-27 11:26:31 -08:00
Mitchell Hashimoto
fc3802e632 termio: use host-spawn for pty 2023-02-25 22:36:20 -08:00
Mitchell Hashimoto
ec956debb7 Command/Pty work better with Flatpak but not 100% yet 2023-02-25 21:19:57 -08:00
Mitchell Hashimoto
913131c8f1 rename more stuff 2023-02-24 07:58:29 -08:00
Mitchell Hashimoto
fbe35c226b Integrating new surface 2023-02-24 07:58:29 -08:00
Mitchell Hashimoto
7fc9d1bf52 termio: remove xcode-injected env vars 2023-02-19 10:44:56 -08:00
Mitchell Hashimoto
573b163636 start input, its broken but we're getting there 2023-02-19 10:44:56 -08:00
Mitchell Hashimoto
695a9f3cb9 termio: fix pty close error so close doesn't hang on macOS 2023-02-06 16:05:41 -08:00
Mitchell Hashimoto
469d395997 termio: fix TODO around cursor reset 2023-02-06 15:51:55 -08:00
Mitchell Hashimoto
7c360eb29a termio: better commenting on what is going on 2023-02-06 15:45:32 -08:00
Mitchell Hashimoto
91ace8af64 termio: IO reader thread cleanup works 2023-02-06 15:41:28 -08:00
Mitchell Hashimoto
11d6e91228 termio: reader thread is thread-safe for writing to writer 2023-02-06 14:52:24 -08:00
Mitchell Hashimoto
a5d03d1318 termio: use a dedicated io reader thread? 2023-02-05 21:33:15 -08:00
Mitchell Hashimoto
f07e21c22e remove libuv from build 2023-02-04 17:37:51 -08:00
Mitchell Hashimoto
7e6a86f065 termio: use libxev (with TODOs) 2023-02-04 11:47:51 -08:00
Mitchell Hashimoto
1273527048 renderer uses libxev
Still some bugs and TODOs, but it is workable.
2023-02-01 15:52:22 -08:00
Mitchell Hashimoto
b8832833cb respect application cursor keys for arrow (DECCKM)
This fixes the arrow keys in htop.
2022-11-27 20:57:58 -08:00
Mitchell Hashimoto
acdbdfbe3f macOS should launch shell as a login shell 2022-11-21 15:57:51 -08:00
Mitchell Hashimoto
56de5846f4 OSC 52: Clipboard Control (#52)
This adds support for OSC 52 -- applications can read/write the clipboard. Due to the security risk of this, the default configuration allows for writing but _not reading_. This is configurable using two new settings: `clipboard-read` and `clipboard-write` (both booleans).
2022-11-21 15:12:00 -08:00
Mitchell Hashimoto
01573819ea Configurable 256 Color Palette (#50)
The 256 color palette can now be configured with the `palette=N=HEX` format in the config. Example, Dracula:

```
foreground=#f8f8f2
background=#282a36
palette=0=#21222c
palette=8=#6272a4
palette=1=#ff5555
palette=9=#ff6e6e
palette=2=#50fa7b
palette=10=#69ff94
palette=3=#f1fa8c
palette=11=#ffffa5
palette=4=#bd93f9
palette=12=#d6acff
palette=5=#ff79c6
palette=13=#ff92df
palette=6=#8be9fd
palette=14=#a4ffff
palette=7=#f8f8f2
palette=15=#ffffff
```
2022-11-20 15:25:51 -08:00
Mitchell Hashimoto
4521efb83d move screen resize to a renderer mailbox message 2022-11-17 13:55:04 -08:00
Mitchell Hashimoto
465b4df6ea fix tests for WNOHANG commit 2022-11-16 21:04:31 -08:00