11479 Commits

Author SHA1 Message Date
Mitchell Hashimoto
780d4af8bc apprt/gtk-ng: size_limit apprt action
This ports the same behavior from GTK, mostly. This also fixes a bug
where the limits would be enforced on reload. Instead, we should only
enforce them on the first surface ever.
2025-08-01 07:59:19 -07:00
Mitchell Hashimoto
1901cbf334 apprt/gtk-ng: initial size apprt action (window-width/height) (#8115)
Simple port. I might add size limits if I get to it, but finished this
and it works so opened it up.
2025-07-31 13:58:34 -07:00
Mitchell Hashimoto
0b9130aba9 apprt/gtk-ng: initial size apprt action (window-width/height) 2025-07-31 13:28:30 -07:00
Leah Amelia Chen
cf9943a3dd gtk(wayland): bind globals correctly (#8110) 2025-07-31 18:28:05 +02:00
Leah Amelia Chen
c2165fc097 gtk(wayland): bind globals correctly
Fixes #7988
2025-07-31 15:51:49 +08:00
Mitchell Hashimoto
d4c825186e apprt/gtk-ng: desktop notifications, open config, open url, present terminal (#8105)
Implements a number of minor apprt actions. More or less directly
ported. Some notes added for future improvements given the new
architecture.
2025-07-30 09:38:48 -07:00
Mitchell Hashimoto
6c952d4168 apprt/gtk-ng: desktop notification 2025-07-30 09:31:54 -07:00
Mitchell Hashimoto
e7ea084cc3 apprt/gtk-ng: present surface 2025-07-30 09:20:15 -07:00
Mitchell Hashimoto
60b859dbf2 apprt/gtk-ng: open config, open url 2025-07-30 09:04:01 -07:00
Mitchell Hashimoto
e7befe2ed1 apprt/gtk-ng: surface has correct initial size (#8104)
Ensure the surface has a correct initial size when created. This avoids
a rapid resize event and also the pty reports the correct size for
startup scripts.

This is a departure from macOS and legacy GTK. This has been an issue in
Ghostty for awhile so this is the proper path forward.

This works by deferring Surface initialization until the first resize
event. This MIGHT result in a frame or two not rendering but I haven't
noticed anything visually and having the correct size is far more
important.
2025-07-30 08:54:51 -07:00
Mitchell Hashimoto
7b1092f991 apprt/gtk-ng: surface has correct initial size
Ensure the surface has a correct initial size when created. This avoids
a rapid resize event and also the pty reports the correct size for
startup scripts.

This is a departure from macOS and legacy GTK. This has been an issue in
Ghostty for awhile so this is the proper path forward.

This works by deferring Surface initialization until the first resize
event. This MIGHT result in a frame or two not rendering but I haven't
noticed anything visually and having the correct size is far more
important.
2025-07-30 08:48:27 -07:00
Mitchell Hashimoto
1e721ae567 apprt/gtk-ng: tabs are back! (#8098)
This brings back all tabbing behaviors.

I ran through create/close tabs and windows with Valgrind and everything
ran clean.

TODO:

- [x] goto tab keybinding
- [x] move tab
- [x] toggle tab overview (binding only, UI works!)
- [x] create window action to pull tab out into a window
2025-07-30 07:13:38 -07:00
Mitchell Hashimoto
fde50e0f1c apprt/gtk-ng: create-window action 2025-07-29 15:07:04 -07:00
Mitchell Hashimoto
0cc8b6d10f apprt/gtk-ng: remove all shortcuts on tab view 2025-07-29 14:57:50 -07:00
Mitchell Hashimoto
2847aeb181 apprt/gtk-ng: toggle tab overview 2025-07-29 14:56:16 -07:00
Mitchell Hashimoto
a5188142ba apprt/gtk-ng: move tab 2025-07-29 14:52:33 -07:00
Mitchell Hashimoto
2d1232878d apprt/gtk-ng: goto_tab 2025-07-29 14:40:45 -07:00
Mitchell Hashimoto
c78d32074e Add Gnome Nightly Icon Set (#8100)
This adds a nightly-variant for the icons. These aren't hooked up to our
build system yet.

<img width="1024" height="1024" alt="Ghostty-Gnome-Nightly-512"
src="https://github.com/user-attachments/assets/66da56a4-110a-4e60-8d6e-93e16bb27b51"
/>
2025-07-29 12:15:54 -07:00
Mitchell Hashimoto
a705b42899 Add Gnome Nightly Icon Set
This adds a nightly-variant for the icons. These aren't hooked up to our
build system yet.
2025-07-29 12:10:42 -07:00
Mitchell Hashimoto
4fb790ca4c apprt/gtk-ng: helper for getAncestor 2025-07-29 10:58:31 -07:00
Mitchell Hashimoto
179fa8e5aa remove bad file 2025-07-29 10:43:20 -07:00
Mitchell Hashimoto
8b14ab1221 apprt/gtk-ng: workaround for tab overview selection 2025-07-29 10:39:45 -07:00
Mitchell Hashimoto
16bb579bab update supps 2025-07-29 10:32:03 -07:00
Mitchell Hashimoto
0da6b2049d apprt/gtk-ng: tab overview new tab 2025-07-29 10:29:28 -07:00
Mitchell Hashimoto
ccc8dac0a5 apprt/gtk-ng: new tab button 2025-07-29 10:24:25 -07:00
Mitchell Hashimoto
b475cd28d5 apprt/gtk-ng: new tab, slightly broken 2025-07-29 10:17:26 -07:00
Mitchell Hashimoto
0682811107 apprt/gtk-ng: window close confirmation 2025-07-29 09:48:17 -07:00
Mitchell Hashimoto
70010ec50a typos 2025-07-29 09:38:31 -07:00
Mitchell Hashimoto
e4fb46f230 apprt/gtk-ng: close window if no tabs left 2025-07-29 09:38:09 -07:00
Mitchell Hashimoto
3bb6cdff4e apprt/gtk-ng: window getActiveSurface 2025-07-29 09:33:38 -07:00
Mitchell Hashimoto
3f440821d9 fix up suppressions 2025-07-29 09:29:50 -07:00
Mitchell Hashimoto
c0e7b92e91 apprt/gtk-ng: close tab confirmation 2025-07-29 09:27:13 -07:00
Mitchell Hashimoto
431a6328dc apprt/gtk-ng: handle surface close request 2025-07-28 21:38:00 -07:00
Mitchell Hashimoto
ed25a57d08 apprt/gtk-ng: hook up all existing surface signals 2025-07-28 21:22:23 -07:00
Mitchell Hashimoto
5279badd5b apprt/gtk-ng: bind a bunch on page-attach/detach 2025-07-28 21:08:47 -07:00
Mitchell Hashimoto
fa45f971f4 apprt/gtk-ng: title bindings 2025-07-28 12:38:40 -07:00
Mitchell Hashimoto
775f3dfca3 apprt/gtk-ng: basic tab creation 2025-07-28 10:52:33 -07:00
Mitchell Hashimoto
e768b54d89 apprt/gtk-ng: new tab button in header 2025-07-28 10:21:47 -07:00
Mitchell Hashimoto
bc6cbdc41a apprt/gtk-ng: toolbar style config 2025-07-28 10:21:47 -07:00
Mitchell Hashimoto
d7e42e6614 apprt/gtk-ng: tab bar top/bottom 2025-07-28 10:21:47 -07:00
Mitchell Hashimoto
e7cab27c38 apprt/gtk-ng: tab bar properties 2025-07-28 10:21:47 -07:00
Mitchell Hashimoto
288461fbee apprt/gtk-ng: setup tab views in blueprint 2025-07-28 10:21:47 -07:00
Mitchell Hashimoto
92c1f4b0b9 macOS: update Float on Top menu icon to square.filled.on.square (#8087)
Address a minor UI confusion introduced by #7594.

Ghostty's "Float on Top" action icon uses
`square.3.layers.3d.top.filled`, which is the same as macOS's "Bring All
to Front" action. This may cause confusion.

Before:
<img width="333" height="156" alt="image"
src="https://github.com/user-attachments/assets/5148909c-f090-4b2f-8206-c45cb30cf30e"
/>

After:
<img width="336" height="148" alt="image"
src="https://github.com/user-attachments/assets/3c3a820f-ece3-4778-af47-767758c23266"
/>
2025-07-28 10:01:14 -07:00
Mitchell Hashimoto
3278507ae8 Fix typo in VM Acceptance Criteria (#8092)
This PR fixes a small typo in the "VM Acceptance Criteria" section —
replaces "The" with "They".
2025-07-28 10:01:03 -07:00
Ahmed Harabi
87bb949a93 Fix typo in VM Acceptance Criteria ('The' → 'They') 2025-07-28 15:57:48 +00:00
Mitchell Hashimoto
a5a09f5ba4 apprt/gtk-ng: port SIGUSR2 to reload config (#8091)
Nothing controversial here.
2025-07-28 08:33:22 -07:00
Mitchell Hashimoto
c149ba1907 apprt/gtk-ng: port SIGUSR2 to reload config 2025-07-28 08:21:28 -07:00
Mitchell Hashimoto
d474c81b90 gtk-ng: fix up background of resize and url overlays (#8089)
PR #8088 had the unexpected side-effect of making the resize and url
overlays transparent as well. This PR fixes that.
2025-07-27 21:33:59 -07:00
Jeffrey C. Ollie
96573917a0 gtk-ng: fix up background of resize and url overlays
PR #8088 had the unexpected side-effect of making the resize and url
overlays transparent as well. This PR fixes that.
2025-07-27 23:28:28 -05:00
Mitchell Hashimoto
4c01d776c5 valgrind: make some GSK renderer supressions less strict 2025-07-27 21:08:15 -07:00