Mitchell Hashimoto
001a6d2624
termio: reader => backend
2024-07-15 10:14:14 -07:00
Mitchell Hashimoto
4a4b9f2411
termio: trying to get Exec to not have access to full Opts
2024-07-15 09:45:58 -07:00
Mitchell Hashimoto
b0cd40d1de
termio: fix windows build
2024-07-14 15:16:16 -07:00
Mitchell Hashimoto
a848a53d26
termio: remove a ton of state
2024-07-14 15:10:05 -07:00
Mitchell Hashimoto
af7adedb50
termio: writer abstraction
2024-07-14 14:48:48 -07:00
Mitchell Hashimoto
e30e635bed
termio: move all subprocess logic to termio.Exec
2024-07-13 19:24:10 -07:00
Mitchell Hashimoto
b3c2479f87
termio: move subprocess out to its own file
2024-07-13 15:20:38 -07:00
Mitchell Hashimoto
ff43609097
terminal: boilerplate for tmux control mode parsing
2024-07-11 18:58:25 -07:00
Mitchell Hashimoto
f375bf009c
terminal: all DCS events can produce a command
2024-07-11 18:53:42 -07:00
Mitchell Hashimoto
01e1538ad3
terminal: dcs put can return a command
2024-07-11 18:42:22 -07:00
Mitchell Hashimoto
245314b14e
termio: hook up OSC8
2024-07-05 21:40:38 -07:00
Mitchell Hashimoto
4d2c98afea
termio: allow failing to build manpath string
2024-07-03 09:28:50 -07:00
Jon Parise
691319f6d7
termio: remove unnecessary resources_key const
2024-07-03 10:52:35 -04:00
Jon Parise
89ac7ac5f6
termio: add man pages to MANPATH on macOS
2024-07-03 10:52:35 -04:00
Jeffrey C. Ollie
fa6d2b2913
Don't leak env vars in GTK apprt.
...
The GTK apprt should not leak the GDK_DEBUG and GSK_RENDERER env vars
to child processes.
2024-07-01 11:25:48 -05:00
Mitchell Hashimoto
8f9cdff1f5
small stylistic tweaks
2024-06-08 19:07:10 -07:00
Jeffrey C. Ollie
e6f97c28f8
Use clone3 / CLONE_INTO_CGROUP on Linux
...
Use clone3 / CLONE_INTO_CGROUP to have the Linux kernel create the process in the
correct cgroup rather than move the process into the cgroup after it is created.
2024-06-07 23:48:03 -06:00
Mitchell Hashimoto
dda6a22ea9
apprt/gtk: cgroup hierarchy only affects surfaces
2024-06-05 10:42:43 -07:00
Mitchell Hashimoto
7d9da34259
termio/exec: move subprocess into cgroup
2024-06-05 09:30:21 -07:00
Mitchell Hashimoto
a63c8d0913
termio: plumb a lot more to get ready to move into cgroup
2024-06-05 09:25:36 -07:00
Mitchell Hashimoto
dc51b8269c
plumb the linux cgroup through to termio
2024-06-04 21:37:34 -07:00
ilk
7377ca8917
refactor(shell-integration): refactor to make cases alphabetical
...
also refactors elvish file to evade unobvious returns
and tries to fix some build errors
2024-05-27 16:15:12 -07:00
Mitchell Hashimoto
d64fa6d9db
termio: shell integration uses arena
2024-05-07 19:57:26 -07:00
Jon Parise
73b3560e62
shell-integration: automatic bash integration
...
This change adds automatic bash shell detection and integration.
Unlike our other shell integrations, bash doesn't provide a built-in
mechanism for injecting our ghostty.bash script into the new shell
environment.
Instead, we start bash in POSIX mode and use the ENV environment
variable to load our integration script, and the rest of the bash
startup sequence becomes the responsibility of our script to emulate
(along with disabling POSIX mode).
2024-05-05 13:59:52 -07:00
Mitchell Hashimoto
3f9e3c39a4
terminal: track dirty state of palette and reverse colors
2024-05-01 20:31:49 -07:00
Jon Parise
54f6abf1cf
termio: pass full command to shell integration
...
This will allow the shell integration code to inspect the full command
string rather than just the first component (shell binary).
2024-04-21 09:53:27 -07:00
Mitchell Hashimoto
be0d52a4f2
config: rename "wcswidth" to "legacy" for "grapheme-width-method"
...
We don't actually use libc wcswidth to determine width and even if we
did some terminals use wcwidth (which behaves differently), some use
the Python wcswidth library (which behaves differently), etc. The
reality is there is no real consistency on "legacy" behavior so by
naming it "legacy" we show that we're doing our best but also gives us
wiggle room to change our behavior in the future.
Functionally nothing changes with this commit.
2024-04-19 09:56:22 -07:00
Mitchell Hashimoto
8dbedeb76c
fix breaking changes with latest zig
2024-04-17 20:50:50 -07:00
Qwerasd
4c9e238c3f
fix(termio/exec): avoid overflow in setCursorRow/ColRelative
...
Using a saturating addition here just to avoid overflow, since setCursorPos handles proper clamping to the screen size so we don't need to duplicate that logic.
2024-03-29 13:15:24 -04:00
Mitchell Hashimoto
1c57bbabda
termio/exec: clear screen should erase rows and shift up
2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
26321dc1c9
termio/exec: only clear above cursor if cursor is not on y=0
2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
0a6735d05d
terminal: jump to prompt
2024-03-22 20:28:00 -07:00
Mitchell Hashimoto
49e8acbcd2
core: configurable scrollback limit
2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
25d84d697a
termio/exec: get compiler errors gone
2024-03-22 20:27:44 -07:00
Mitchell Hashimoto
9b4ab0e209
zig build test with renamed terminal package
2024-03-22 20:27:44 -07:00
Mitchell Hashimoto
b7bf59d772
update zig
2024-03-22 11:15:26 -07:00
Krzysztof Wolicki
af842591c5
Update usage of std.os.O
2024-02-12 20:11:02 +01:00
Mitchell Hashimoto
62ce93dcff
terminal: use SIMD w/ Neon to find ESC in VT streams
2024-02-05 21:22:25 -08:00
Mitchell Hashimoto
7aeb7c1a58
terminal: rename theme to color_scheme for dsr
2024-02-02 13:20:59 -08:00
Mitchell Hashimoto
ae8f5f3ceb
core: colorSchemeCallback on surface, can report
2024-02-02 12:51:20 -08:00
Mitchell Hashimoto
3c26828a3f
terminal: distinguish between DSRs with "?" and not
2024-02-02 12:42:22 -08:00
Mitchell Hashimoto
eb653907d6
config: grapheme-width-method sets mode 2027
...
Fixes #1403
This changes the behavior of `grapheme-width-method = unicode` to change
the default state of mode 2027 to true. Prior to this, setting this
config would force grapheme clustering regardless of mode 2027. Now,
this only sets the default and running TUI programs can disable it if
they want.
2024-02-02 12:13:13 -08:00
Mitchell Hashimoto
c2e0cff1d2
termio/exec: only add ghostty path if it isn't already in path
2024-01-31 18:57:42 -08:00
Mitchell Hashimoto
577b12430c
termio/exec: always put ghostty bin dir in GHOSTTY_BIN_DIR env var
2024-01-31 18:50:50 -08:00
Allan Calix
e11d5940ba
Automatically inject ghostty cli to end of $PATH
2024-01-31 16:24:15 -08:00
Mitchell Hashimoto
c871140419
terminal: handle SCOSC/SCORC
...
Fixes #1401
SCOSC is ambiguous with regards to DECSLRM. This commit copies the logic
of xterm: if left/right mode is enabled, then CSI S is always DECSLRM.
But if left/right mode is disabled then CSI S empty always uses SCOSC.
SCORC always works.
2024-01-28 08:04:14 -08:00
Mitchell Hashimoto
33bc424d7e
config: introduce wait-after-command
2024-01-17 08:40:21 -08:00
Mitchell Hashimoto
adb7958f61
remove tracy usage from all files
2024-01-13 15:06:08 -08:00
widberg
de71e992ec
Use WINDIR instead of hardcoding C:\Windows
2024-01-11 11:57:40 -08:00
Mitchell Hashimoto
60b1b0a8de
termio/exec: assign arena last so we capture allocations
2024-01-10 09:26:10 -08:00