100 Commits

Author SHA1 Message Date
Mitchell Hashimoto
9be46fa80a apprt/gtk: log configuration errors 2023-09-11 09:18:03 -07:00
Thorsten Ball
cac5b00d94 gtk: add gtk-single-instance setting to allow disabling of it
This is based on our conversation on Discord and adds a setting for GTK
that allows disabling the GTK single-instance mode.

If this is off, it's possible to start multiple applications from the
same release binary.

Tested like this:

```
$ zig build -Dapp-runtime=gtk -Doptimize=ReleaseFast && ./zig-out/bin/ghostty --gtk-single-instance=false

[... starts new application ...]
```

and

```
$ zig build -Dapp-runtime=gtk -Doptimize=ReleaseFast && ./zig-out/bin/ghostty --gtk-single-instance=true
info: ghostty version=0.1.0-main+42a22893
info: runtime=apprt.Runtime.gtk
info: font_backend=font.main.Backend.fontconfig_freetype
info: dependency harfbuzz=8.0.0
info: dependency fontconfig=21400
info: renderer=renderer.OpenGL
info: libxev backend=main.Backend.io_uring
info(os): LANG is not valid according to libc, will use en_US.UTF-8
info: reading configuration file path=/home/mrnugget/.config/ghostty/config
info(config): default shell source=env value=/usr/bin/zsh

(process:49045): GLib-GIO-WARNING **: 13:55:56.116: Your application did not unregister from D-Bus before destruction. Consider using g_application_run().

[exits]
```
2023-09-05 13:59:07 +02:00
Thorsten Ball
a1a48eb3f0 gtk: allow hiding window decoration in configuration
This is part of #319 by fixing it for GTK and introducing the
configuration option.

This adds `window-decoration = false` as a possible configuration
option. If set to `false`, then no window decorations are used.
2023-09-03 21:27:21 +02:00
Will Pragnell
86122624e0 macos: add visible-menu non-native-fullscreen option 2023-09-01 21:45:45 -07:00
Seth Rider
c56d07c36f use Gtk.Notebook::switch-page callback for setting window title 2023-08-28 07:26:30 -07:00
Seth Rider
fc774cf21a Set gtk window title on change and tab swap (by key command) 2023-08-26 21:25:54 +01:00
Mitchell Hashimoto
fe0e1f5ee8 input: key must provide unshifted codepoint 2023-08-17 09:40:32 -07:00
Mitchell Hashimoto
33bef28850 rename key2callback to keycallback 2023-08-16 13:40:57 -07:00
Mitchell Hashimoto
4e8f5d3997 remove charCallback/keyCallback 2023-08-16 13:39:44 -07:00
Mitchell Hashimoto
896d0e8fcf apprt/gtk: only use key2callback 2023-08-16 13:02:31 -07:00
Mitchell Hashimoto
83ba2b9825 apprt/gtk: clean up keyval_unicode usage 2023-08-16 12:51:00 -07:00
Mitchell Hashimoto
1a918bc64b apprt/gtk: call new key2callback using the all-in-one key event 2023-08-16 12:48:48 -07:00
Mitchell Hashimoto
e74a173704 apprt/gtk: translate keyval if there is no utf8
This is the same fix as #287 but for GTK.
2023-08-16 12:47:51 -07:00
Mitchell Hashimoto
49a9d626ec apprt/gtk: convert keyval to unicode if input method doesn't process
See comment for details.
2023-08-13 16:27:46 -07:00
Mitchell Hashimoto
5e2fa50d0b macos-option-as-alt config, handle alt-prefix for charCallback 2023-08-13 14:55:31 -07:00
Mitchell Hashimoto
81995fc078 apprt/gtk: inherit font size on new windows and tabs 2023-08-13 12:15:42 -07:00
Mitchell Hashimoto
619d2ade3e only initialize font discovery mechanism once, cache on App
Fontconfig in particular appears unsafe to initialize multiple times.

Font discovery is a singleton object in an application and only ever
accessed from the main thread so we can work around this by only
initializing and caching the font discovery mechanism exactly once on
the app singleton.
2023-08-13 08:01:33 -07:00
Mitchell Hashimoto
55778a049b apprt/gtk, opengl: render preedit 2023-08-11 12:37:27 -07:00
Mitchell Hashimoto
ce4eb2112c core: get rid of ignore_char, apprt must handle this now 2023-08-11 12:02:01 -07:00
Mitchell Hashimoto
38477ed547 apprt/gtk: use manual translation, handle dead key states 2023-08-11 12:02:01 -07:00
Mitchell Hashimoto
4fe739cae0 core: note when keyCallback processed the input 2023-08-11 12:02:00 -07:00
Mitchell Hashimoto
f012b908b7 apprt/gtk: use glfw for reading primary clipboard (see comment) 2023-08-09 14:17:03 -07:00
Mitchell Hashimoto
347c60d9bd selection copies to the selection clipboard 2023-08-09 14:00:48 -07:00
Mitchell Hashimoto
f3996ff0f8 apprt: primary clipboard awareness (selection clipboard) 2023-08-09 13:41:22 -07:00
moderation
b33b2bb6a4 gtk: apply background opacity
Signed-off-by: moderation <michael@sooper.org>
2023-08-09 12:03:05 -07:00
Thorsten Ball
147d5b0f3e gtk: fix arrow-up stealing focus
This fixes #253 -- with essentially a single line! Just took me a while
to find out where to add this line.

