Mitchell Hashimoto
2e0a514384
Merge pull request #2395 from ghostty-org/mods
...
Hyperlink state improvements (no mouse move, blurred splits/windows on macOS)
2024-10-06 09:40:49 -10:00
Mitchell Hashimoto
e3dd0edc4f
macos: use local event listener to propagate modifier changes to all
...
Related to #1547
Concretely, if you are highlighting a link and then release the
modifier, the other surfaces will be notified of this change.
2024-10-05 10:33:15 -10:00
Mitchell Hashimoto
f9e6d6efa6
macos: forward key events to the app when no windows exist
2024-10-05 10:05:06 -10:00
Mitchell Hashimoto
6fdfa9d491
Make the function/globe key available as a modifier on macOS
2024-10-05 09:39:55 -10:00
Mitchell Hashimoto
1ae9322959
macos: non-native fs keeps track of screen number for change screen comp
...
Fixes #2370
Comparing NSScreens directly was fragile. It appears that AppKit/Cocoa
can return different instances of NSScreen for the same screen for
unknown reasons between calls to windowDidChangeScreen. I don't fully
understand why this happens.
In any case, our comparison was not safe. Instad, we now keep track of
of the CGDirectDisplayID for each screen and compare those instead.
2024-10-05 06:21:30 -10:00
Mitchell Hashimoto
9971d7a93d
macos: toggle_visibility needs to sync to the correct menu item
2024-10-05 06:05:13 -10:00
Mitchell Hashimoto
c973ca6e03
macos: move show/hide all terminal windows
...
I don't think "View" was the right place.
Also, the menu was incorrectly bound to the quick terminal variable.
2024-10-04 06:35:20 -10:00
Lucy Davinhart
a109b8d755
Implements initial-window=false for macOS
...
Closes https://github.com/ghostty-org/ghostty/issues/2361
2024-10-03 19:09:37 +01:00
Mitchell Hashimoto
28ec11e52b
docs updates
2024-10-02 10:52:59 -07:00
Roland Peelen
9e00eeff86
Review Feedback - formatting / docs
2024-10-02 10:33:36 -07:00
Roland Peelen
af48c1af0c
Refactor to hide only BaseTerminalController windows
...
This also slightly changes the code, as the duplication of the for loop
was making it harder to read now. I think technically slightly less
efficient, but this is hardly a hot code path, so should be fine imo.
2024-10-02 10:33:36 -07:00
Roland Peelen
4aac4ecd98
Add hiding toggle, hook up to menu / shortcut
2024-10-02 10:33:36 -07:00
Mitchell Hashimoto
78b9636d15
macos: apply background opacity to quick terminal
...
Fixes #2331
2024-09-30 21:18:47 -07:00
Mitchell Hashimoto
46cbe59076
macos: quick terminal supports fullscreen
...
Fixes #2330
The quick terminal now supports fullscreen. The fullscreen mode is
always non-native due to the quick terminal being a titleless, floating
window.
When the quick terminal loses focus and animates out, it will always
exit fullscreen mode.
2024-09-30 21:07:16 -07:00
Mitchell Hashimoto
7a5a9c2a58
macos: quick terminal app activation tweaks to avoid bringing up other windows
...
Fixes #2336
The comments explain the issues here.
2024-09-30 20:45:54 -07:00
Mitchell Hashimoto
22b9f24978
macos: clarify comments, clean up notifications for fullscreen
2024-09-30 20:10:23 -07:00
Mitchell Hashimoto
639434df33
macos: exit native fullscreen if we try to enter non-native
2024-09-30 15:01:44 -07:00
Mitchell Hashimoto
93f0b9dce9
macos: only exit on screen change if the screen really changed
2024-09-30 14:48:05 -07:00
Mitchell Hashimoto
ef5b835dc4
macos: only hide dock on the screen with the dock
2024-09-30 14:25:33 -07:00
Mitchell Hashimoto
408c33e174
macos: handle non-native fullscreen changing screens
2024-09-30 14:14:01 -07:00
Mitchell Hashimoto
35462331ae
macos: non-native fs sets frame async to account for style changes
...
Fixes #1996
2024-09-30 10:44:26 -07:00
Mitchell Hashimoto
ba9ae0c0be
macos: only get fullscreen mode on AppKit
2024-09-30 10:37:33 -07:00
Mitchell Hashimoto
045ecacd8c
macos: fullscreen mode can be changed at runtime
2024-09-30 10:31:11 -07:00
Mitchell Hashimoto
5f9d4f9733
macos: fullscreen=true with non-native fullscreen works
...
Fixes #1377
2024-09-30 10:02:50 -07:00
Mitchell Hashimoto
718fa6042c
macos: new fullscreen implementation
2024-09-30 09:42:46 -07:00
Mitchell Hashimoto
332e1a1494
macos: new FullscreenMode/Style architecture for fullscreen impls
2024-09-29 21:31:58 -07:00
Mitchell Hashimoto
ea46cb19e6
macos: use a different bundle identifier for debug builds
...
This is necessary to avoid conflicts with application data such
as permissions and preferences.
2024-09-29 16:16:55 -07:00
Mitchell Hashimoto
19012cb6f5
macos: quick terminal restores focus to previous application
2024-09-29 15:33:12 -07:00
Mitchell Hashimoto
c70e0b2634
macos: use orderOut which handles all of our focus logic for us
2024-09-29 15:06:54 -07:00
Mitchell Hashimoto
c8a40a7791
macos: quick terminal close focuses next window on same screen/space
...
Previously, we'd find the next Ghostty window anywhere. Now we find the
one on the same screen/space to avoid moving the focus to a different screen.
2024-09-29 14:56:03 -07:00
Mitchell Hashimoto
83505bb4c0
macos: ensure quick terminal becomes key and focused after animation in
2024-09-29 10:44:16 -07:00
Mitchell Hashimoto
e47e7a8b8b
macos: quick terminal always brings Ghostty to the front
2024-09-29 09:31:56 -07:00
Mitchell Hashimoto
4f9d49b380
macos: handle multiple monitors properly
2024-09-28 20:52:22 -07:00
Mitchell Hashimoto
bcdbb5899b
macos: only define quick terminal configs for AppKit
2024-09-28 19:14:27 -07:00
Mitchell Hashimoto
76a2041cbf
macos: make quick terminal animation 0.2 instead of 0.3
2024-09-28 19:11:40 -07:00
Mitchell Hashimoto
1d727320b4
macos: if initializing new surface tree, move focus to it
2024-09-28 19:11:16 -07:00
Mitchell Hashimoto
61dd395251
macos: show alert if new tab is attempted from quick term
2024-09-28 18:46:52 -07:00
Mitchell Hashimoto
11d5ec7dc1
config: support quick terminal position
2024-09-28 18:42:25 -07:00
Mitchell Hashimoto
13eb8ac6e2
macos: ability to interrupt animation, track it in menu
2024-09-28 15:29:57 -07:00
Mitchell Hashimoto
1570ef01a7
rename slide to quick terminal
2024-09-28 15:20:35 -07:00
Mitchell Hashimoto
e3b340c6d3
macos: set initial terminal dimensions
2024-09-28 15:08:27 -07:00
Mitchell Hashimoto
1977e220f5
macos: slide terminal exit and close window don't kill the window
2024-09-28 10:51:40 -07:00
Mitchell Hashimoto
50fb7331af
macos: base class for terminal controller
2024-09-28 10:41:51 -07:00
Mitchell Hashimoto
99e5e59491
macos: hook up the action for the slide terminal
2024-09-27 18:36:06 -07:00
Mitchell Hashimoto
bdc2c02f23
macos: when sliding out the terminal, cycle focus
2024-09-27 18:36:06 -07:00
Mitchell Hashimoto
cadb960ef9
core: slide terminal keybinding action
2024-09-27 18:36:06 -07:00
Mitchell Hashimoto
d18e1c879b
macos: restrict resizing based on sliding terminal position
2024-09-27 18:36:06 -07:00
Mitchell Hashimoto
63456d28a5
macos: make sliding logic a bit more extensible
2024-09-27 18:36:06 -07:00
Mitchell Hashimoto
bdd0070ffd
macos: render a terminal in the slide window
2024-09-27 18:36:06 -07:00
Mitchell Hashimoto
93b2fe60f8
macos: start work on SlideTerminal, slides in window from top
2024-09-27 18:36:06 -07:00