Mitchell Hashimoto
37d19b3cef
Merge pull request #2109 from edmz/block_hollow
...
Config: cursor-style can bet set to block_hollow
2024-08-18 15:08:08 -07:00
Mitchell Hashimoto
18a8d2b01d
Minor changes, mainly commenting to clarify some behaviors
2024-08-18 15:05:31 -07:00
Mitchell Hashimoto
2ee54879a4
renderer: use fg as extension color for covering glyphs (U+2588)
...
Fixes #2099
This is another heuristic of sorts to make `window-padding-color=extend`
look better by default. If a fully covering glyph is used then we use
the fg color to extend rather than the background.
This doesn't account for fonts that may do this for whatever codepoints,
but I think that's a special scenario that we should just recommend
disabling this feature.
2024-08-18 11:56:50 -07:00
Mitchell Hashimoto
994514981f
terminal: handle case grow allocates but cursor is multiple pages back
2024-08-18 10:20:23 -07:00
Mitchell Hashimoto
602fea52ec
terminal: cursorScrollAbove handles case of no new page, prev page
2024-08-18 10:14:35 -07:00
Mitchell Hashimoto
1028fe1c56
terminal: only call new method
2024-08-17 22:02:48 -07:00
Mitchell Hashimoto
adb382f1c8
terminal: call new method for scroll operation
2024-08-17 22:00:52 -07:00
Mitchell Hashimoto
9898489e25
terminal: add Screen.cursorScrollAbove and tests
2024-08-17 21:57:07 -07:00
Mitchell Hashimoto
a125dc9682
terminal: add more tests for index, verified that l/r margin handling is
...
good
2024-08-17 20:01:47 -07:00
Jeffrey C. Ollie
254072e656
fix test error and improve error logging
2024-08-17 15:34:35 -05:00
Mitchell Hashimoto
1d7e87c88d
terminal: index from bottom row of scroll region always makes scrollback
...
Ghostty previously incorrectly only created scrollback if the top/bot
margins were the full height of the viewport. The actual xterm behavior
is to create scrollback as long as the top margin is the top row and the
cursor is on the bottom margin (wherever that may be).
2024-08-17 10:58:34 -07:00
Jeffrey C. Ollie
b11b8be124
Implement Kitty Color Protocol (OSC 21)
...
Kitty 0.36.0 added support for a new OSC escape sequence for
quering, setting, and resetting the terminal colors. Details
can be found [here](https://sw.kovidgoyal.net/kitty/color-stack/#setting-and-querying-colors ).
This fully parses the OSC 21 escape sequences, but only supports
actually querying and changing the foreground color, the background
color, and the cursor color because that's what Ghostty currently
supports. Adding support for the other settings that Kitty supports
changing ranges from easy (cursor text) to difficult (visual bell,
second transparent background color).
2024-08-17 07:05:28 -05:00
Mitchell Hashimoto
d7299b16bf
apprt/gtk: fix imgui calls
2024-08-16 16:53:17 -07:00
Mitchell Hashimoto
7a7f7da4ef
pkg: yeet more usingns
2024-08-16 16:52:28 -07:00
Mitchell Hashimoto
318dc85c02
pkg/macos: yeet more usingns
2024-08-16 16:50:41 -07:00
Mitchell Hashimoto
a9107e7eb6
apprt/embedded: fix usingnamespace usage
2024-08-16 15:00:07 -07:00
Mitchell Hashimoto
9409e3072f
apprt/gtk: remove usingnamespace
2024-08-16 14:58:04 -07:00
Mitchell Hashimoto
c3e37b7e15
move global state to dedicated file
2024-08-16 14:43:00 -07:00
Mitchell Hashimoto
b65a804bb2
almost yeeted it all!
2024-08-16 14:42:32 -07:00
Mitchell Hashimoto
ba29bf759b
lots more yeeting
2024-08-16 14:35:10 -07:00
Mitchell Hashimoto
677f0376a0
os: yeet usingns
2024-08-16 14:29:08 -07:00
Eduardo Dominguez
2e70ad20df
Config: cursor-style can bet set to block_hollow
...
`cursor-style` can now also be set to `block_hollow`, no other changes
in behaviour are added.
2024-08-16 15:25:44 -06:00
Mitchell Hashimoto
d0ca949c09
os: start yeeting
2024-08-16 10:57:19 -07:00
Mitchell Hashimoto
29de3e80f1
config: yeet usingns
2024-08-16 10:49:37 -07:00
Mitchell Hashimoto
14e3f43db2
font: yeet usingns
2024-08-16 10:47:15 -07:00
Mitchell Hashimoto
b660380b01
renderer: yeet usingns
2024-08-16 10:43:32 -07:00
Mitchell Hashimoto
9f52a963f5
pty: remove usingns
2024-08-16 10:37:31 -07:00
Mitchell Hashimoto
3404f8e53a
termio: yeet usingns
2024-08-16 10:36:10 -07:00
Mitchell Hashimoto
d8f43b34ba
terminal: yeet usingnamespace
2024-08-16 10:32:43 -07:00
Mitchell Hashimoto
dbeb4c1a4a
apprt: yeet usingnamespace
2024-08-16 10:19:46 -07:00
Mitchell Hashimoto
6a44d3196d
input: yeet usingnamespace
2024-08-16 10:16:46 -07:00
Qwerasd
37872afbce
kitty graphics: support loading 1 channel grayscale images
2024-08-15 21:38:46 -04:00
Mitchell Hashimoto
da8e4c7f95
Merge pull request #2102 from qwerasd205/misc-fix
...
Misc fixes
2024-08-15 16:48:27 -07:00
Qwerasd
c37ee6c428
fix(terminal): proper style cleanup in cursorCopy
...
Old implementation sometimes resulted in an attempt to free the style
from a different page than it originates. This way is also generally
cleaner.
2024-08-15 19:08:12 -04:00
Qwerasd
16284dbb3f
test(terminal/Screen): add failing unit test for cursorCopy
...
Detects issue with style reference counting when the cursor is moved
across pages during the copy.
2024-08-15 19:06:41 -04:00
Mitchell Hashimoto
78e9e9f93a
Merge pull request #2100 from qwerasd205/mac-opengl
...
macos/opengl: lock context while rendering to stop resize crashes
2024-08-15 14:25:20 -07:00
Mitchell Hashimoto
bc667714dd
renderer/opengl: add comment explaning ogl lock on darwin
2024-08-15 14:25:05 -07:00
Qwerasd
0c11d256c8
RefCountedSet: use usize for living count to avoid overflow
2024-08-15 16:28:27 -04:00
Qwerasd
4c2fbe8f74
fix(renderer/Metal): bail out of drawFrame if we haven't sized screen yet
2024-08-15 15:12:49 -04:00
Qwerasd
57d850822e
macos/opengl: lock context while rendering to stop resize crashes
2024-08-14 23:47:33 -04:00
Qwerasd
ff6a0bf9a2
termio: wake renderer outside of critical area in resize
2024-08-14 23:46:52 -04:00
Qwerasd
900aab10f2
renderer: don't update frame if renderer grid size != terminal size
2024-08-14 22:43:58 -04:00
Qwerasd
7929e0bc09
fix: prevent flicker while shrinking screen by eliminating thread race
...
Before this fix, if vsync was on the GPU cells buffer could be cleared
for a frame while resizing the terminal down. This was due to the fact
that the surface sent messages for the resize to both the renderer and
the IO thread. If the renderer thread was processed first then the GPU
cells buffer(s) would be cleared and not rebuilt, because the terminal
state would be larger than the GPU cell buffers causing updateFrame to
bail out early, leaving empty cell buffers.
This fixes the problem by changing the origin of the renderer's resize
message to be the IO thread, only after properly updating the terminal
state, to avoid clearing the GPU cells buffers at a time they can't be
successfully rebuilt.
2024-08-14 19:46:24 -04:00
Jeffrey C. Ollie
414fdc0214
gtk: prettify the url overlays
2024-08-13 14:21:28 -05:00
Gregory Anders
59f259d7e4
config: fix typo
...
Disabling vsync reduces input latency, so this should say "minimize"
rather than "maximize".
2024-08-12 09:24:03 -05:00
Mitchell Hashimoto
60f6576770
Merge pull request #2088 from rockorager/main
...
fix(surface): account for padding in mouse pixel reports
2024-08-11 18:04:21 -07:00
Mitchell Hashimoto
59de7d8239
Merge pull request #2087 from qwerasd205/murica
...
spelling: normalize grey -> gray
2024-08-11 18:03:22 -07:00
Mitchell Hashimoto
23de1fb4ea
Merge pull request #2085 from Syphdias/option-to-limit-procs
...
Add Config Option to Limit Number of Processes
2024-08-11 15:57:13 -07:00
Tim Culverhouse
97db055b54
fix(surface): account for padding in mouse pixel reports
...
Padding was accounted for in cell reports, but not pixel reports. Update
inspector to report the pixel coordinates the terminal reports.
2024-08-11 17:47:21 -05:00
Mitchell Hashimoto
ed49670d2f
font: remove broken test (on purpose) due to improvements in shaping
2024-08-11 15:46:08 -07:00