7100 Commits

Author SHA1 Message Date
Mitchell Hashimoto
33d9c043ef Merge pull request #2062 from qwerasd205/metal-optimizations
Metal optimizations
2024-08-08 18:56:09 -07:00
Qwerasd
f47ab3e5b5 fix: add Contents.bgCell to avoid accidentally indexing with undersized ints 2024-08-08 21:02:26 -04:00
Qwerasd
740dce6e66 fix: promote dimensions to usize so cell_count doesn't overflow 2024-08-08 20:43:47 -04:00
Qwerasd
bdbf5ad1c7 remove superfluous slicing syntax 2024-08-08 19:10:00 -04:00
Qwerasd
e4ab550ea1 comment 2024-08-08 19:09:30 -04:00
Qwerasd
732483c08a renderer/metal: use memset to clear bg cell rows 2024-08-08 19:05:42 -04:00
Qwerasd
d68906563e renderer/metal: properly support padding color = background (not extend) 2024-08-08 19:03:39 -04:00
Mitchell Hashimoto
71844a77b5 Merge pull request #2064 from jcollie/kitty-graphics-shared-memory
kitty graphics: add support for shared memory transfer medium
2024-08-08 14:36:34 -07:00
Mitchell Hashimoto
c114979ee3 terminal/kitty: minor stylistic changes to shm 2024-08-08 14:35:30 -07:00
Mitchell Hashimoto
4e59c75b4c Merge pull request #2063 from hqnna/main
Update iTerm2 Color Schemes dependency
2024-08-08 14:25:02 -07:00
Jeffrey C. Ollie
e2fe6bf74b kitty graphics: add support for shared memory transfer medium
Adds support for using shared memory to transfer images between
the CLI and Ghostty using the Kitty image protocol. This should be
the fastest way to transfer images if the CLI program and Ghostty are
running on the same system.

Works for single image transfer using `kitten icat`:

```
kitten icat --transfer-mode=memory images/icons/icon_256x256.png
```

However trying to play a movie with `mpv` fails in Ghostty (although it
works in Kitty):

```
mpv --vo=kitty --vo-kitty-use-shm=yes --profile=sw-fast --really-quiet video.mp4
```

`mpv` appears to be sending frames using the normal image transfer
commands but always setting `more_chunks` to `true` which results in an
image never being shown by Ghostty.

Shared memory transfer on Windows remains to be implemented.
2024-08-08 15:38:54 -05:00
hanna
329848ca60 update the zig cache hash for nix 2024-08-07 17:53:31 -07:00
hanna
785c08d36e update iterm2-color-schemes to latest commit 2024-08-07 17:27:39 -07:00
Qwerasd
e5241cb659 renderer/Metal: remove extraneous len arg from drawCellBgs 2024-08-07 18:30:44 -04:00
Qwerasd
3a58b89ef1 fix: use single triangle for metal post shader vertex 2024-08-07 18:17:49 -04:00
Qwerasd
76dc157675 fix tests 2024-08-07 18:02:11 -04:00
Qwerasd
6339f9bae9 renderer: metal shaders rework
- Significant changes to optimize memory usage.
- Adjusted formatting of the metal shader code to improve readability.
- Normalized naming conventions in shader code.
- Abstracted repetitive code for attribute descriptors to a helper
function.
2024-08-07 17:39:31 -04:00
Mitchell Hashimoto
df7409f4f3 Merge pull request #2059 from x123/x123-fix-vaxis-dep-issue
fix: vaxis recursive deps issue
2024-08-07 09:43:01 -07:00
x123
502c89dce5 fix: vaxis recursive deps issue 2024-08-07 18:32:04 +02:00
Jeffrey C. Ollie
8c44137711 fix url 2024-08-07 00:46:48 -05:00
Jeffrey C. Ollie
ce5e55d4aa Implement the XTWINOPS (CSI t) control sequences that "make sense".
These sequences were implemented:

CSI 14 t - report the text area size in pixels
CSI 16 t - report the cell size in pixels
CSI 18 t - report the text area size in cells
CSI 21 t - report the window title

These sequences were not implemented because they manuipulate the window
state in ways that we do not want.

CSI 1 t
CSI 2 t
CSI 3 ; x ; y t
CSI 4 ; height ; width ; t
CSI 5 t
CSI 6 t
CSI 7 t
CSI 8 ; height ; width ; t
CSI 9 ; 0 t
CSI 9 ; 1 t
CSI 9 ; 2 t
CSI 9 ; 3 t
CSI 10 ; 0 t
CSI 10 ; 1 t
CSI 10 ; 2 t
CSI 24 t

These sequences were not implemented because they do not make sense in
a Wayland context:

CSI 11 t
CSI 13 t
CSI 14 ; 2 t

These sequences were not implemented because they provide information
about the screen that is unnecessary.

CSI 15 t
CSI 19 t

These sequences were not implemeted because Ghostty does not maintain an
icon title for windows.

CSI 20 t
CSI 22 ; 0 t
CSI 22 ; 1 t
CSI 23 ; 0 t
CSI 23 ; 1 t

These sequences were not implemented because of the additional
complexity of maintaining a stack of window titles.

