8161 Commits

Author SHA1 Message Date
Mitchell Hashimoto
23f81f8084 Merge pull request #2386 from ghostty-org/push-ryyxywkwxypz
macos: non-native fs keeps track of screen number for change screen comp
2024-10-05 06:29:44 -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
0dbf9796ef Merge pull request #2383 from ghostty-org/push-xosyoktxxmoq
renderer: fg/bg/cursor change must mark the screen as dirty
2024-10-04 10:02:24 -07:00
Mitchell Hashimoto
89fadfc202 renderer: fg/bg/cursor change must mark the screen as dirty
Fixes #2372
2024-10-04 06:58:50 -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
Mitchell Hashimoto
136dd8d0f9 Merge pull request #2376 from lucymhdavies/macos-initial-window-false
Implements initial-window=false for macOS
2024-10-04 08:47:49 -07:00
Mitchell Hashimoto
251a90c007 Merge pull request #2375 from ThePrimeagen/main
scroll_with_fractional would scroll by different line count depending on direction
2024-10-04 08:47:05 -07:00
Mitchell Hashimoto
694ca32edd Merge pull request #2379 from ghostty-org/dependabot/github_actions/cachix/install-nix-action-30
build(deps): bump cachix/install-nix-action from 29 to 30
2024-10-03 17:45:54 -07:00
dependabot[bot]
1cee9cc698 build(deps): bump cachix/install-nix-action from 29 to 30
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 29 to 30.
- [Release notes](https://github.com/cachix/install-nix-action/releases)
- [Commits](https://github.com/cachix/install-nix-action/compare/v29...v30)

---
updated-dependencies:
- dependency-name: cachix/install-nix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 00:16:50 +00: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
theprimeagen
f0591b4afb fix: scrolling with fraction produces different lines count due to @floor vs @trunc (-1 vs 1) 2024-10-03 11:19:41 -06:00
Mitchell Hashimoto
e78a56a033 Merge pull request #2371 from jparise/vim-github-url
config: update project URL
2024-10-03 07:49:37 -07:00
Jon Parise
865f8bd456 config: update project URL 2024-10-03 10:07:25 -04:00
Mitchell Hashimoto
29a63ac303 fix xtshiftescape docs 2024-10-02 20:40:29 -07:00
Mitchell Hashimoto
0705e8dbb5 Merge pull request #2368 from ghostty-org/dependabot/github_actions/namespacelabs/nscloud-cache-action-1.2.0
build(deps): bump namespacelabs/nscloud-cache-action from 1.1.8 to 1.2.0
2024-10-02 17:36:48 -07:00
Mitchell Hashimoto
a3fef9f14e Merge pull request #2367 from ghostty-org/push-qtpouzmnnqqs
Mouse movement events are sent with shift until a button is pressed
2024-10-02 17:25:51 -07:00
dependabot[bot]
48ef182bb0 build(deps): bump namespacelabs/nscloud-cache-action from 1.1.8 to 1.2.0
Bumps [namespacelabs/nscloud-cache-action](https://github.com/namespacelabs/nscloud-cache-action) from 1.1.8 to 1.2.0.
- [Release notes](https://github.com/namespacelabs/nscloud-cache-action/releases)
- [Commits](https://github.com/namespacelabs/nscloud-cache-action/compare/v1.1.8...v1.2.0)

---
updated-dependencies:
- dependency-name: namespacelabs/nscloud-cache-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-03 00:11:51 +00:00
Mitchell Hashimoto
1d09cdb382 Mouse movement events are sent with shift until a button is pressed
Ghostty was previously treating shift as a way to always stop mouse
reporting. That's true for mouse button events, but not for mouse
movement events. For mouse movement events, shift should be treated as
a modifier until a button (any mouse button) is pressed. Once it is
pressed, we pause mouse reporting until all buttons are released.

Found by @ldemailly. This matches the behavior of Kitty, Alacritty,
WezTerm, and xterm.
2024-10-02 17:08:37 -07:00
Mitchell Hashimoto
6940af2a16 Merge pull request #2365 from qwerasd205/underline-fixes
Underline Fixes
2024-10-02 15:49:03 -07:00
Mitchell Hashimoto
7aa2e2b24f renderer: some tweaks 2024-10-02 15:44:06 -07:00
Mitchell Hashimoto
11adb7a999 Merge pull request #2366 from ghostty-org/push-tztyurvtwnor
font: add stylistic variants for built-in font, fix naming convention
2024-10-02 15:21:34 -07:00
Mitchell Hashimoto
be3ae56bc8 font: add stylistic variants for built-in font, fix naming convention
Fixes #2364

This adds the bold, italic, and bold italic variants of JB Mono so it is
built-in. This also fixes up the naming convention for the embedded font
files across tests and removes redundant embedded font files.
2024-10-02 15:17:18 -07:00
Qwerasd
dfc0894d5d fix(renderer): make all decorations and combining marks visible under cursor
Metal needed to be changed to account for wide chars having decorations
on the right half and OpenGL needed to account for multiple glyphs being
under the cursor at once (decorations and combining marks) as well as
wide chars.
2024-10-02 17:18:26 -04:00
Qwerasd
f9e2cb6aec fix(renderer): use 1-wide ul/st chars, ignore null shaper cells
This makes sure that underline styles are consistent and not stretched,
and avoids rendering overlapping text decorations or extraneous
background cells for the right halves of wide chars.
2024-10-02 16:38:31 -04:00
Mitchell Hashimoto
991cbcec21 Merge pull request #2338 from rolandpeelen/main
Add an equivalent to iTerm's "show/hide all windows" hotkey (Fix for: #2205)
2024-10-02 10:58:18 -07: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
2dbd46096f Fix typo 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
Roland Peelen
24ba1a6100 Add action on Zig side 2024-10-02 10:33:36 -07:00
Mitchell Hashimoto
03abc18adb Merge pull request #2347 from ghostty-org/push-nqtkputomwxx
Change copy-on-select behavior to be more idiomatic for Linux
2024-10-01 20:38:46 -07:00
Mitchell Hashimoto
66f2d75ddd Change copy-on-select behavior to be more idiomatic for Linux
Fixes #2345

The new docs for `copy-on-select`:

Whether to automatically copy selected text to the clipboard. `true`
will prefer to copy to the selection clipboard if supported by the
OS, otherwise it will copy to the system clipboard.

The value `clipboard` will always copy text to the system clipboard
(for supported systems) as well as the system clipboard. This is sometimes
a preferred behavior on Linux.

Middle-click paste will always use the selection clipboard on Linux
and the system clipboard on macOS. Middle-click paste is always enabled
even if this is `false`.

The default value is true on Linux and false on macOS. macOS copy on
select behavior is not typical for applications so it is disabled by
default. On Linux, this is a standard behavior so it is enabled by
default.
2024-10-01 20:38:27 -07:00
Mitchell Hashimoto
a92c24159e Merge pull request #2343 from ghostty-org/push-prytryysmvqw
macos: apply background opacity to quick terminal
2024-09-30 21:33:48 -07:00
Mitchell Hashimoto
78b9636d15 macos: apply background opacity to quick terminal
Fixes #2331
2024-09-30 21:18:47 -07:00
Mitchell Hashimoto
8c5afbbd24 Merge pull request #2341 from ghostty-org/push-noxxuypymuoz
macos: quick terminal supports fullscreen
2024-09-30 21:15:26 -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
1cc79c5e76 Merge pull request #2340 from ghostty-org/push-tspxklnxtxpp
macos: quick terminal app activation tweaks to avoid bringing up other windows
2024-09-30 20:49:10 -07:00
Mitchell Hashimoto
3eb2e5f0f0 ci: re-enable the build matrix, not happy with this yet 2024-09-30 20:48:32 -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
0dc141d8bb ci: fix invalid dependency on test 2024-09-30 20:29:58 -07:00
Mitchell Hashimoto
7e720d1765 Merge pull request #2339 from ghostty-org/push-pwtowtzumlnw
ci: only run macos build matrix on main or demand
2024-09-30 20:29:19 -07:00
Mitchell Hashimoto
d1fe931f59 ci: only run macos build matrix on main or demand
This is our longest running job in CI and I don't need it to run for
every PR. I'd like it running on main in case I miss a need for it in a
PR.
2024-09-30 20:24:55 -07:00
Mitchell Hashimoto
d1bba3737b Merge pull request #2335 from rockorager/fix-sgr-reset
fix(list-keybinds): reset SGR after pretty printing
2024-09-30 20:20:41 -07:00
Mitchell Hashimoto
4b9a3aaaa2 Merge pull request #2337 from ghostty-org/nonnative
macOS: fullscreen implementation improvements
2024-09-30 20:17:10 -07:00
Tim Culverhouse
e502597e8d fix(list-keybinds): reset SGR after pretty printing
Update libvaxis which now resets SGR at the end of a pretty print.

Fixes: #2333
2024-09-30 20:16:27 -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