Lukáš Dvořák
bca7140248
balanced padding cleanup
2023-10-30 14:56:02 +01:00
Lukáš Dvořák
6887ea7e53
fix window-padding-balance in combination with explicit padding
2023-10-30 13:46:19 +01:00
Mitchell Hashimoto
95f0b4779d
renderer/metal: reclaim cell buffer memory when resizing
2023-10-28 11:30:02 -07:00
Mitchell Hashimoto
ab35a21dc2
renderer: render cursor behind colored emoji
2023-10-16 12:57:23 -07:00
Mitchell Hashimoto
b4070eb67e
renderer: unfocused cursor should always be fully opaque
2023-10-14 14:11:15 -07:00
Mitchell Hashimoto
ff38d3e358
config: add cursor-opacity
2023-10-14 14:08:06 -07:00
Mitchell Hashimoto
7167cf9054
renderer: default cursor color to foreground
...
Fixes #667
2023-10-14 14:02:17 -07:00
Mitchell Hashimoto
4f5a05e087
renderer: render cursor over wide character if on tail part
2023-10-13 14:39:10 -07:00
Mitchell Hashimoto
7995d44cfb
font: render sprites with a configurable grid cell width
...
Fixes #666
2023-10-13 14:31:55 -07:00
Mitchell Hashimoto
b98cc3d79f
config: add remaining font modifiers
2023-10-04 22:08:19 -07:00
Mitchell Hashimoto
5c1fbd09cd
font: shaper dynamically allocates cell buffer
...
Pathlogical grapheme clusters can use a LOT of memory, so we need to be
able to grow.
2023-09-26 17:59:16 -07:00
Mitchell Hashimoto
b1389cbbfe
renderer: support font style changing at runtime
2023-09-26 08:51:04 -07:00
Mitchell Hashimoto
4b791f3ee1
renderer: always reset font group on config change
2023-09-26 08:18:11 -07:00
Mitchell Hashimoto
10989ae7b0
renderer: implement underline cursor
2023-09-10 22:05:47 -07:00
Mitchell Hashimoto
d9cfd00e9f
Big Cursor State Refactor
...
This makes a few major changes:
- cursor style on terminal is single source of stylistic truth
- cursor style is split between style and style request
- cursor blinking is handled by the renderer thread
- cursor style/visibility is no longer stored as persistent state on
renderers
- cursor style computation is extracted to be shared by all renderers
- mode 12 "cursor_blinking" is now source of truth on whether blinking
is enabled or not
- CSI q and mode 12 are synced like xterm
2023-09-09 20:19:37 -07:00
Mitchell Hashimoto
a6c40d0417
renderer: always show cursor if window is not focused
...
Fixes #400
This ensures the hollow box is shown even if the cursor is not in a
blinking state when unfocus happens. We still hide the cursor even on
unfocus if the terminal mode explictly asks for a hidden cursor.
2023-09-06 11:23:42 -07:00
SoraTenshi
6faed268e0
config: clean up cursor style configuration
2023-09-03 07:51:36 -07:00
Mitchell Hashimoto
22eb533473
content scale change events should also impact viewport padding
...
This calculates the new padding pixel values and propogates those
changes to the renderer.
2023-09-02 11:00:51 -07:00
Mitchell Hashimoto
e2fae7ab2b
surface should default to default cursor, blinking should check selected
2023-08-30 08:12:38 -07:00
Mitchell Hashimoto
ae0de7bce4
renderer: split ligature around cursor even if cursor is flashing
...
Fixes #356
2023-08-29 13:49:14 -07:00
Mitchell Hashimoto
0204d94921
Merge pull request #349 from mitchellh/sync
...
Synchronized Output Sequence
2023-08-28 13:15:50 -07:00
Mitchell Hashimoto
5168dc7645
renderer: do not render if synchronized output is on
2023-08-28 11:38:11 -07:00
SoraTenshi
fcf1537f82
config: Add option for custom cursor style
2023-08-28 18:20:45 +02:00
Kevin Hovsäter
8b9a11db4b
Implement cursor text in addition to color
2023-08-26 15:29:48 +02:00
Mitchell Hashimoto
135250018e
terminal/kitty-gfx: get rid of selection
2023-08-23 11:41:49 -07:00
Mitchell Hashimoto
4b38fb96db
terminal/kitty-gfx: honor "z" setting
2023-08-23 09:55:13 -07:00
Mitchell Hashimoto
7ff76ca00d
terminal/kitty-gfx: respect display c/r params
2023-08-22 14:43:50 -07:00
Mitchell Hashimoto
3bbfee676b
terminal/kitty-gfx: process source rectangle display params
2023-08-22 14:33:41 -07:00
Mitchell Hashimoto
84c72bbe46
renderer/metal: honor cell offset graphics command
2023-08-22 13:28:40 -07:00
Mitchell Hashimoto
e4e952d077
renderer/metal: image should always be rendered at desired x
2023-08-22 12:24:58 -07:00
Mitchell Hashimoto
5a9bbcbc2d
renderer/metal: clip image if necessary off top of viewport (scrolling)
2023-08-22 11:32:45 -07:00
Mitchell Hashimoto
53b25d0ecc
renderer/metal: set correct x/y for image
2023-08-22 10:14:57 -07:00
Mitchell Hashimoto
cb70d86c00
renderer/metal: emit draw calls for images
2023-08-22 10:12:40 -07:00
Mitchell Hashimoto
e665fc6741
renderer/metal: first pass at an image shader
2023-08-22 09:20:30 -07:00
Mitchell Hashimoto
5229cb93d2
renderer/metal: extract helpers for shaders/buffers
2023-08-22 08:49:34 -07:00
Mitchell Hashimoto
da4ead8f60
renderer/metal: deallocate unused image textures
2023-08-21 22:11:58 -07:00
Mitchell Hashimoto
20257c7a87
renderer/metal: images required by placements become textures
2023-08-21 21:40:57 -07:00
Mitchell Hashimoto
7ccf86b175
remove imgui and devmode
...
imgui has been a source of compilation challenges (our fault not theirs)
and devmode hasn't worked in awhile, so drop it.
2023-08-20 08:50:24 -07:00
Mitchell Hashimoto
951aa00c63
terminal: move to new modes struct
2023-08-15 11:30:33 -07:00
Mitchell Hashimoto
55778a049b
apprt/gtk, opengl: render preedit
2023-08-11 12:37:27 -07:00
Mitchell Hashimoto
d62161e2c3
support preedit text rendering in core and metal
2023-08-11 12:20:48 -07:00
cryptocode
6045088afc
Don't show hollow cursor in inactive windows when cursor is hidden.
...
This is the behavior of the other terminals I have, such as iTerm, allcritty, WezTerm, and Kitty. The hollow cursor is especially noticable when running in two panes,
one of them inactive with animations (such as a progress bar)
2023-08-11 17:20:03 +02:00
Mitchell Hashimoto
85e32f9a15
renderer: hide cursor is state explicit asks for invisible cursor
...
This was a regression. The previous logic would always show the cursor
if we were using a non-blinking cursor. But, if the terminal state is
explicitly requesting an invisible cursor (mode 25) then we need to hide
the cursor.
2023-08-06 09:55:13 -07:00
Mitchell Hashimoto
4b062dc45c
font/shaper: text runs should split around block cursors
...
Fixes #206
2023-07-18 16:20:30 -07:00
Mitchell Hashimoto
3d48432daf
renderer: change padding to integers
...
Screen size is always an integer, it makes sense for padding to also be
rounded to some integer.
2023-07-18 10:44:33 -07:00
Mitchell Hashimoto
ea268bae5e
renderer: do not blink explicit steady cursor styles
2023-07-10 11:27:37 -07:00
Mitchell Hashimoto
13315471d7
renderer: double line widths for sprite fonts when font-thicken is true
...
Fixes #193
2023-07-07 09:08:46 -07:00
Mitchell Hashimoto
45ac9b5d4c
font-feature config to enable/disable OpenType Font Features
2023-07-05 13:12:30 -07:00
Mitchell Hashimoto
329385e353
metal: apply background opacity
2023-07-03 19:38:33 -07:00
Mitchell Hashimoto
017da411f8
metal: start setting up background transparency
2023-07-03 17:59:50 -07:00