972 Commits

Author SHA1 Message Date
Paul Berg
439988930d gtk: respect wide-tabs option 2024-09-11 15:42:31 +02:00
Paul Berg
5327daac04 adw: implement next/previous 2024-09-11 15:42:31 +02:00
Paul Berg
9c8a9f3d6b adw: respect gtk-wide-tabs
update
2024-09-11 15:42:05 +02:00
Paul
42c93d89fc adw: move notebook to its own file 2024-09-11 15:42:03 +02:00
Paul
0e22695ec4 gtk: use adwaita tab view when possible
add tab bar view
2024-09-11 15:35:22 +02:00
Tristan Partin
a0bc6ae966 gtk: silence bad accelerator warnings
Before this a commit a keybind of CTRL + \ would create a GTK
accelerator of <Ctrl>\, which is incorrect. It needs to be
<Ctrl>backslash, which can be retrieved with gdk_keyval_name().

Signed-off-by: Tristan Partin <tristan@partin.io>
2024-09-05 19:08:29 -05:00
Mitchell Hashimoto
a3aa5463a1 Revert "Merge pull request #2060 from jcollie/gtk-compatibility"
This reverts commit 9ce789cc85d411c59eff2a01c7fe18ce14ccd2b8, reversing
changes made to f1aea10a84176ff4338f7d2f0bf1b9c700b41baa.
2024-09-05 08:45:37 -07:00
Mitchell Hashimoto
2142ba53c4 apprt/gtk: do not remove unfocused widget from overlay
See comment
2024-09-04 14:17:51 -07:00
Mitchell Hashimoto
a947e20826 Merge pull request #2174 from ghostty-org/release-safe
Build ReleaseSafe builds for testing, make them more usable
2024-08-31 21:50:03 -07:00
Mitchell Hashimoto
0ab3d964dd apprt/gtk: show debug warning whenever runtime safety is on 2024-08-31 21:38:02 -07:00
Jeffrey C. Ollie
bbb204ac85 rename gtkVersionMinimum->gtkVersionAtLeast for consistency 2024-08-31 19:16:43 -07:00
Jeffrey C. Ollie
b6c943386c Conditional compilation against different GTK versions
Adds a comptime function to enable conditional compilation against
different GTK versions that have added new API calls in newer versions
of GTK.

Use this function to get fractional scaling information for GTK
surfaces, which is only available with GTK 4.12+.
2024-08-31 19:15:24 -07:00
Mitchell Hashimoto
80327402b8 Merge pull request #2120 from edmz/last_tab
macos: jump to last_tab
2024-08-26 20:22:52 -07:00
Mitchell Hashimoto
512b24818a apprt/gtk: fix int cast 2024-08-26 20:16:23 -07:00
Mitchell Hashimoto
d7e7f55956 apprt/gtk: support last_tab 2024-08-26 20:13:28 -07:00
Mitchell Hashimoto
3d1ee3daa8 apprt: make gotoTab handle all tab movements 2024-08-26 20:13:27 -07:00
Mitchell Hashimoto
18419d3589 Clamp initial window size configurations to screen size
Fixes #2145
2024-08-26 10:09:05 -07:00
Mitchell Hashimoto
7747eaf11d apprt/embedded: use new copyAttribute API for CoreText 2024-08-24 20:52:36 -07:00
Eduardo Dominguez
262902a28d macos: jump to last_tab 2024-08-19 12:19:00 -06:00
Mitchell Hashimoto
d7299b16bf apprt/gtk: fix imgui calls 2024-08-16 16:53:17 -07:00
Mitchell Hashimoto
7a7f7da4ef pkg: yeet more usingns 2024-08-16 16:52:28 -07:00
Mitchell Hashimoto
a9107e7eb6 apprt/embedded: fix usingnamespace usage 2024-08-16 15:00:07 -07:00
Mitchell Hashimoto
9409e3072f apprt/gtk: remove usingnamespace 2024-08-16 14:58:04 -07:00
Mitchell Hashimoto
ba29bf759b lots more yeeting 2024-08-16 14:35:10 -07:00
Jeffrey C. Ollie
414fdc0214 gtk: prettify the url overlays 2024-08-13 14:21:28 -05:00
Mitchell Hashimoto
a158a1d45f os: unify memory/processes cgroup limiting func 2024-08-11 15:37:54 -07:00
Christian Kugler
ba41f142ed Add Config Option to Limit Number of Processes
To protect your system and ghostty from misbehaving programs that launch
too many processes for the system to handle (e.g. like a fork bomb),
this implements an option to limit the number of processes that can be
started in a surface.

A fork bomb for example or other misbehaving program would then only
take down one surface and not the entire system.

Side node:
If I am right in issue #2084, this feature does not actually work on a
per surface basis but on all surfaces. If this is the case, it could
probably be fixed together. Chances are, that I am wrong though 😉

