7381 Commits

Author SHA1 Message Date
Mitchell Hashimoto
f8bdd2b1bb termio: killpg expected to fail on darwin, still go into waitpid loop
Fixes #2273

On macOS, killpg is expected to fail with EPERM because of the way we
launch a login process around it. Before this commit, this caused us to
never call waitpid and reap the child process, which caused the child
process to stick around as a zombie.

This commit allows killpg to fail with EPERM on macOS and fall through
to waitpid.
2024-09-20 15:29:06 -07:00
Mitchell Hashimoto
f5c83d62d7 Merge pull request #2275 from ghostty-org/sipointer
macos: show clickable mouse pointer when hovering over secure input
2024-09-20 14:08:24 -07:00
Mitchell Hashimoto
08ee0c1038 ci: use xcode 16 2024-09-20 13:47:46 -07:00
Mitchell Hashimoto
df24d8e1a6 macos: show clickable mouse pointer when hovering over secure input
This only works on macOS 15 because it uses the new `pointerStyle` API.
I don't have the interest to backport this to older macOS versions but
I'm happy to accept a PR if someone else wants to do it.
2024-09-20 09:56:44 -07:00
Mitchell Hashimoto
761223f0f3 Merge pull request #2274 from FineFindus/fix/comment
termio: correct comment about windows support
2024-09-20 09:15:12 -07:00
FineFindus
6f3db36251 termio: correct comment about windows support
The comment has conflicting information about supporting windows. This
removes the incorrect information that only windows is supported.
2024-09-20 17:42:08 +02:00
Mitchell Hashimoto
a503e0250e apprt/gtk: add version helpers
This adds version helpers similar to the adwaita version helpers so that
build time and runtime version checks can be done.
2024-09-19 20:24:52 -07:00
Mitchell Hashimoto
38eb9071eb Merge pull request #2270 from ghostty-org/secureinput
macOS Secure Input
2024-09-19 20:15:35 -07:00
Mitchell Hashimoto
df5cd719d6 macos: rename overlay config to indication 2024-09-19 20:00:46 -07:00
Mitchell Hashimoto
08a2a71ab8 macos: copy 2024-09-19 19:57:03 -07:00
Mitchell Hashimoto
fa9df4f6f0 macos: persist secure input state across restarts 2024-09-19 19:54:53 -07:00
Mitchell Hashimoto
a513a02328 config: config to disable auto secure input and secure input overlay 2024-09-19 17:20:54 -07:00
Mitchell Hashimoto
ced8395c77 macos: copy changes 2024-09-19 17:06:49 -07:00
Mitchell Hashimoto
9f03aae764 ios: disable secure input 2024-09-19 16:56:46 -07:00
Mitchell Hashimoto
6b85a152d8 macos: fix deployment target back to 12.0 2024-09-19 16:43:43 -07:00
Mitchell Hashimoto
1ed1c73c1a macos: enable secure input on password input 2024-09-19 16:38:32 -07:00
Mitchell Hashimoto
c3d6356a87 macos: show secure input overlay when it is enabled 2024-09-19 16:24:42 -07:00
Mitchell Hashimoto
c0e0eff468 core: add toggle_secure_input keybinding 2024-09-19 10:20:30 -07:00
Mitchell Hashimoto
0c38f40f0a macos: secure input manager, global option in app 2024-09-19 10:11:31 -07:00
Mitchell Hashimoto
c26da4ea06 pkg/macos: expose carbon API 2024-09-19 09:22:07 -07:00
Mitchell Hashimoto
bfd88ffc5e Merge pull request #2268 from ofseed/adw-disable-shortcuts
adw: disable all of the default shortcuts
2024-09-19 09:15:12 -07:00
Yi Ming
74411511df refactor: remove the unnecessary ./ in imports 2024-09-19 15:35:52 +08:00
Yi Ming
2894e78cbe adw: disable all of the default shortcuts 2024-09-19 15:15:47 +08:00
Mitchell Hashimoto
3aad8ecfa5 Merge pull request #2267 from ghostty-org/pwinput-msg
termio: use surface messages to trigger password input state
2024-09-18 21:20:16 -07:00
Mitchell Hashimoto
e3d528cf0b termio: use surface messages to trigger password input state 2024-09-18 21:14:05 -07:00
Mitchell Hashimoto
42e7cbc475 termio: typos 2024-09-18 20:59:27 -07:00
Mitchell Hashimoto
66a065dcdd termio: always set termios timer running bool to true on focus
Fixes #2265

