Mitchell Hashimoto
3625e1e58e
termio: take reader as option
2024-07-15 09:55:31 -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
485346c694
termio: more windows fixes
2024-07-14 18:15:19 -07:00
Mitchell Hashimoto
f0d896e11d
termio: more windows fixes
2024-07-14 15:17:40 -07:00
Mitchell Hashimoto
b0cd40d1de
termio: fix windows build
2024-07-14 15:16:16 -07:00
Mitchell Hashimoto
08ed60ceec
termio: ReadData is gone!
2024-07-14 15:15:22 -07:00
Mitchell Hashimoto
89d407dd6a
termio: excessive cursor reset
2024-07-14 15:13:41 -07:00
Mitchell Hashimoto
6b0b840a81
termio: writer needs a mut pointer
2024-07-14 15:11:09 -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
31144da845
termio: Thread doesn't need to hold termio pointer
2024-07-14 10:27:58 -07:00
Mitchell Hashimoto
f50c15c350
termio: ReadData doesn't need a loop
2024-07-14 09:40:53 -07:00
Mitchell Hashimoto
eec33f10e2
termio: remove more unused things
2024-07-13 19:27:17 -07:00
Mitchell Hashimoto
e30e635bed
termio: move all subprocess logic to termio.Exec
2024-07-13 19:24:10 -07:00
Mitchell Hashimoto
7c23d61379
termio: rename
2024-07-13 18:50:37 -07:00
Mitchell Hashimoto
faef40b769
termio: fix up rebase
2024-07-13 15:21:50 -07:00
Mitchell Hashimoto
16f5890724
termio: delete old impl
2024-07-13 15:20:39 -07:00
Mitchell Hashimoto
b3c2479f87
termio: move subprocess out to its own file
2024-07-13 15:20:38 -07:00
Mitchell Hashimoto
2e62e3354b
termio: cleanup more state
2024-07-13 15:19:39 -07:00
Mitchell Hashimoto
bfbbe1485e
termio: queueWrite no longer uses EventData
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
ffaf020576
termio: move stream handler to dedicated file, remove dep on EventData
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
e51180e4a9
termio: changeConfig on reader data
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
4e6e0f90c7
termio: remove data field
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
c4484938c5
termio: wip but it builds
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
49c92fd0e6
termio: rename Exec to Termio throughout
2024-07-13 15:19:37 -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
Jon Parise
7d7fa46b0c
shell-integration: bash must be explicitly enabled
...
For now, bash integration must be explicitly enabled (by setting
`shell-integration = bash`). Our automatic shell integration requires
bash version 4 or later, and systems like macOS continue to ship bash
version 3 by default. This approach avoids the cost of performing a
runtime version check.
2024-06-03 20:34:29 -04:00
Mitchell Hashimoto
66a9b1b99f
rename env var
2024-05-27 16:18:51 -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
ilk
1fa830cc73
feat(shell-integration): add automatic integration for Elvish
...
Fish automatic integration taken as an example.
Just like fish, Elvish checks `XDG_DATA_DIRS` for its modules.
Thus, Fish integration in zig is reused, and integration in
Elvish now removes `GHOSTTY_FISH_XDG_DIR` environment variable
on launch.
2024-05-27 16:15:01 -07:00
Jon Parise
016c58cfe4
shell-integration: handle 'bash -c command'
...
When the -c option is present, then commands are read from the first
non-option argument command string. Our simple implementation assumes
that if we see at least the '-c' option, a command string was given, and
the shell is always considered to be non-interactive - even if the '-i'
(interactive) option is also given.
2024-05-14 11:01:49 -07:00
Jon Parise
054e01eaaf
shell-integration: expand bash HISTFILE value
...
bash reads HISTFILE at startup to locate its history file, but this is
apparently too early for it to be able to expand home-relative paths. We
now manually expand the full path and add that to the environment.
2024-05-08 07:49:46 -07:00
Mitchell Hashimoto
d64fa6d9db
termio: shell integration uses arena
2024-05-07 19:57:26 -07:00
Jon Parise
861edc722f
shell-integration: revise ShellIntegration.command comment
2024-05-05 14:03:31 -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