Turns out we already solved this problem for `<Tab>` so now we do the
same thing for `<Up>`: we tell the `GtkApplication` we handled the event
so it doesn't propagate any further.
2023-08-09 20:11:03 +02:00
Mitchell Hashimoto
e93a6eb2e4 apprt/gtk: set icon name 2023-08-08 09:44:11 -07:00
Mitchell Hashimoto
6b45d931c3 plumb through the resources dir to termio 2023-08-08 09:29:38 -07:00
Kevin Hovsäter
22b8173164 Fix typos 2023-08-08 14:27:34 +02:00
Mitchell Hashimoto
aff64d9951 Merge pull request #247 from mitchellh/gtk-single-instance
GTK single instance, fix UB in termio read thread termination
2023-08-07 21:43:08 -07:00
Mitchell Hashimoto
6d32d74996 apprt/gtk: remove useless calls 2023-08-07 21:15:42 -07:00
Mitchell Hashimoto
2e98d43a58 apprt/glfw: launch window on startup 2023-08-07 19:28:48 -07:00
Mitchell Hashimoto
60a36ca5cc apprt/gtk: enable single instance mode 2023-08-07 19:26:57 -07:00
Mitchell Hashimoto
22296b377a Revert "Merge pull request #244 from mitchellh/alt-as-esc"
This reverts commit c139279d479682c17f63d9b57c2d56608d09d16a, reversing
changes made to 4ed21047a734d7c586debe0026e3b6ea90ed1622.

We do want to do this but this broke bindings.
2023-08-07 17:06:40 -07:00
Mitchell Hashimoto
eca5955e65 apprt/gtk: new input mods format 2023-08-07 14:35:52 -07:00
Mitchell Hashimoto
8ff81de30f apprt/gtk: fix build for macos non-native fullscreen changes 2023-08-04 18:19:48 -07:00
Thorsten Ball
b56ffa6285 Add config setting to turn non-native fullscreen on or off 2023-08-04 14:12:33 -07:00
Thorsten Ball
3ab96f266b gtk: add missing space in close dialog and add newline
See before/after screenshots. Before, without the space, it's wrong. I
fixed that and added a newline, since a big paragraph like that looks a
bit wrong in a dialog popup.
2023-08-01 07:03:57 +02:00
Thorsten Ball
a01a3fdcde gtk: remove thin, white border
The GTK app has a really thin, white border around the terminal
contents. It's really distracting when in fullscreen.

At first I thought it's the window that has a border, but turns out
that's not it. It's the GTK Notebook widget. Luckily for us, GTK4 has a
single API call that allows us to turn off the border.
2023-07-23 13:05:02 +02:00
Thorsten Ball
de5780a771 gtk: change default window size to 1000x600
The previous 200x200 looks ... weird :) But it was also quite unhandy
because I constantly have to resize new builds when I want to check
something.
2023-07-17 06:54:47 +02:00
Mitchell Hashimoto
d25568ffdb apprt/gtk: honor background opacity 2023-07-03 20:21:16 -07:00
Thorsten Ball
567ba5a25e gtk: handle ctrl+return to toggle fullscreen
This is a follow-up to #172 and adds fullscreen handling to the GTK
apprt.

Works reliably for the current window and mimics exactly what happens
when F11 is pressed, which seems to be the standard keybinding for GTK
apps to toggle fullscreen.
2023-07-03 06:38:14 +02:00
Mitchell Hashimoto
314f9287b1 Update Zig (#164)
* update zig

* pkg/fontconfig: clean up @as

* pkg/freetype,harfbuzz: clean up @as

* pkg/imgui: clean up @as

* pkg/macos: clean up @as

* pkg/pixman,utf8proc: clean up @as

* clean up @as

* lots more @as cleanup

* undo flatpak changes

* clean up @as
2023-06-30 12:15:31 -07:00
Mitchell Hashimoto
68631a1ccd apprt: plumb through scroll mods to core, don't handle them yet 2023-06-29 10:41:42 -07:00
Mitchell Hashimoto
f31d6fb8fe apprt: clean up how apprt initializes surfaces 2023-05-31 21:08:50 -07:00
Mitchell Hashimoto
77dcc10f80 linux: fit gtk/flatpak builds 2023-05-27 10:01:20 -07:00
Mitchell Hashimoto
69aaab50eb apprt/gtk: quit confirmation window 2023-03-27 10:45:27 -07:00
Mitchell Hashimoto
59f42f50a4 apprt/gtk: window close confirmation 2023-03-27 10:41:30 -07:00
Mitchell Hashimoto
4d29f028c6 apprt/gtk: close tab button will show confirmation properly 2023-03-27 10:35:49 -07:00
Mitchell Hashimoto
16244d0dab apprt/gtk: close keybind doesn't leak memory 2023-03-27 10:24:01 -07:00