Commit Graph

18 Commits (f8c03bb6f6ff7cf71c7e04077059173859496cd2)

Author SHA1 Message Date
Jeffrey C. Ollie f8c03bb6f6 logging: document GHOSTTY_LOG and make it more flexible 2025-12-15 11:54:36 -08:00
Mitchell Hashimoto cb295b84a0
Zig 0.15: zig build test 2025-10-03 07:10:43 -07:00
Mitchell Hashimoto 1739418f6f
cli: make the action parser (+foo) generic and reusable 2025-07-09 15:06:24 -07:00
Leorize faf9d59160 core, apprt: make runtimes implement resourcesDir directly 2025-06-24 07:36:09 -04:00
Leorize 1688f2576c core, gtk: implement host resources dir for Flatpak
Introduces host resources directory as a new concept: A directory
containing application resources that can only be accessed from the host
operating system. This is significant for sandboxed application runtimes
like Flatpak where shells spawned on the host should have access to
application resources to enable integrations.

Alongside this, apprt is now allowed to override the resources lookup
logic.
2025-06-24 07:35:28 -04:00
Qwerasd 2384bd69cc style: use decl literals
This commit changes a LOT of areas of the code to use decl literals
instead of redundantly referring to the type.

These changes were mostly driven by some regex searches and then manual
adjustment on a case-by-case basis.

I almost certainly missed quite a few places where decl literals could
be used, but this is a good first step in converting things, and other
instances can be addressed when they're discovered.

I tested GLFW+Metal and building the framework on macOS and tested a GTK
build on Linux, so I'm 99% sure I didn't introduce any syntax errors or
other problems with this. (fingers crossed)
2025-05-26 21:50:14 -06:00
Mitchell Hashimoto 0f4d2bb237
Lots of 0.14 changes 2025-03-12 09:55:52 -07:00
Mitchell Hashimoto cb8085ab72
global state initializes i18n 2025-03-07 13:42:00 -08:00
Mitchell Hashimoto d532a6e260
Update libxev to use dynamic backend, support Linux configurability
Related to #3224

Previously, Ghostty used a static API for async event handling: io_uring
on Linux, kqueue on macOS. This commit changes the backend to be dynamic
on Linux so that epoll will be used if io_uring isn't available, or if
the user explicitly chooses it.

This introduces a new config `async-backend` (default "auto") which can
be set by the user to change the async backend in use. This is a
best-effort setting: if the user requests io_uring but it isn't
available, Ghostty will fall back to something that is and that choice
is up to us.

Basic benchmarking both in libxev and Ghostty (vtebench) show no
noticeable performance differences introducing the dynamic API, nor
choosing epoll over io_uring.
2025-02-21 15:04:37 -08:00
Mitchell Hashimoto f73cae0738
Ignore SIGPIPE
Fixes #5359

The comments explain what's going on. Longer term we should adjust our
termio/exec to avoid the SIGPIPE but its still possible (i.e. that
thread crashes) to happen so we should be robust to it.
2025-01-24 13:48:30 -08:00
Mitchell Hashimoto 8e47d0267b
Move resource limits to a dedicated struct, restore before preexec 2025-01-02 15:05:10 -08:00
Jeffrey C. Ollie 9ea0aa4934
core: if we change RLIMIT_NOFILE, reset it when executing commands 2025-01-01 14:31:15 -06:00
Mitchell Hashimoto 84a03aa202
Allow startup without $HOME writable
Fixes #3202

Two changes to get here:

1. Do not fail startup if crash reporting initialization fails. This is a
   non-critical feature and should not prevent the terminal from starting.

2. Avoid freeing Sentry transport on error path. This segfaults.
   Upstream issue will be reported separately.
2024-12-29 13:59:39 -08:00
Mitchell Hashimoto f930cf0b8f
move crash init to crash package 2024-08-31 11:12:40 -07:00
Mitchell Hashimoto 6f1a062b6c
timers for start times for later 2024-08-29 15:19:21 -07:00
Mitchell Hashimoto e029490535
sentry init uses proper cache dir, sets tags 2024-08-28 21:43:18 -07:00
Mitchell Hashimoto adbb394e44
initialize sentry on startup 2024-08-28 21:43:17 -07:00
Mitchell Hashimoto c3e37b7e15
move global state to dedicated file 2024-08-16 14:43:00 -07:00