Further improvements that could be done:
- unify way to set cgroup attributes
- set sane default: 10% of system max?
2024-08-11 23:37:57 +02:00
Jeffrey C. Ollie
f4bdf8d3a1 gtk: resize overlay improvements
* runtime changing of `resize-overlay` now works on GTK
* shorten function names in ResizeOverlay
* improve documentation
2024-08-11 12:23:43 -05:00
Mitchell Hashimoto
9cf247bb3e macos: implement resize overlay
Implements the resize overlay configurations completely.
2024-08-10 20:17:33 -07:00
Mitchell Hashimoto
451cf69398 Merge pull request #2071 from jcollie/resize-overlay
gtk: add resize overlay
2024-08-10 15:07:09 -07:00
Mitchell Hashimoto
1c88377e97 apprt/gtk: small style tweaks for resize overlay 2024-08-10 15:06:44 -07:00
Jeffrey C. Ollie
4dbd2fb639 move resize overlay code to a new file to keep the file size down 2024-08-10 14:59:05 -05:00
Jeffrey C. Ollie
b55b3de05b resize overlay: move all resize overlay code and data into a struct
Keepin´ the code clean by gathering all of the resize overlay
related data and code into a struct.
2024-08-10 14:44:28 -05:00
Jeffrey C. Ollie
8b919df1f5 resize-overlay: change default and delay → duration
Change the default to `after-first` and change `resize-overlay-delay` →
`resize-overlay-duration`.
2024-08-10 13:22:20 -05:00
Mitchell Hashimoto
61ad6d10de apprt/embedded: store title directly instead of get_title cb 2024-08-10 11:15:53 -07:00
Mitchell Hashimoto
ccf62a4960 stylistic nitpicks 2024-08-10 11:03:56 -07:00
Jeffrey C. Ollie
301826dfff gtk: add resize overlay
This adds a transient overlay that shows the size of the surface
while you are resizing the window or the surfaces.
2024-08-09 22:58:33 -05:00
Jeffrey C. Ollie
ce5e55d4aa Implement the XTWINOPS (CSI t) control sequences that "make sense".
These sequences were implemented:

CSI 14 t - report the text area size in pixels
CSI 16 t - report the cell size in pixels
CSI 18 t - report the text area size in cells
CSI 21 t - report the window title

These sequences were not implemented because they manuipulate the window
state in ways that we do not want.

CSI 1 t
CSI 2 t
CSI 3 ; x ; y t
CSI 4 ; height ; width ; t
CSI 5 t
CSI 6 t
CSI 7 t
CSI 8 ; height ; width ; t
CSI 9 ; 0 t
CSI 9 ; 1 t
CSI 9 ; 2 t
CSI 9 ; 3 t
CSI 10 ; 0 t
CSI 10 ; 1 t
CSI 10 ; 2 t
CSI 24 t

These sequences were not implemented because they do not make sense in
a Wayland context:

CSI 11 t
CSI 13 t
CSI 14 ; 2 t

These sequences were not implemented because they provide information
about the screen that is unnecessary.

CSI 15 t
CSI 19 t

These sequences were not implemeted because Ghostty does not maintain an
icon title for windows.

CSI 20 t
CSI 22 ; 0 t
CSI 22 ; 1 t
CSI 23 ; 0 t
CSI 23 ; 1 t

These sequences were not implemented because of the additional
complexity of maintaining a stack of window titles.

CSI 22 ; 2 t
CSI 23 ; 2 t
2024-08-07 00:12:20 -05:00
Paul
c461d58519 gtk: One's complement the opacity of overlay for unfocused splits
The case where the split if fully opaque (`unfocused-split-opacity = 1.0`) should result in the overlay being fully transparent (`opacity: 0.0`).
This would be consistent with how this is implemented in the macos app:

dcc492f19b/macos/Sources/Ghostty/Ghostty.Config.swift (L302)
2024-08-06 09:58:23 +02:00
Łukasz Niemier
f9be02a20f chore: clean up typos 2024-08-05 13:56:57 +02:00
Mitchell Hashimoto
656c720866 apprt/gtk: can manually expire our quit timer instead of 0 second timer 2024-08-04 19:06:17 -07:00
Jeffrey C. Ollie
4657f30f7f Fix quit-after-last-window-closed=true, quit-after-last-window-closed-delay=null
The case when `quit-after-last-window-closed=true` and
`quit-after-last-window-closed-delay=null` was broken because control
gets stuck inside `g_main_context_iteration` and never returns to our
code. In that case add a 0ms timer that will return control flow from
GLib back to our code so that we can quit.

Fixes #2039
2024-08-04 14:47:58 -05:00
Mitchell Hashimoto
288a1fe549 Merge pull request #2021 from jcollie/background
gtk: allow running in the background
2024-08-03 10:08:45 -07:00
Mitchell Hashimoto
224f2d0491 apprt/gtk: use tagged union for quit timer 2024-08-03 10:05:31 -07:00
Jeffrey C. Ollie
3a4b236e6d re-use code to cancel old timer 2024-08-02 10:24:17 -05:00
Jeffrey C. Ollie
38e9847bd2 fix typo 2024-08-01 19:48:00 -05:00
Mitchell Hashimoto
9528978488 Merge pull request #2014 from jcollie/gtk-context-menu-additions
Additions to GTK context menu
2024-08-01 14:54:49 -07:00
Mitchell Hashimoto
99b1b6305f reset only 2024-08-01 14:54:39 -07:00
Jeffrey C. Ollie
ec0f90d1b6 Improve quit timers.
Instead of "polling" to see if a quit timer has expired, start a single
timer that expires after the confiugred delay when no more surfaces are
open. That timer can be cancelled if necessary.
2024-08-01 14:49:02 -05:00
Jeffrey C. Ollie
3d6ca14dc6 make quit-after-last-window-closed-delay an optional 2024-08-01 10:51:08 -05:00