See comment in diff for details.
2024-09-18 20:56:40 -07:00
Mitchell Hashimoto
a423a1cee6 Merge pull request #2264 from ghostty-org/push-zqqnqxvutlkx
macos: right-click actions on surface should target surface under click
2024-09-18 14:17:55 -07:00
Mitchell Hashimoto
498804b571 macos: right-click actions on surface should target surface under click
Fixes #2263
2024-09-18 13:43:57 -07:00
Mitchell Hashimoto
7b7bd5e364 Merge pull request #2262 from ghostty-org/pwinput
Detect password input and render lock glyph
2024-09-18 12:17:43 -07:00
Mitchell Hashimoto
1936ef7fee termio: increase termios poller to 200ms 2024-09-18 12:14:55 -07:00
Mitchell Hashimoto
e8bbc987e0 termio: stop the termios poller when not focused 2024-09-18 11:56:07 -07:00
Mitchell Hashimoto
5c469a0b44 renderer: render lock for password input 2024-09-18 11:14:37 -07:00
Mitchell Hashimoto
39627e3221 termio: set pw input state on terminal and wake up renderer 2024-09-18 10:47:26 -07:00
Mitchell Hashimoto
4f6995d727 termio: poll termios for changes 2024-09-18 10:34:07 -07:00
Mitchell Hashimoto
a77ebc1a92 Merge pull request #2261 from Pangoraw/timer-clear
adw: clear stored tab overview timer
2024-09-18 10:24:04 -07:00
Paul Berg
a6cd4b9750 adw: clear stored tab overview timer
This prevents a GTK warning:

```
(process:354789): GLib-CRITICAL **: 19:07:01.853: Source ID 511 was not found when attempting to remove it
```

which happens when trying to clean a timer already used.
2024-09-18 19:11:21 +02:00
Mitchell Hashimoto
618264a16e Merge pull request #2258 from gpanders/push-nkpuzyprzkrp
config: move optional path parsing into RepeatablePath
2024-09-18 09:20:12 -07:00
Mitchell Hashimoto
9b7395b830 Merge pull request #2260 from ghostty-org/adw-focus
Fix: AdwTabOverview loses focus on close
2024-09-18 09:12:40 -07:00
Mitchell Hashimoto
e811ea859d renderer/metal: fix compilation issues 2024-09-18 09:10:18 -07:00
Mitchell Hashimoto
2dd454b399 apprt/gtk: refocus the current tab after adw tab overview closes
Fixes #2256
2024-09-18 07:56:32 -07:00
Mitchell Hashimoto
4a492f24be apprt/gtk: make focusCurrentTab safe to call at any time 2024-09-18 07:41:11 -07:00
Mitchell Hashimoto
9c897e29a4 config: return OOM instead of NoSpaceLeft for Linux fmt 2024-09-18 07:35:40 -07:00
Mitchell Hashimoto
c1346d3f1f Merge pull request #2259 from Pangoraw/tabbar-style
gtk: respect window-theme=ghostty when gtk-titlebar=false
2024-09-18 07:12:50 -07:00
Paul Berg
990bcb9573 gtk: respect window-theme=ghostty when gtk-titlebar=false 2024-09-18 13:52:44 +02:00
Gregory Anders
64abbd0ea6 config: move optional path parsing into RepeatablePath
This commit refactors RepeatablePath to contain a list of tagged unions
containing "optional" and "required" variants. Both variants have a null
terminated file path as their payload, but the tag dictates whether the
path must exist or not. This implemenation is used to force consumers to
handle the optional vs. required distinction.

This also moves the parsing of optional file paths into RepeatablePath's
parseCLI function. This allows the code to be better unit tested. Since
RepeatablePath no longer contains a simple list of RepeatableStrings,
many other of its methods needed to be reimplemented as well.

Because all of this functionality is built into the RepeatablePath type,
other config options which also use RepeatablePath gain the ability to
specify optional paths as well. Right now this is only the
"custom-shaders" option. The code paths in the renderer to load shader
files has been updated accordingly.

In the original optional config file parsing, the leading ? character
was removed when paths were expanded. Thus, when config files were
actually loaded recursively, they appeared to be regular (required)
config files and an error occurred if the file did not exist. **This
issue was not found during testing because the presence of the
"theme" option masks the error**. I am not sure why the presence of
"theme" does this, I did not dig into that.

Now because the "optional" or "required" state of each path is tracked
in the enum tag the "optional" status of the path is preserved after
being expanded to an absolute path.

Finally, this commit fixes a bug where missing "config-file" files were
not included in the +show-config command (i.e. if a user had
`config-file = foo.conf` and `foo.conf` did not exist, then `ghostty
+show-config` would only display `config-file =`). This bug applied to
`custom-shaders` too, where it has also been fixed.
2024-09-17 22:08:59 -05:00
Mitchell Hashimoto
0ac29783b9 config: fix regression for recursive config-files from 5ff0841ee65 2024-09-17 16:51:32 -07:00
Mitchell Hashimoto
b7ac7bf336 README: note how to send crash reports to the project 2024-09-17 13:30:47 -07:00
Mitchell Hashimoto
73ac0f17a3 Merge pull request #2257 from ghostty-org/push-wownzovryyqq
terminal: avoid double free by resetting command to non-managed
2024-09-17 13:19:07 -07:00
Mitchell Hashimoto
15a9c191d3 terminal: avoid double free by resetting command to non-managed
Fixes a reported macOS crash. Test case shows how its possible.
2024-09-17 13:15:44 -07:00