8190 Commits

Author SHA1 Message Date
Mitchell Hashimoto
ead8d9740a New Ghostty icon (#2909)
This is the icon that we'll launch Ghostty 1.0 with. It was designed by
Michael Flareup at PixelResort. It retains the style of the original
Ghostty icon by Alasdair Monk, but brings in the new Ghost character and
adds details that make it more Apple-like.

The new Ghost character is an important evolution from the original
since it separates us from looking too much like PacMan. The new Ghost
is more unique and recognizable to Ghostty (or, hopefully will be!).

The icon itself has more details: the aluminum around the edge has
texture for the large enough sizes, there are visible scanlines, the
glow of a screen emanates from the ghost.

The icon itself is stylistic more Apple-like than other platforms. I
think Apple icons tend to look very good in more environments than the
reverse and I'm a big fan of the Apple aesthetic so I wanted to bring
that to Ghostty for all platforms.
2024-12-09 12:52:33 -08:00
Mitchell Hashimoto
247409d705 New Ghostty icon
❤️👻

This is the icon that we'll launch Ghostty 1.0 with. It was designed by
Michael Flareup at PixelResort. It retains the style of the original
Ghostty icon by Alasdair Monk, but brings in the new Ghost character and
adds details that make it more Apple-like.

The new Ghost character is an important evolution from the original
since it separates us from looking too much like PacMan. The new Ghost
is more unique and recognizable to Ghostty (or, hopefully will be!).

The icon itself has more details: the aluminum around the edge has
texture for the large enough sizes, there are visible scanlines, the
glow of a screen emanates from the ghost.

The icon itself is stylistic more Apple-like than other platforms. I
think Apple icons tend to look very good in more environments than the
reverse and I'm a big fan of the Apple aesthetic so I wanted to bring
that to Ghostty for all platforms.
2024-12-09 10:01:18 -08:00
Mitchell Hashimoto
ae2cf8dc37 doc: remove outdated statement for fullscreen option (#2904)
We can use `macos-non-native-fullscreen` with `fullscreen` together
since #1377 was closed.
2024-12-08 16:35:42 -08:00
Mitchell Hashimoto
1825f5d2d6 macos: make non-native fullscreen windows not resizeable (#2903)
I've noticed that I can resize a non-native fullscreen window when
selecting text to copy. I think it shouldn't be resizeable.
2024-12-08 16:35:00 -08:00
Dmitry Zhlobo
49f105cd27 macos: make non-native fullscreen windows not resizeable 2024-12-08 16:34:44 -08:00
Mitchell Hashimoto
40ad31deea config: title can reload at runtime (#2906)
Related to #2898
2024-12-08 11:27:15 -08:00
Mitchell Hashimoto
43a7dece02 config: title can reload at runtime
Related to #2898
2024-12-08 11:22:15 -08:00
Mitchell Hashimoto
ddf59e759d macos: prevent moveFocus from being an infinite loop (#2905)
Fixes #2900

It's possible for moveFocus to infinite loop if the surface view we're
trying to move focus to NEVER gets attached to a window. This can happen
if the window is destroyed.

I think this issue should be more systemically fixed so it can't happen
but this workaround for now prevents moveFocus from being an infinite
loop source for the time being.
2024-12-08 11:15:06 -08:00
Mitchell Hashimoto
0f5df656ff termio: clear kitty images when deleting above the cursor (#2897)
Fix #2896 

I don't know if this is the right place (aside from putting it in
`eraseDisplay`'s `.scrollback` mode case).
2024-12-08 11:07:10 -08:00
Mitchell Hashimoto
eb138930e6 macos: prevent moveFocus from being an infinite loop
Fixes #2900

It's possible for moveFocus to infinite loop if the surface view we're
trying to move focus to NEVER gets attached to a window. This can happen
if the window is destroyed.

I think this issue should be more systemically fixed so it can't happen
but this workaround for now prevents moveFocus from being an infinite
loop source for the time being.
2024-12-08 11:06:00 -08:00
moni
250bd35830 termio: clear kitty images when deleting above the cursor 2024-12-08 10:27:15 -08:00
Dmitry Zhlobo
aa4e704d95 doc: remove outdated statement for fullscreen option
We can use `macos-non-native-fullscreen` with `fullscreen` together
since #1377 was closed.
2024-12-08 17:20:25 +01:00
Mitchell Hashimoto
2fb92dd4aa flake: update to Nix 24.11 (#2894)
This is probably going to cause some issues, this is the soonest we've
ever tried this. CI seems quite happy about the change though so moving
forward quickly is good with me.
2024-12-05 14:08:14 -08:00
Mitchell Hashimoto
1ee7da174b flake: update to Nix 24.11 2024-12-05 12:15:48 -08:00
Mitchell Hashimoto
5f2e341d89 apprt/gtk: prefer X11 backend on GTK 4.14 (#2893)
I'm unsure if this is an environmental issue just for me or if this is
more widespread or what other downsides this may have. I'm more than
willing to revert this if it ends up causing different issues.

I found that with NixOS 24.11 and GTK 4.14 on my system, the default
Wayland GDK backend fails to initialize EGL. With GTK 4.16 everything is
fine.

If I force X11 then everything also works fine. This commit forces X11
for GTK 4.14 specifically (4.16+ is allowed to use Wayland).
2024-12-05 11:37:11 -08:00
Mitchell Hashimoto
bb185cf6b6 apprt/gtk: force X11 backend on GTK 4.14
I'm unsure if this is an environmental issue just for me or if this is
more widespread or what other downsides this may have. I'm more than
willing to revert this if it ends up causing different issues.

I found that with NixOS 24.11 and GTK 4.14 on my system, the default
Wayland GDK backend fails to initialize EGL. With GTK 4.16 everything
is fine.

If I force X11 then everything also works fine. This commit forces X11
for GTK 4.14 specifically (4.16+ is allowed to use Wayland).
2024-12-05 11:26:46 -08:00
Mitchell Hashimoto
711f94776e Merge pull request #2885 from ghostty-org/search
Naive search internals (core only)
2024-12-04 13:48:10 -08:00
Mitchell Hashimoto
7dd8e7c43f remove unused file 2024-12-04 12:48:04 -08:00
Mitchell Hashimoto
50b36c5d86 comments 2024-12-04 12:38:40 -08:00
Mitchell Hashimoto
b9dda6ad87 terminal: PageListSearch works! 2024-12-04 12:30:14 -08:00
Mitchell Hashimoto
6361bf47f7 terminal: update comments/docs on sliding window search 2024-12-04 11:25:25 -08:00
Mitchell Hashimoto
34fb840cf9 terminal: search match on overlap case 2024-12-04 11:16:45 -08:00
Mitchell Hashimoto
852e04fa00 terminal: test for match in second slice of circ buf 2024-12-04 10:58:38 -08:00
Mitchell Hashimoto
af1ee4d95f terminal: search match across page boundary 2024-12-04 10:36:22 -08:00
Mitchell Hashimoto
79026a1148 terminal: test no match pruning 2024-12-03 15:55:18 -08:00
Mitchell Hashimoto
09e4cccd2c terminal: remove unused pagesearch 2024-12-03 15:53:13 -08:00
Mitchell Hashimoto
b487aa8e1f terminal: search across two pages and pruning appears to be working 2024-12-03 15:53:12 -08:00
Mitchell Hashimoto
d307b02e40 terminal: sliding window search can move the cursor 2024-12-03 15:53:12 -08:00
Mitchell Hashimoto
6ed298c9c1 terminal: sliding window search starts working 2024-12-03 15:53:12 -08:00
Mitchell Hashimoto
2a13c6b6a3 terminal: working on a pagelist sliding window for search 2024-12-03 15:53:12 -08:00
Mitchell Hashimoto
8abbd80e06 CircBuf: add ensureUnusedCapacity, appendSlice 2024-12-03 15:53:12 -08:00
Mitchell Hashimoto
eaddb69500 datastruct: CircBuf can be initialized empty 2024-12-03 15:53:12 -08:00
Mitchell Hashimoto
61c5fb8115 terminal: single pagelist node search 2024-12-03 15:53:12 -08:00
Mitchell Hashimoto
204e4f8663 terminal: support cell_map for encodeUtf8 2024-12-03 15:53:12 -08:00
Mitchell Hashimoto
bcefbfd7b4 terminal: move UTF8 encoding to Page and wrap around it 2024-12-03 15:53:12 -08:00
Mitchell Hashimoto
50dc4b75d7 Merge pull request #2878 from ghostty-org/push-wopvxurkxzwk
terminal: PageList.reset has to zero arena memory to avoid reuse
2024-12-03 09:14:25 -05:00
Mitchell Hashimoto
e712314f31 terminal: PageList.reset has to zero arena memory to avoid reuse
Fixes #2877

As the comment in the diff states, we rely on `mmap` to zero our memory.
When we reset we are reusing previously allocated memory so we won't hit
an `mmap`. We need to zero the memory ourselves.

This is pretty slow if there is a lot of memory but in every case except
allocation failures, we expect there to be only a few pages allocated.
2024-12-03 08:58:57 -05:00
Mitchell Hashimoto
91ae0e16f4 Merge pull request #2876 from ghostty-org/push-ptmtrltnsput
Full reset (DEC RIS) preserves tracked pins, reclaims memory
2024-12-02 17:50:21 -05:00
Mitchell Hashimoto
212bd3d5fb terminal: fullReset uses the new screen reset methods 2024-12-02 17:44:07 -05:00
Mitchell Hashimoto
d7fcaefdf3 terminal: PageList.reset 2024-12-02 17:26:19 -05:00
Mitchell Hashimoto
d57d1d2395 terminal: failing tracked pin test on fullReset 2024-12-02 09:39:43 -05:00
Mitchell Hashimoto
2cb334f293 Merge pull request #2864 from s-valent/main
Fix slow scroll in tui apps
2024-12-01 12:30:12 -08:00
Mitchell Hashimoto
84e9aae918 Merge pull request #2849 from andrejdaskalov/dolphin-action
Add ghostty right-click menu item for Plasma users
2024-12-01 12:15:47 -08:00
Valentin Shinkarev
e7bfc17318 fix slow scroll in mouseReport 2024-12-01 22:58:46 +03:00
Mitchell Hashimoto
adaada3744 Merge pull request #2863 from ghostty-org/push-oonwksrnrlzn
macos: trigger fullscreenDidChange on any fullscreen event
2024-12-01 11:44:20 -08:00
Mitchell Hashimoto
f384fd038b macos: trigger fullscreenDidChange on any fullscreen event
Fixes #2840
Related to #2842

This builds on #2842 by missing a key situation: when native fullscreen
is toggled using the menu bar items it doesn't go through our
`FullscreenStyle` machinery so we don't trigger fullscreen change
events.

This commit makes it so that our FullscreenStyle always listens for
native fullscreen change (even in non-native modes) to fire a fullscreen
did change event. This way we can always rely on the event to be fired
when fullscreen changes no matter what.
2024-12-01 11:37:04 -08:00
Andrej Daskalov
3048d71537 added gtk-single-instance argument 2024-12-01 13:16:56 +01:00
Mitchell Hashimoto
3c637a2777 Merge pull request #2858 from ghostty-org/push-ryssxoyktulx
terminal: reset should preserve desired default mode values
2024-11-29 14:48:43 -08:00
Mitchell Hashimoto
853ba9e3c7 terminal: reset should preserve desired default mode values
Fixes #2857

Some terminal modes always reset, but there are others that should be
conditional based on how the terminal's default state is configured.
Primarily from #2857 is the grapheme clustering mode (mode 2027) which
was always resetting to false but should be conditional based on the
the `grapheme-width-method` configuration.
2024-11-29 14:42:01 -08:00
Mitchell Hashimoto
ffb5fff555 Merge pull request #2856 from ghostty-org/push-nmsumxnrsyrq
macos: unicode keybindings must convert to string properly
2024-11-29 14:31:19 -08:00