Commit Graph

4151 Commits (c4ed1f1b80604bee2efc4771f121c8a7242dbfa3)

Author SHA1 Message Date
Jeffrey C. Ollie c4ed1f1b80
Use Alejandra to format Nix modules. 2023-12-12 11:38:39 -06:00
Mitchell Hashimoto 2f9750ad7f
Merge pull request #1057 from vancluever/vancluever-powerline-half-circle-ellipse-refs
Powerline: add references for the ellipse algorithm
2023-12-12 07:46:59 -08:00
Mitchell Hashimoto cee213d00b
Merge pull request #1060 from gpanders/osc-hex-colors
term: parse hex color string for OSC commands
2023-12-12 07:46:34 -08:00
Mitchell Hashimoto 2a611f5c19
Merge pull request #1059 from jcollie/nix-subpackages
Add "terminfo" and "shell_integration" subpackages to the Nix package
2023-12-12 07:45:36 -08:00
Gregory Anders 2da05a6d5c term: parse hex color string for OSC commands 2023-12-12 09:43:38 -06:00
Jeffrey C. Ollie bba8583a21
Add "terminfo" and "shell_integration" subpackages to the Nix package so that the Ghostty
terminfo and shell integration files can be installed on a headless server without copying all
of Ghostty to the server. Implementation liberally cribbed from the Kitty Nix package.
2023-12-12 09:30:21 -06:00
Chris Marchesi c03ae47a27
Powerline: add references for the ellipse algorithm
Further to the additional comments in #1055, this adds some references
to the comments in the ellipse algorithm (including the original
reference for the circle algorithm).
2023-12-12 00:10:40 -08:00
Mitchell Hashimoto e5acb082c1
Merge pull request #1056 from mitchellh/ct-shaping
CoreText font shaper, fix glyph offset handling (in Harfbuzz, too)
2023-12-11 22:17:27 -08:00
Mitchell Hashimoto 24d4981996
font: note why shaper is not enabled 2023-12-11 21:58:49 -08:00
Mitchell Hashimoto bcf6753c68
renderer/opengl: use new glyph offsets 2023-12-11 21:47:03 -08:00
Mitchell Hashimoto 34cdb871f5
font/coretext: clarify buggy coretext shaper 2023-12-11 21:42:49 -08:00
Mitchell Hashimoto 489ed57e2f
font/harfbuzz: track x/y offsets 2023-12-11 21:41:13 -08:00
Mitchell Hashimoto d116ed0583
Merge pull request #1055 from vancluever/vancluever-powerline-half-circle-ellipse
Powerline: Change half-circle algorithm to ellipse
2023-12-11 21:30:11 -08:00
Mitchell Hashimoto 114723af9e
font/coretext: shaper applies x/y offsets 2023-12-11 21:22:30 -08:00
Chris Marchesi 4aa56ab8dd
Powerline: Change half-circle algorithm to ellipse
This changes the half-circle drawing algorithm for glyphs E0B4 and E0B6
to an ellipse algorithm.

This fixes a shortcoming in the circle approach - how do you handle
drawing for a box that is not a typical 2:1 H*W? We were trying to
anticipate this by taking the smaller of the two axes and using that for
the radius. This works when there's some error in the zoom and the x
radius somehow becomes larger than the y radius (in observation, this
happens occasionally in some zoom steps, but only slightly).

However, turns out a more realistic anticipation is for fonts that have
a much *larger* height-to-width ratio. Iosevka, for example, has an
approx. 2.6:1 ratio (observed in the inspector). In this instance, this
approach does nothing except lock the circle to an extremely small
radius. For this instance, we need an ellipse, which will handle all
cases in an expected fashion.

Fixes #1050.
2023-12-11 21:01:11 -08:00
Mitchell Hashimoto cc0b615552
pkg/macos: more APIs 2023-12-11 20:48:45 -08:00
Mitchell Hashimoto fcd9de0311
font/coretext: coretext shaper is cleaner 2023-12-11 12:56:30 -08:00
Mitchell Hashimoto b0a7db65be
Merge pull request #1051 from RGBCube/main
input: add scroll_page_lines
2023-12-11 12:45:35 -08:00
RGBCube d659b12fb9
input: add scroll_page_lines 2023-12-11 23:35:40 +03:00
Mitchell Hashimoto 62a5fe0236
font/shape: add coretext shaper 2023-12-11 11:13:49 -08:00
Mitchell Hashimoto 0137f5b0d3
pkg/macos: add many more text APIs 2023-12-11 11:12:29 -08:00
Mitchell Hashimoto 22a0869525
font/shaper: if char is 0, should send space to shaper 2023-12-11 11:12:29 -08:00
Mitchell Hashimoto ff68c56268
pkg/macos: implement CTRun 2023-12-11 11:12:28 -08:00
Mitchell Hashimoto 554d2d0185
Merge pull request #1048 from mitchellh/combining
font: position combining character correctly on x-axis
2023-12-11 07:56:12 -08:00
Mitchell Hashimoto 3e9a6e4de5
renderer/opengl: apply extra offset for zero-advance glyphs 2023-12-10 17:10:00 -08:00
Mitchell Hashimoto 5e9ddb5e65
renderer/metal: offset zero-advance glyphs by the cell width 2023-12-10 17:08:32 -08:00
Mitchell Hashimoto 3fdb6a496d
font/coretext: calculate advance_x properly 2023-12-10 17:08:20 -08:00
Mitchell Hashimoto 39b15a13b4
Merge pull request #1045 from mitchellh/macos-tab
macos: previous_tab/next_tab wraps
2023-12-10 15:13:40 -08:00
Mitchell Hashimoto 45a4573991
macos: previous_tab/next_tab wraps
Fixes #999
2023-12-10 15:12:22 -08:00
Mitchell Hashimoto 9bd8aa3cce
Merge pull request #1044 from mitchellh/keybind-clear
config: keybind = clear clears unmaps all keybinds
2023-12-10 14:25:50 -08:00
Mitchell Hashimoto 715782b60f
config: keybind = clear clears unmaps all keybinds
Fixes #1033

