8553 Commits

Author SHA1 Message Date
Anund
0144d29813 testing: point Command.zig at ~more universal external binaries
The `Command.zig` tests reach outside the local source tree and look for
files on the host os machine. This introduces some portability issues
for the tests.

The nix build sandbox doesn't include `/usr/bin/env` making it error out
when `zig build test` runs `Command.zig` tests as part of a `nix build`.
Current ci and local development relies on `nix develop` sharing a host os
file system that includes `/usr/bin/env`.

Turns out `/tmp` and `/bin/sh` are available in the build sandbox in
nix so we swap these in to enable nixpkg builds to include testing
ghostty as part of any update cycle.
2025-01-01 13:55:22 -05:00
Anund
6877b1a894 testing: move cleanup of execveZ into the test code 2025-01-01 13:55:22 -05:00
Anund
ae443ae1bd testing: handle execveZ failing during test execution
Duplicating a test process via fork does unexepected things.
zig build test will hang
A test binary created via -Demit-test-exe will run 2 copies of the test suite
2025-01-01 13:55:22 -05:00
Mitchell Hashimoto
b976b10372 config: add title_report (default false) to configure CSI 21 t 2025-01-01 13:55:22 -05:00
Adam Wolf
bb3de9008d fix: scrollback limit not being parsed correctly 2025-01-01 13:55:22 -05:00
Maciej Bartczak
34e5f55165 Invalidate the timer when the surface is destroyed 2025-01-01 13:55:22 -05:00
Maciej Bartczak
e5bbd14295 Add delay before updating the title 2025-01-01 13:55:22 -05:00
Misaki Kasumi
73a4f0a1fd misc: add desktop entry fields to support xdg-terminal-exec 2025-01-01 13:55:22 -05:00
Sebastian Estrella
b93bc6be5b Add default Nix overlay 2025-01-01 13:55:22 -05:00
Richard Feldman
2faf08976d Fix markdown formatting for (blank) in docs
It currently has two backticks side by side, which end up rendering as actual backticks rather than a code-formatted blank space.
2025-01-01 13:55:22 -05:00
hustcer
9e1e2ab282 chore: Add milestone workflow to add milestone to merged PR and fixed Issues 2025-01-01 13:55:22 -05:00
Jeffrey C. Ollie
b55574afbd gtk/x11: link directly to libX11, no more dlopen 2025-01-01 13:55:22 -05:00
Tristan Partin
85609be719 apprt: add window-titlebar-{background,foreground} config options
This gives people finer-grained control over the coloring of their
window titlebars. Currently only implemented for GTK.

