2490 Commits

Author SHA1 Message Date
Mitchell Hashimoto
89fe07271e font: fallback fonts need to deinit their unused deferred faces
Fixes #885

Interestingly, this isn't that big of a leak for whatever reason on
macOS. But on Linux with fontconfig this is a MASSIVE memory leak.
2023-11-20 21:05:01 -08:00
Mitchell Hashimoto
bb8e5b9f76 terminal: handle width=3 by pretending width=2 for now 2023-11-20 20:41:58 -08:00
Mitchell Hashimoto
0430758b60 Merge pull request #923 from vancluever/vancluever-config-gtk-titlebar
apprt/gtk: let GTK titlebar be toggleable
2023-11-20 20:29:47 -08:00
Chris Marchesi
39e3fca210 apprt/gtk: let GTK titlebar be toggleable
This adds the gtk-titlebar option, which allows you to toggle the GTK
titlebar on (default) and off.

Under some circumstances (e.g. tiling WMs with titlebars enabled), one
may wish to disable the GTK titlebar/CSD for aesthetic reasons. This
allows you to do that.

Fixes #920.
2023-11-20 20:07:11 -08:00
Mitchell Hashimoto
3c98c6375a terminal: handle width==3 glyphs by just pretending they're width 2 2023-11-20 19:55:06 -08:00
Mitchell Hashimoto
42c4f52711 font: shaper should not look up U+200D for consistent fonts
Related to #914

U+200D is the zero-width joiner character used for multi-codepoint
Emojis. When faced with a multi-codepoint grapheme, the font shaper must
find a font that provides _all codepoints_ consistently. However, U+200D
isn't meant to be provided by any font. As a result, the font shaper
search ends up iterating over every font looking for a match.
2023-11-20 19:12:37 -08:00
Mitchell Hashimoto
f2c1e18647 apprt/gtk: support IME popups such as Asian language input
Fixes #882

This hooks up all the GTK.IMContext things properly so that we support
switching input methods, popups, etc. This should improve our support
for asian languages, emoji input, etc.
2023-11-20 18:08:23 -08:00
Mitchell Hashimoto
67119e6433 apprt/gtk: disable GTK capturing F10
Fixes #894
2023-11-20 14:16:13 -08:00
Mitchell Hashimoto
db7262a8dd terminal: resize less cols attempts to preserve cursor y
Fixes #906

Previously, when the cursor isn't at the bottom and you resized to less
cols, the cursor would jump to the bottom of the viewport. But if you
resized to more columns it didn't do this. This was jarring. This commit
attempts to keep the cursor at the same place.
2023-11-20 14:00:14 -08:00
Mitchell Hashimoto
9988dedb80 renderr/opengl: stylistic 2023-11-20 09:45:38 -08:00
Mitchell Hashimoto
d1de53ed22 renderer/opengl: correct shader params 2023-11-19 22:52:40 -08:00
Mitchell Hashimoto
a5d71723d5 renderer/opengl: do not need to convert 2023-11-19 22:49:30 -08:00
Mitchell Hashimoto
2a10af90a3 renderer/opengl: draw images 2023-11-19 22:43:39 -08:00
Mitchell Hashimoto
64cacce1cf renderer/opengl: setup image uniforms 2023-11-19 22:33:06 -08:00
Mitchell Hashimoto
76c76ce85e renderer/opengl: upload kitty image textures 2023-11-19 22:08:07 -08:00
Mitchell Hashimoto
553d81afd1 terminal: enable kitty graphics commands on OpenGL 2023-11-19 21:39:30 -08:00
Mitchell Hashimoto
a325ab5712 terminal: remove invalid test 2023-11-19 21:13:22 -08:00
Mitchell Hashimoto
7066fb7bbb terminal: ESC [ 2 J does a scroll and clear if viewport is at a prompt 2023-11-19 21:07:16 -08:00
Mitchell Hashimoto
b5cad7184d terminal: ED handles invalid values 2023-11-19 20:47:04 -08:00
Mitchell Hashimoto
39c2549b1a terminal: add ESC [ 22 J (scroll and clear) 2023-11-19 20:45:57 -08:00
Mitchell Hashimoto
b220179c3a terminal: add "clear" screen scroll mode 2023-11-19 20:39:57 -08:00
Mitchell Hashimoto
542f605d54 terminal: add explicit errorset to scroll screen 2023-11-19 20:39:40 -08:00
Mitchell Hashimoto
eb694574ab config: select all should default to ctrl+shift+a on linux 2023-11-18 11:17:02 -08:00
Mitchell Hashimoto
080789957a Merge pull request #903 from mitchellh/macos-update
Custom Shaders (Metal and OpenGL)
2023-11-17 22:06:38 -08:00
Mitchell Hashimoto
eaf847381a config: clarify runtime reloading of shader stuff 2023-11-17 22:00:33 -08:00
Mitchell Hashimoto
f2513e0825 Merge pull request #876 from gpanders/notifications
Add support for desktop notifications
2023-11-17 21:57:09 -08:00
Mitchell Hashimoto
e55cb274ba config: custom-shader-animation 2023-11-17 21:51:07 -08:00
Mitchell Hashimoto
61f10dc583 renderer/opengl: new gpucell 2023-11-17 21:51:07 -08:00
Mitchell Hashimoto
8253fc1f31 renderer/opengl: shaders only need one color input 2023-11-17 21:51:07 -08:00
Mitchell Hashimoto
2db36646ac renderer/opengl: some comments 2023-11-17 21:51:07 -08:00
Mitchell Hashimoto
a64d12d3cb renderer: animations should stop if config changes them 2023-11-17 21:51:07 -08:00
Mitchell Hashimoto
5d7c47a469 renderer/metal: clean up some memory management 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
cc389c81c2 quiet tests 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
39e7055853 renderer/opengl: enable animations 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
5c7bad2f7d renderer/opengl: resize the screen texture 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
c8a51a2158 renderer/opengl: create the screen texture 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
db244da101 config: note custom-shader requires opengl 4.2 on linux 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
fbc13d08b0 renderer/opengl: set resolution uniform on screen size change 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
2559d6b367 renderer/opengl: increment time uniform 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
e0afa442c4 renderer/opengl: better organization of custom shader state 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
47971e7663 renderer/opengl: setup uniform buffer objects for custom shaders 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
5fc91401f2 renderer/opengl: draw custom shaders, simplified 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
da600fee8f renderer/opengl: pull out cell program drawing to dedicated func 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
aff5090362 renderer/opengl: simplifying the custom shader to get things working 2023-11-17 21:51:06 -08:00
Mitchell Hashimoto
1fedc912f0 renderer/opengl: create ubos 2023-11-17 21:51:05 -08:00
Mitchell Hashimoto
3502db0f5f renderer/opengl: start custom program work 2023-11-17 21:51:05 -08:00
Mitchell Hashimoto
cc630f10ac renderer/opengl: only one GPUCell 2023-11-17 21:51:05 -08:00
Mitchell Hashimoto
fb0929a11b renderer/opengl: extract cell program state to dedicated struct 2023-11-17 21:51:05 -08:00
Mitchell Hashimoto
46dd084ee9 renderer/opengl: wip 2023-11-17 21:51:05 -08:00
Mitchell Hashimoto
8576acb89e renderer/opengl: move opengl API to pkg/opengl 2023-11-17 21:51:04 -08:00