6965 Commits

Author SHA1 Message Date
Mitchell Hashimoto
edea928117 Merge pull request #2057 from jcollie/xtwinops
[DRAFT] Implement the XTWINOPS (CSI t) control sequences that "make sense".
2024-08-10 11:21:49 -07:00
Mitchell Hashimoto
61ad6d10de apprt/embedded: store title directly instead of get_title cb 2024-08-10 11:15:53 -07:00
Mitchell Hashimoto
ccf62a4960 stylistic nitpicks 2024-08-10 11:03:56 -07:00
Mitchell Hashimoto
aa5aad4344 Merge pull request #2075 from ghostty-org/extend
window-padding-color improvements
2024-08-10 10:51:49 -07:00
Mitchell Hashimoto
9db89dbf2c config: make window-padding-color=extend default again 2024-08-10 10:41:36 -07:00
Mitchell Hashimoto
f7f8c655df renderer: remove alt-screen extend-always 2024-08-10 10:39:10 -07:00
Mitchell Hashimoto
9f06e74353 config: add window-padding-color=extend-always to force always 2024-08-10 10:34:12 -07:00
Mitchell Hashimoto
40b3d4c72e config: clarify padding color default 2024-08-10 10:27:59 -07:00
Mitchell Hashimoto
aeb3b64110 do not extend background for window-padding-color if powerline 2024-08-10 10:20:08 -07:00
Jeffrey C. Ollie
301826dfff gtk: add resize overlay
This adds a transient overlay that shows the size of the surface
while you are resizing the window or the surfaces.
2024-08-09 22:58:33 -05:00
Mitchell Hashimoto
6cb85efc50 Merge pull request #2070 from ghostty-org/kitty-shm
terminal/kitty: shared memory size may be larger than expected for pages
2024-08-09 20:55:40 -07:00
Mitchell Hashimoto
b368702a9d terminal/kitty: shared memory size may be larger than expected for pages
The shared memory segment size must be a multiple of page size. This
means that it may be larger than our expected image size. In this case,
we trim the padding at the end.
2024-08-09 20:33:39 -07:00
Mitchell Hashimoto
be88815a76 Merge pull request #2068 from ghostty-org/metal-fix
metal: cell bg pipeline no longer has vertex data, needs no vertex desc
2024-08-09 15:23:29 -07:00
Mitchell Hashimoto
861fe0379b metal: cell bg pipeline no longer has vertex data, needs no vertex desc
This happened to work in releases somehow but Xcode debug builds would
catch this as an assertion. Our cell bg pipeline now uses the "full
screen vertex shader" which takes no parameters, so we don't need a
vertex descriptor.
2024-08-09 15:10:58 -07:00
Mitchell Hashimoto
e4b8cac7ad renderer/opengl: reset screen uniforms on font change
Fixes #2067
2024-08-09 10:26:46 -07:00
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