Signed-off-by: Tristan Partin <tristan@partin.io>
2025-01-01 13:55:22 -05:00
Misaki Kasumi
b73c7e46f9 cgroup: change suffix to .scope 2025-01-01 13:55:21 -05:00
XiaoYan Li
ab186ceb6b Fix the typing error when building on Linux
Co-authored-by: Gareth Widlansky <101901964+gerblesh@users.noreply.github.com>
2025-01-01 13:55:21 -05:00
Xiaoyan Li
a0b1bbab7b Use premultiplied alpha for renderer clearColor
Fixes #3324
2025-01-01 13:55:21 -05:00
Mohammadi, Erfan
7298d965c0 confirm-close-surface option can be set to always to always require confirmation
Fixes #3648
The confirm-close-surface configuration can now be set to always
ensuring a confirmation dialog is shown before closing a surface, even
if shell integration indicates no running processes.
2025-01-01 13:55:21 -05:00
Mitchell Hashimoto
200cf6b651 ci: our GTK tests were installing Cachix twice 2025-01-01 13:55:21 -05:00
Koray08
609ba944fa Replace 'w' with '\x15' 2025-01-01 13:55:21 -05:00
Koray08
ec3fe8d17f Add 'command delete' default to macOS 2025-01-01 13:55:21 -05:00
mitchellh
3dee60ae49 deps: Update iTerm2 color schemes 2025-01-01 13:55:21 -05:00
Mitchell Hashimoto
a053ebb941 Update the pre-approved issue template 2025-01-01 13:55:21 -05:00
Mitchell Hashimoto
447be5285e ci: install nix 2025-01-01 13:55:21 -05:00
Mitchell Hashimoto
3348c62270 run gtk matrix on small instances 2025-01-01 13:55:21 -05:00
Mitchell Hashimoto
ccb92abd23 prettier 2025-01-01 13:55:21 -05:00
Mitchell Hashimoto
a57b5c802e ci: test gtk via a matrix 2025-01-01 13:55:21 -05:00
Jeffrey C. Ollie
da3e5ccf06 gtk: add option to not link against libX11 2025-01-01 13:55:21 -05:00
Qingyao Sun
b663ac1eaf Clarify how to read logs on macOS 2025-01-01 13:55:21 -05:00
Jelle Besseling
33df3365af docs: Add info about adjustments to adjustment config options 2025-01-01 13:55:21 -05:00
Ronit Gandhi
160c262696 docs: add guide for setting quick terminal toggle keybind 2025-01-01 13:55:21 -05:00
Hisam Fahri
4d0feaa191 Update Config.zig 2025-01-01 13:55:21 -05:00
Matt Mirus
d53b93891e chore: undo unintentional change
I think this must have snuck in due to my fork falling behind the
upstream.
2025-01-01 13:55:21 -05:00
Matt Mirus
c86de63e18 docs: correct default value of gtk-single-instance
`desktop` is the default value of `gtk-single-instance`; `detect` is not a valid value.
2025-01-01 13:55:21 -05:00
Finn Voorhees
153caa4ec6 Add MDItemKeywords 2025-01-01 13:55:21 -05:00
Leigh Oliver
c7491566da fix(gtk): fix segfault/bus error on ctrl+d 2025-01-01 13:55:21 -05:00
Kat
ac8eac01e2 Use source in the example for sourcing Zsh shell integration 2025-01-01 13:55:21 -05:00
Felix Salcher
dfd778522a deinit buffer 2025-01-01 13:55:21 -05:00
AP Darkly
02b34f44f6 fix probable typo in Config.zig
Based on both context and observed behavior, "now" was intended to be "not" in the paragraph describing the behavior of `focus-follows-mouse` is set to `true`.
2024-12-28 07:32:26 -05:00
Mitchell Hashimoto
6cbd69da78 Update docs generators to include proper edit on github links (#3651)
Ref: https://github.com/ghostty-org/website/pull/197

The "Edit on Github" links currently on
[ghostty.org](https://ghostty.org/) link to the downstream MDX files.
This has lead to multiple folks editing the downstream MDX files.

Preview:

https://website-git-edit-on-github-link-override-ghostty.vercel.app/docs/config/reference#auto-update-channel
2024-12-27 21:05:27 -08:00
Mitchell Hashimoto
1fa2e699d1 Modify cmd+9 behaviour (#3587)
Fixes #3528 

**Note:**
Not sure if this is what OP requested regarding displaying user defined
shortcuts as hints, but we currently relabel all tabs, but only consider
labels for tabs from 1 to 9. Applying this simple patch should allow for
displaying shortcut hints for tabs beyond 9
<details><summary>Patch</summary>

```diff
diff --git a/macos/Sources/Features/Terminal/TerminalController.swift b/macos/Sources/Features/Terminal/TerminalController.swift
index 7fd1802d..242e5711 100644
--- a/macos/Sources/Features/Terminal/TerminalController.swift
+++ b/macos/Sources/Features/Terminal/TerminalController.swift
@@ -155,13 +155,6 @@ class TerminalController: BaseTerminalController {
         tabListenForFrame = windows.count > 1
 
         for (tab, window) in zip(1..., windows) {
-            // We need to clear any windows beyond this because they have had
-            // a keyEquivalent set previously.
-            guard tab <= 9 else {
-                window.keyEquivalent = ""
-                continue
-            }
-
             let action = "goto_tab:\(tab)"
             if let equiv = ghostty.config.keyEquivalent(for: action) {
                 window.keyEquivalent = "\(equiv)"
```

</details>
2024-12-27 21:00:42 -08:00
Brandon Romano
16e4529f69 Update docs generators to include proper edit on github links
Ref: https://github.com/ghostty-org/website/pull/197
2024-12-27 20:59:50 -08:00
Rohit-Bevinahally
2555f09d88 modify cmd+9 behaviour 2024-12-27 20:14:28 -08:00
Mitchell Hashimoto
bee2188014 apprt/gtk: color popovers when window-theme=ghostty (#3569)
This looks better than the regular dark color. It also happens to match
what Ptyxis does. It does not support non-libadwaita builds.

Before:

![image](https://github.com/user-attachments/assets/8c400bdf-05b3-4629-925d-fd8ce9554ae7)

After:

![image](https://github.com/user-attachments/assets/d958eb6a-102d-4d91-970b-fcaca7f2386c)

It will look even better whenever we fix the separator colors 😄
2024-12-27 13:39:41 -08:00
Tristan Partin
bf46ab8d2d apprt/gtk: color popovers when window-theme=ghostty
This looks better than the regular dark color. It also happens to match
what Ptyxis does. It does not support non-libadwaita builds.

Signed-off-by: Tristan Partin <tristan@partin.io>
2024-12-27 14:32:02 -06:00
Mitchell Hashimoto
8111f5b995 Fix DESTDIR handling for terminfo installation (#3426)
## Description:

Fix `DESTDIR` handling when installing terminfo database files by using
`install_path` instead of `install_prefix`. This ensures files are
correctly installed under `$DESTDIR/$prefix` during packaging.

## Changes:

- Replace `b.install_prefix` with `b.install_path` for terminfo database
installation paths

- This change properly respects the `DESTDIR` environment variable
during installation

## Testing:

I've verified this fix by:

1. Setting `DESTDIR=/tmp/ghostty`

2. Building with: 
```bash
DESTDIR=/tmp/ghostty \
zig build \
  --prefix /usr \
  --system /tmp/offline-cache/p \
  -Doptimize=ReleaseFast \
  -Dcpu=baseline
```

3. Confirming files are correctly installed to:

```
/tmp/ghostty/usr/share/terminfo/ghostty.terminfo
/tmp/ghostty/usr/share/terminfo/ghostty.termcap
```

The files are now properly installed under `$DESTDIR/$prefix` path
structure as expected.

cc @BratishkaErik - Since you suggested this fix in #3152, would you
mind reviewing this implementation?

Fixes #3152
2024-12-27 12:09:37 -08:00
Mitchell Hashimoto
590c2929e7 Fix typo in config docs (#3564)
This was originally fixed in ghostty-org/website#152, but was
accidentally reverted in
[ghostty-org/website#99795d7882a5ee47437454c7c106c2874e0406dc](99795d7882).

P.S., you might want an PR template to discourage folks from making
unsolicited PRs like this :)
P.P.S., you can write issue templates as yaml files to stop folks from
ignoring them (required fields)
2024-12-27 12:08:44 -08:00
Eli
27a5a50aa0 fix: typo
Original fix: ghostty-org/website#152
Reverted: ghostty-org/website#99795d7882a5ee47437454c7c106c2874e0406dc.
2024-12-27 14:02:25 -06:00
Mitchell Hashimoto
c8dca6c9a8 Fix building with -Dflatpak=true (#3440)
While running a Ghostty instance built with this option currently
crashes under Flatpak, at least it ensures we're able to build it again.
2024-12-27 11:58:39 -08:00
Mitchell Hashimoto
e2aee7f75b Handle an empty path to mean no pwd (#3399)
Fixes #3398
2024-12-27 11:55:36 -08:00
Mitchell Hashimoto
f0b77e8972 Fix notification handling from publishing while View is updating (#3177)
I was originally looking into this issue:
https://github.com/ghostty-org/ghostty/issues/3109

When running the logic and triggering a config reload, Xcode warns us
about updating publishable properties from within the notification
callback functions:
<img width="924" alt="Screenshot 2024-12-26 at 5 46 19 PM"
src="https://github.com/user-attachments/assets/38000a09-ffad-4dda-9e2d-a37e5283ff89"
/>

I believe this is because `SurfaceView` is being used as both a bridged
NSView (inside `Surface`) and also an `ObservableObject`, so it's
possible for the notification callback to happen while a SwiftUI render
loop is occurring. The notification delivery happens on whatever thread
posted the message. The better solution long-term is likely to separate
the `ObservableObject` logic into its own class to avoid mixing with the
View logic.

The solution here is to simply move the publishable mutation out of the
current loop via `DispatchQueue.main.async`. I confirmed the warning
goes away with this, and I didn't notice any odd behavior while
reloading config changes.
2024-12-27 11:54:50 -08:00