CSI 22 ; 2 t
CSI 23 ; 2 t
2024-08-07 00:12:20 -05:00
Mitchell Hashimoto
0ec0cc0f95 build: build proper metallib for iOS builds 2024-08-06 16:04:41 -07:00
Mitchell Hashimoto
ab7f0c6119 Merge pull request #2056 from ghostty-org/metal
metal: precompile shaders as part of the build
2024-08-06 15:44:35 -07:00
Mitchell Hashimoto
c116d147d6 build: build metal lib 2024-08-06 15:30:48 -07:00
Mitchell Hashimoto
14a42fcdb7 renderer/metal: load shaders from precompiled lib 2024-08-06 15:05:10 -07:00
Mitchell Hashimoto
aee6857021 cli/list-keybinds: fix windows build 2024-08-06 15:03:38 -07:00
Mitchell Hashimoto
d50fa27243 nix: update hash 2024-08-06 14:55:40 -07:00
Mitchell Hashimoto
64c267a8c7 Merge pull request #2052 from rockorager/pretty-print
cli/list-keybinds: add pretty printing
2024-08-06 14:53:15 -07:00
Mitchell Hashimoto
d00ab8130a cli: note --plain 2024-08-06 14:53:00 -07:00
karei
85f19bcd12 cli/list-keybinds: align actions at the same column 2024-08-06 14:16:17 -05:00
Tim Culverhouse
8b834c1588 cli/list-keybinds: set default winsize for windows
When on windows, set some default terminal size. The actual size is not
very important to our use case here, but we do need one
2024-08-06 13:41:41 -05:00
Tim Culverhouse
e2a59ba77c cli/list-keybinds: set vaxis measurement state 2024-08-06 13:39:20 -05:00
Tim Culverhouse
b0ac75d5bc cli/list-keybinds: restore terminal after exit
Deinit the tty and vaxis to restore the terminal upon exiting the
command
2024-08-06 13:28:25 -05:00
Mitchell Hashimoto
e5a087e143 renderer/metal: fix warnings compiling metal shader 2024-08-06 10:43:57 -07:00
Tim Culverhouse
1e91efbbe5 cli/list-keybinds: prevent ios, tvos, and watchos from pretty printing
These oses don't supply a tty layer, which prevents us from using the
libvaxis tty. Eventually we can add in using stdout as a writer. For
now, we just don't pretty print there.
2024-08-06 12:40:36 -05:00
Mitchell Hashimoto
389cc95394 renderer/metal: powerline enum value used wrong value 2024-08-06 10:22:08 -07:00
Tim Culverhouse
59e226154c cli/list-keybinds: add pretty printing
Add pretty printing to the +list-keybinds command. This is done by
bringing in a dependency on libvaxis to handle the styling. Pretty
printing happens automatically when printing to a tty, and can be
disabled either by redirecting output or using the flag `--plain`
2024-08-06 12:19:39 -05:00
Mitchell Hashimoto
0f8ed39766 Merge pull request #2049 from pluiedev/fix/exempt-powerline-from-minimum-contrast
renderer: exempt Powerline cells from minimum contrast requirements
2024-08-06 10:12:14 -07:00
Mitchell Hashimoto
247d5e4411 renderer/opengl: comptime assertion to verify 2024-08-06 10:07:08 -07:00
Mitchell Hashimoto
5be3098963 comment 2024-08-06 10:04:56 -07:00
Mitchell Hashimoto
3aee26207a Merge pull request #2050 from Pangoraw/fix_unfocused_opacity
gtk: One's complement the opacity of overlay for unfocused splits
2024-08-06 09:52:50 -07:00
Paul
c461d58519 gtk: One's complement the opacity of overlay for unfocused splits
The case where the split if fully opaque (`unfocused-split-opacity = 1.0`) should result in the overlay being fully transparent (`opacity: 0.0`).
This would be consistent with how this is implemented in the macos app:

dcc492f19b/macos/Sources/Ghostty/Ghostty.Config.swift (L302)
2024-08-06 09:58:23 +02:00
Leah Amelia Chen
503dfae6ff renderer: exempt Powerline cells from minimum contrast requirements
With a minimum contrast set, the colored glyphs that Powerline uses
would sometimes be set to white or black while the surrounding background
colors remain unchanged, breaking up contiguous colors on segments of
the Powerline.

This no longer happens with this patch as Powerline glyphs are now
special-cased and exempt from the minimum contrast adjustment.
2024-08-06 15:28:50 +08:00
Mitchell Hashimoto
dcc492f19b Merge pull request #2047 from i-am-linja/patch-1
Remove Erroneous Config Note
2024-08-05 18:52:26 -07:00
Eleanor Bartle
bb4b6b5782 Remove Erroneous Config Note 2024-08-06 11:48:30 +10:00
Mitchell Hashimoto
1e7672deba Merge pull request #2034 from jcollie/asymmetric-window-padding
Implement asymmetric window padding.
2024-08-05 15:56:15 -07:00
Mitchell Hashimoto
c2778ab3a6 config: window-padding-x/y take two values for uneven padding 2024-08-05 15:51:42 -07:00
Mitchell Hashimoto
5f2c6b7574 Merge pull request #2044 from nihaals/github-actions-committer
Use standard GitHub Actions committer info
2024-08-05 15:09:19 -07:00
Mitchell Hashimoto
c5d2f352d3 Merge pull request #2045 from nihaals/font-family-all
Document not every font-family needs to be set
2024-08-05 10:28:52 -07:00
Mitchell Hashimoto
978110ec24 config: update docs 2024-08-05 10:28:38 -07:00