8551 Commits

Author SHA1 Message Date
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
Mitchell Hashimoto
571d9b015d Fix zsh shell integration docs (#3332)
- There is no need to quote variables in zsh.
- The shell integration file is not executable; we should `source` it
instead.
2024-12-27 11:54:07 -08:00
Mitchell Hashimoto
66dbc48e6b fix elvish integration: remove erroneous call to "type" (#3386)
An exception is raised from the elvish integration module when
`TERMINFO` is set:

```
Exception: exec: "type": executable file not found in $PATH
  ghostty-integration.elv:120:60-71:   if (and (not $no-sudo) (not-eq "" $E:TERMINFO) (eq file (type -t sudo))) {
  ghostty-integration.elv:38:1-123:1:
```

`type` is a builtin in bash and [in
fish](https://fishshell.com/docs/current/cmds/type.html) but it does not
exist in elvish. I suspect it is here as an accidental copy/paste from
the ghostty [fish
integration](https://github.com/ghostty-org/ghostty/blob/main/src/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish#L71).

Maybe we can use the elvish
[`has-external`](https://elv.sh/ref/builtin.html#has-external) function
instead (or we could remove that check altogether).

Edit: I think this is in a merge-able state (and it would fix that
error!), but I have just converted this PR to a draft since I can see
other problems with the script. I'll give it a more thorough treatment
later and amend this PR (or also happy to merge this and do other fixes
in separate PRs).
2024-12-27 11:53:54 -08:00