52 Commits

Author SHA1 Message Date
Mitchell Hashimoto
ad5d44af10 config: control cgroup isolation 2024-06-05 09:43:57 -07:00
Mitchell Hashimoto
1285b4f243 apprt/gtk: store transient cgroup 2024-06-04 21:10:42 -07:00
Mitchell Hashimoto
409c958b7e apprt/gtk: cgroup initialization 2024-06-04 18:59:44 -07:00
Jeffrey C. Ollie
aa9813bc79 Add split right & split down menu entries for the GTK apprt.
Inspired by #1752
2024-05-11 11:48:11 -05:00
Mitchell Hashimoto
e81f525101 apprt/gtk: set GDK_DEBUG 2024-05-08 21:04:50 -07:00
Mitchell Hashimoto
b6f5970264 minor style changes 2024-03-28 14:45:44 -07:00
Jeffrey C. Ollie
f943a4cf87 GTK: Add compiled-in GTK resources and use them for icons.
Use glib-compile-resources to compile CSS style sheets and icons into
the Ghostty GTK binary. Makes for simpler access to icons and sets
things up for customizing the look of Ghostty with CSS in the future.
The CSS style sheets are blank for now so there will be no visual
changes.
2024-03-27 16:47:26 -05:00
Mitchell Hashimoto
d315223423 apprt/gtk: small stylistic edits 2024-02-02 20:00:10 -08:00
Jeffrey C. Ollie
0938835f87 Implement mode 2031 and DSR 996 for GTK 2024-02-02 21:10:58 -06:00
Mitchell Hashimoto
e5400bad06 config: add window-theme = auto for automatic choosing based on bg color 2024-02-01 20:49:28 -08:00
Gregory Anders
d059c57440 gtk: use modifier state from GTK key event on X11
On X11 gdk_device_get_modifier_state does not correctly return the
modifier state, while the modifier state passed to the key callback
does. On Wayland, the situation is exactly reversed.

Therefore on X11 we use the mods provided by the key callback and on
Wayland we continue to get the modifier state from the device.

`App.modifier_state_from_xkb` is removed since we can lift the
conditional out of the function call (we would need to make a second,
redundant check for the presence of `x11_xkb` otherwise).
2024-01-10 16:26:53 -06:00
Jeffrey C. Ollie
698954031a Add 'Open Config' menu to the GTK runtime and synchronize config-related keybindings across platforms. 2024-01-04 23:30:22 -06:00
Mitchell Hashimoto
732063375a apprt/gtk: stylistic changes 2024-01-01 08:34:19 -08:00
Chris Marchesi
d235554606 apprt/gtk: Move Xkb state to App, remove un-needed fields, style changes 2023-12-31 12:10:25 -08:00
Chris Marchesi
fc4fdbb643 apprt/gtk: ensure modifier state matches current keypress under X11
This fixes an issue in that when running under X11, when a modifier key
is pressed, the modifier state will "lag" behind what should be current.
This is due to how X11 sends modifiers in events, i.e. it sends the
state from right before the key press, and does not include the effects
of the key press itself.

This is corrected by checking the X event queue directly for a pending
XkbStateNotify event (we mask this on modifiers), and setting the
modifiers off of that if we find one. If not, we fall back to the GDK
call.
2023-12-30 22:58:33 -08:00
Mitchell Hashimoto
e43919cb9e apprt/gtk: stylistic changes to adwaita init 2023-12-29 09:10:49 -08:00
Tristan Partin
41aa9ac2ff Use adw_application_new() instead of adw_init()
This will enable further libadwaita improvements in the future, but will
have no effect today.
2023-12-28 21:50:56 -06:00
Mitchell Hashimoto
2c311ab369 apprt/gtk: hook up open config 2023-12-18 08:04:24 -08:00
Mitchell Hashimoto
b021d76edf core: quit-after-last-window-closed works properly with "exit"
Fixes #1085

This moves the logic of exiting when there are no surfaces left fully to
apprt and away from the core.
2023-12-13 16:35:14 -08:00
Chris Marchesi
1832401e0e gtk: make sure WM_CLASS is being set on X11
This ensures that WM_CLASS is being set on X11, looks like this was
missed in #816 (not 100% sure if it always needs to be set in GDK or if
it's a side effect of us not using g_application_run).