This introduces `keybind = clear` which will unmap all keybindings set
up to that point (including defaults).
2023-12-10 13:57:14 -08:00
Mitchell Hashimoto 85f69a5ba5
Merge pull request #1043 from mitchellh/kitty-replace
renderer/metal,opengl: replace matching image IDs if transmit time differs
2023-12-10 09:22:32 -08:00
Mitchell Hashimoto 0b60ae0010
renderer/metal,opengl: replace matching image IDs if transmit time differs
Fixes #1037

Renderers must convert the internal Kitty graphics state to a GPU
texture for rendering. For performance reasons, renderers cache the GPU
state by image ID. Unfortunately, this meant that if an image was
replaced with the same ID and was already cached, it would never be
updated on the GPU.

This PR adds the transmission time to the cache. If the transmission
time differs, we assume the image changed and replace the image.
2023-12-10 09:16:10 -08:00
Mitchell Hashimoto d51614d319
Merge pull request #1042 from kai-tub/main
doc: Update `gtk-titlebar` documentation
2023-12-10 06:36:01 -08:00
Kai Norman Clasen b46fd01c4e doc: Update `gtk-titlebar` documentation
Mention that changes to `gtk-titlebar` only
affects new windows.
2023-12-10 13:35:06 +01:00
Mitchell Hashimoto 3c8b6e8bd7
Merge pull request #1038 from mitchellh/caioaao/fix-build-zig-nightly
Remove redundant `inline` key
2023-12-09 15:13:56 -08:00
Caio Oliveira e17427f0c7
Remove redundant `inline` key
This breaks in zig version `0.12.0-dev.1808+69195d0cd` (current head)
2023-12-09 20:03:26 -03:00
Mitchell Hashimoto c20ce263eb
Merge pull request #1036 from mitchellh/resize
terminal: resize to less rows with empty lines should trim lines
2023-12-09 14:38:15 -08:00
Mitchell Hashimoto b327aab3d0
terminal: resize to less rows with empty lines should trim lines
Fixes #1030
2023-12-09 14:30:54 -08:00
RGBCube 7154214062
Merge pull request #1035 from NReilingh/NReilingh-patch-1
README.md: Fix broken link to devShell.nix file
2023-12-10 00:33:12 +03:00
Nick Reilingh 78b16d542a
README.md: Fix broken link to devShell.nix 2023-12-09 15:49:40 -05:00
Mitchell Hashimoto 43f7fc92e9
Merge pull request #1031 from mitchellh/gtk-unshifted
apprt/gtk: use map_keycode to get the proper unshifted key for a layout
2023-12-08 21:03:04 -08:00
Mitchell Hashimoto 08f2e91ff5
apprt/gtk: use map_keycode to get the proper unshifted key for a layout
Fixes #1014

There were a couple overlapping issues here:

  1. To determine the "unshifted" key, we were using `keyval_to_lower`.
     This only works if the key is uppercase and not all layouts are
     uppercase for the unshifted value.

  2. If we couldn't case the unicode value of a key or unshifted key to
     ASCII, we'd say the key was the same as the physical key. This is
     incorrect because the physical key is always the layout of the
     physical keyboard so for example with the Turkish layout on a US
     keyboard, you'd get US letters when a key may only correspond to
     non-US letters.

To fix the first issue, we are using map_keycode to map the hardware
keycode to all possible keyvals from it. We then use the currently
active layout to find the unshifted value.

To fix the scond issue, we no longer fallback to the physical key if
there was IM text or non-ASCII unicode values for the key.

I tested Turkish with #1014 and I tested Dvorak to make sure those
basics still work.
2023-12-08 20:41:09 -08:00
Mitchell Hashimoto 201d5da768
Merge pull request #1027 from vancluever/vancluever-nix-update-zig-012
nix: Update nixpkgs-zig-0-12 source
2023-12-08 16:19:01 -08:00
Chris Marchesi 42c307ef2a
nix: Update nixpkgs-zig-0-12 source
With the nixpkgs LLVM 17 PR (NixOS/nixpkgs#258614) now merged, we can
update this flake input to base off of master so that we can take
advantage of the built LLVM derivation when it's ready.

This only leaves Zig 0.12 which should mean a much reduced build time.

Note that of this writing, the derivations are still queued, so until
that happens, this update means a rebuild of LLVM 17 for anyone using
the ghostty package.
2023-12-08 14:51:04 -08:00
Mitchell Hashimoto ec989d6b46
macos: newTab needs to call Controller.showWindow 2023-12-08 08:46:05 -08:00
Mitchell Hashimoto 2061acddc9
Merge pull request #1001 from vancluever/vancluever-powerline-half-circles
Powerline: Add half-circle rendering
2023-12-08 08:16:55 -08:00
Mitchell Hashimoto d3ccca7c54
Merge pull request #1022 from watura/chore/update-mac-icon
macos: use images/icons for mac app icons
2023-12-08 08:15:08 -08:00
Mitchell Hashimoto 0c8883c07e
ci: remove garnix for now, we may add it back later 2023-12-08 08:14:05 -08:00
Mitchell Hashimoto 6573a48fa3
Merge pull request #1025 from RGBCube/main
Clean up Nix code, WIP: Create checks in Nix and package for Darwin
2023-12-08 08:03:19 -08:00