Commit Graph

169 Commits (v1.1.3)

Author SHA1 Message Date
Mitchell Hashimoto cbf562ecb3
apprt/embedded: make performAction return the performable state 2025-02-11 16:43:50 -08:00
Mitchell Hashimoto 844f20d01f
Handle setting _NET_WM_STATE (#4936)
As recommended in
https://github.com/ghostty-org/ghostty/pull/4927#issuecomment-2585003934,
adds a config option `maximize` for starting a window in a maximized
state in terms of window properties. Also adds a `toggle_maximize`
keybind to allow users to manually toggle this feature on and off.

It might make more sense to make this an optional config value so that
we don't toggle the state off if the WM already handles that for us, but
I'll let a reviewer decide.

Closes https://github.com/ghostty-org/ghostty/issues/4646
2025-01-13 13:14:31 -08:00
Andreas Skielboe e288096c26
Fix backslash comment in ghostty.h 2025-01-13 11:49:21 +01:00
Adam Wolf 8102fddceb apprt/gtk: add toggle_maximize keybind and window-maximize config option 2025-01-10 22:42:41 -06:00
Sabarigirish Manikandan 306c7ea2be
close_tab keybind (gtk apprt only) (#4033)
Title. Adds a close_tab keybind that essentially behaves the exact same
as clicking the tab close button on the tab bar.
2025-01-08 19:07:00 +00:00
Mitchell Hashimoto 40bdea7335
macos: handle overridden system bindings with no focused window 2025-01-04 14:07:47 -08:00
Mitchell Hashimoto 3e89c4c2f4
Key events return boolean if handled 2025-01-04 13:36:40 -08:00
Mitchell Hashimoto 4d103ca16d
core: add keyEventIsBinding
This API can be used to determine if the next key event, if given as-is,
would result in a key binding being triggered.
2025-01-04 12:45:15 -08:00
Mitchell Hashimoto e8811ac6fb
Move app quit to apprt action
This changes quit signaling from a boolean return from core app `tick()`
to an apprt action. This simplifies the API and conceptually makes more
sense to me now.

This wasn't done just for that; this change was also needed so that
macOS can quit cleanly while fixing #4540 since we may no longer trigger
menu items. I wanted to split this out into a separate commit/PR because
it adds complexity making the diff harder to read.
2025-01-04 07:18:53 -08:00
Daniel Patterson a4daabb28a Rename `goto_split` top/bottom directions to up/down. 2024-12-27 14:56:48 +00:00
Mitchell Hashimoto 29929a473d
config: macos-icon configurations 2024-12-21 19:31:30 -08:00
Mitchell Hashimoto 298d6194f4
config: change color to a defined C struct for libghostty 2024-12-21 19:31:30 -08:00
Mitchell Hashimoto cd49015243
App applies conditional state, supports theme setting
The prior light/dark mode awareness work works on surface-level APIs. As
a result, configurations used at the app-level (such as split divider
colors, inactive split opacity, etc.) are not aware of the current theme
configurations and default to the "light" theme.

This commit adds APIs to specify app-level color scheme changes. This
changes the configuration for the app and sets the default conditional
state to use that new theme. This latter point makes it so that future
surfaces use the correct theme on load rather than requiring some apprt
event loop ticks. Some users have already reported a short "flicker" to
load the correct theme, so this should help alleviate that.
2024-11-22 14:08:35 -08:00
Mitchell Hashimoto 00c62708d3
apprt: remove change conditional state action 2024-11-22 11:52:34 -08:00
Mitchell Hashimoto a191f3c396
apprt: switch to reload_config action that calls update_config API 2024-11-22 11:52:34 -08:00
Mitchell Hashimoto 037d4364e5
config: C API ghostty_config_clone 2024-11-21 10:41:48 -08:00
Mitchell Hashimoto fadfb08efe
apprt: add `config_change` action 2024-11-21 10:30:27 -08:00
Mitchell Hashimoto b7f1eaa145
apprt: action to change conditional state, implement for embedded 2024-11-19 15:36:31 -08:00
Mitchell Hashimoto e0a733584e
libghostty: remove the pwd function 2024-11-13 13:11:24 -08:00
Mitchell Hashimoto 3ca246ceb9
apprt: support a pwd change action 2024-11-13 12:29:30 -08:00
Mitchell Hashimoto 1065359b9a
apprt: rename set_bg/fg to "color_change" to report all color changes 2024-10-30 16:33:18 -04:00
CJ van den Berg a2a1d93d5c
apprt: propagate OSC10/11 (set term fore/background color) through to apprt
This is to allow the running apprt to set the UI theme to match the
terminal application coloring.
2024-10-30 17:35:34 +01:00
Mitchell Hashimoto de5ec5d83e
macos: make move_tab work 2024-10-25 11:54:07 -07:00
Mitchell Hashimoto 70c175e2a6
c: remove the config load string API
It was unused and doesn't match our diagnostic API.
2024-10-18 08:11:11 -07:00
Mitchell Hashimoto a4e14631ef
config: richer diagnostics for errors
Rather than storing a list of errors we now store a list of
"diagnostics." Each diagnostic has a richer set of structured
information, including a message, a key, the location where it occurred.

This lets us show more detailed messages, more human friendly messages, and
also let's us filter by key or location. We don't take advantage of
all of this capability in this initial commit, but we do use every field
for something.
2024-10-18 08:11:11 -07:00
Mitchell Hashimoto 5c1ffbb642
apprt: implement key_sequence action 2024-10-08 21:55:00 -07:00
Mitchell Hashimoto 392875381a
macos: become aware of new split directions left and up 2024-10-07 15:34:47 -10:00
Mitchell Hashimoto ed2cd6d436
macos: remove the ability to bind fn/globe
This was recently introduced a few days ago. Unfortunately, this doesn't
work as expected. The "function" modifier is not actually the fn key
but used by macOS to represent a variety of "functional" key presses.
This breaks other bindings such as #2411.

I can't find a source on the internet that reliably tells me how we
can detect fn key presses, but I do find a number of sources that tell
us we can't.
2024-10-07 14:36:12 -10:00
Mitchell Hashimoto 8dc4ebb4f7
apprt/embedded: add ghostty_app_set_focus 2024-10-06 09:58:46 -10:00
Mitchell Hashimoto 6fdfa9d491
Make the function/globe key available as a modifier on macOS 2024-10-05 09:39:55 -10:00
Roland Peelen 24ba1a6100 Add action on Zig side 2024-10-02 10:33:36 -07:00
Mitchell Hashimoto 1570ef01a7
rename slide to quick terminal 2024-09-28 15:20:35 -07:00
Mitchell Hashimoto 7806366eec
core: fix up toggle_slide_terminal action for rebase 2024-09-27 18:36:06 -07:00
Mitchell Hashimoto 7befb5a418
macos: fix previous/next tab bindings, improve action logging 2024-09-27 12:24:11 -07:00
Mitchell Hashimoto be0d71f62d
apprt/embedded: add the tab overview to the enum 2024-09-27 10:15:16 -07:00
Mitchell Hashimoto 4ae20212bf
libghostty: unified action dispatch
First, this commit modifies libghostty to use a single unified action
dispatch system based on a tagged union versus the one-off callback
system that was previously in place. This change simplifies the code on
both the core and consumer sides of the library. Importantly, as we
introduce new actions, we can now maintain ABI compatibility so long as
our union size does not change (something I don't promise yet).

Second, this moves a lot more of the functions call on a surface into
the action system. This affects all apprts and continues the previous
work of introducing a more unified API for optional surface features.
2024-09-26 22:00:11 -07:00
Mitchell Hashimoto 1ad904478d
Tap events, core API to handle global keybinds 2024-09-24 16:29:02 -07:00
Mitchell Hashimoto 0f3f01483e
apprt/embedded: API for checking if there are global keybinds 2024-09-23 20:45:58 -07:00
Mitchell Hashimoto 261ce00552
apprt/macos,gtk: unfocused splits now highlight hovered links
Fixes #1547

The core change to make this work is to make the cursor position
callback support taking updated modifiers. On both macOS and GTK, cursor
position events also provide the pressed modifiers so we can pass those
in.
2024-09-21 15:16:14 -07:00
Mitchell Hashimoto 1ed1c73c1a
macos: enable secure input on password input 2024-09-19 16:38:32 -07:00
Mitchell Hashimoto c0e0eff468
core: add toggle_secure_input keybinding 2024-09-19 10:20:30 -07:00
Eduardo Dominguez 262902a28d macos: jump to last_tab 2024-08-19 12:19:00 -06:00
Mitchell Hashimoto 9cf247bb3e
macos: implement resize overlay
Implements the resize overlay configurations completely.
2024-08-10 20:17:33 -07:00
Justin Su 5d71ab9f26
Fix build on Xcode 16 2024-07-20 13:13:49 -04:00
Mitchell Hashimoto cb790b8e39
macos: show URL on OSC8 hover 2024-07-06 10:25:12 -07:00
Mitchell Hashimoto 7fbc73ad37
macos: implement ctrl+command+d for quicklook under cursor 2024-07-01 10:08:38 -07:00
Mitchell Hashimoto 57d71450ab
ctrl+click is handled as right-click (with various details)
If mouse capturing is enabled, we encode ctrl+click as ctrl+left-click
and DO NOT handle it as right click.
2024-06-30 19:44:51 -07:00
Mitchell Hashimoto 03f37087a5
mouse button callbacks returns bool for consumption 2024-06-30 09:42:15 -07:00
Mitchell Hashimoto 26735f0e05
apprt: convert selection info to a single struct and C API 2024-06-29 11:23:14 -05:00
Mitchell Hashimoto 80700d524d
macos: add API to get selection top-left for quicklook 2024-06-29 10:42:45 -05:00