This also adds the "x11-instance-name" config attribute to control the
instance name, which defaults to "ghostty" (or "ghostty-debug" on debug
builds).
2023-11-30 20:26:12 -08:00
Mitchell Hashimoto
36c3b1b3d1 apprt/gtk: gtk-adwaita runtime config to configure libadwaita
Fixes #874
2023-11-14 08:33:55 -08:00
Gregory Anders
960a1bb091 gtk: implement OSC 52 prompts 2023-11-10 23:12:39 -05:00
Mitchell Hashimoto
f338c09506 apprt/gtk: move default id into scope 2023-11-06 08:55:13 -08:00
Mitchell Hashimoto
364a14d7a2 apprt/gtk: fix valid id check 2023-11-06 08:54:23 -08:00
Mitchell Hashimoto
3564dd5e7e stylistic changes 2023-11-06 08:47:09 -08:00
Raiden1411
60717cde14 chore: update fullscreen implementation 2023-11-06 14:03:44 +00:00
Raiden1411
232527c9dc fix: fullscreen on new windows 2023-11-06 11:59:16 +00:00
Raiden1411
094f8effa3 fix: begin implementation of suggested changes 2023-11-06 10:19:09 +00:00
Raiden1411
9e9ad67d3c feat: add support for fullscreen, title and class values 2023-11-05 11:49:25 +00:00
David Rubin
44073e4c98 add basic functionality 2023-11-03 10:58:56 -07:00
hanna
63fe99809f remove hard dependency on libadwaita 2023-11-02 21:54:05 -07:00
Hanna
2d7e2c8345 Integrate libadwaita for the gtk backend (#792)
* When using gtk as the backend, link libadwaita

* Update c.zig

* Use libadwaita's theme manager for gtk

* update the documentation for window-theme

* build: add libadwaita to the nix devshell

* forgot to properly import libadwaita

* apprt/gtk: adwaita style change

---------

Co-authored-by: Mitchell Hashimoto <mitchell.hashimoto@gmail.com>
2023-11-02 21:29:29 -07:00
Mitchell Hashimoto
b985b28918 apprt/gtk: use gtk widget scale to get content scale 2023-10-27 15:03:41 -07:00
Mitchell Hashimoto
5a299e14e4 all threads are notified of inspector state, trigger render 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
6a50a938d6 apprt/gtk: button to toggle inspector 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
199e1cae29 apprt/gtk: surface has inspector state 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
a60f9eb9e6 apprt/gtk: empty inspector window 2023-10-24 15:27:13 -07:00
Mitchell Hashimoto
6c69f0ef63 apprt/gtk: gtk-single-instance defaults to true only if desktop env
Fixes #473

A new config value for `gtk-single-instance = desktop` is now valid.
This value uses GTK single instance mode only if it detects Ghostty was
launched from a desktop environment (i.e. clicking on the icon) through
the `.desktop` Freedesktop file. Otherwise, it disables single instance.

This enables Ghostty to work well with the CLI and accept all the
typical CLI flags. It will make Ghostty launch slower from the CLI but I
think this is an acceptable tradeoff.
2023-09-30 08:46:39 -07:00
Mitchell Hashimoto
ec7ab5b6a4 apprt/gtk: always set app ID, use G_APPLICATION_NON_UNIQUE instead
This makes the icon and title work on Wayland while retaining the
gtk-single-instance functionality.
2023-09-21 10:57:10 -07:00
Mitchell Hashimoto
ed0a2ecfc4 apprt/gtk: window actions should use currently active surface 2023-09-18 15:33:11 -07:00
Mitchell Hashimoto
f3662354e5 apprt/gtk: about window 2023-09-18 15:16:35 -07:00
Mitchell Hashimoto
bf665b7c63 apprt/gtk: reset accelerators initially 2023-09-18 15:03:36 -07:00
Mitchell Hashimoto
844945e7f9 apprt/gtk: add reload config 2023-09-18 15:00:54 -07:00
Mitchell Hashimoto
7996be25a8 apprt/gtk: new window, tab 2023-09-18 14:51:19 -07:00
Mitchell Hashimoto
71ca254be8 apprt/gtk: window actions 2023-09-18 14:41:52 -07:00
Mitchell Hashimoto
dcf615022e apprt/gtk: key file for logic related to keys 2023-09-18 14:27:05 -07:00
Mitchell Hashimoto
394ab3017f apprt/gtk: initial app menu 2023-09-18 12:54:19 -07:00
Mitchell Hashimoto
6df01b87c1 apprt/gtk: if errors fixed, hide window 2023-09-17 22:34:34 -07:00
Mitchell Hashimoto
92465f57ea apprt/gtk: grab focus of config window when reloading 2023-09-17 22:28:58 -07:00
Mitchell Hashimoto
bd3b5d5332 apprt/gtk: working on config errors window 2023-09-17 21:37:57 -07:00