4361 Commits

Author SHA1 Message Date
Mitchell Hashimoto
d7b37a9006 config: default window-vsync to true
Fixes #1409
Fixes macOS 14.4,14.5 kernel panics

As noted in the comment in this diff, I've decided to default this to
true because it fixes a couple _really bad_ issues for macOS users. For
macOS users on 14.4 and 14.5 (latest released as of this commit), this
resolves or at least heavily mitigates a possible kernel panic.

This also fixes #1409 where external displays over certain connections
such as DisplayLink would be unusably slow to render.
2024-05-14 07:19:15 -04:00
Qwerasd
4d67f660a4 fix(renderer/Metal): dirty track link highlights
Partial fix for link highlight dirty tracking. Some issues remain with
soft-wrapped links (see TODO in code), as well as pressing cmd while
hovering without moving the mouse at all doesn't highlight until you do
move the mouse for some reason.
2024-05-12 18:46:32 -04:00
Jeffrey C. Ollie
a89f817b9e adjust log message 2024-05-11 18:13:00 -05:00
Jeffrey C. Ollie
085c964be7 add strict rate limit 2024-05-11 18:13:00 -05:00
Jeffrey C. Ollie
b4404b691d suppress identical desktop notifications 2024-05-11 18:12:57 -05:00
Jeffrey C. Ollie
aa9813bc79 Add split right & split down menu entries for the GTK apprt.
Inspired by #1752
2024-05-11 11:48:11 -05:00
Mitchell Hashimoto
a11c7ac785 update Dear Imgui to 1.90.6 2024-05-10 10:17:33 -07:00
Mitchell Hashimoto
2783d758a4 Merge pull request #1754 from jparise/bash-preexec
shell-integration: update bash-preexec.sh
2024-05-10 09:44:38 -07:00
Jon Parise
baf5116140 shell-integration: update bash-preexec.sh
This pulls in a fix for `bind -x` bindings unintentionally calling the
preexec hook: https://github.com/rcaloras/bash-preexec/pull/152
2024-05-10 09:39:26 -07:00
Qwerasd
ac5725d582 fix(renderer): rebuild font grid and reset shaper cache on hot reload
When hot reloading config with a new font, shaper cache data needs to be
invalidated and the font grid needs to be rebuilt. This change just
makes that happen on all config reloads since it's a rare action so it's
not a performance concern.
2024-05-10 09:39:07 -07:00
Mitchell Hashimoto
61fd7f7fbf renderer/metal: reset cells when font size changes to avoid blank
Fixes #1743
2024-05-09 09:48:08 -07:00
Mitchell Hashimoto
ae0464cf70 Merge pull request #1741 from qwerasd205/non-integer-point-size
feat(font): Non-integer point sizes
2024-05-08 21:36:48 -07:00
Mitchell Hashimoto
9515d642ee Merge pull request #1739 from NgoHuy/fix-gtk4.14
Add GDK_DEBUG as default environment variable for linux
2024-05-08 21:06:47 -07:00
Mitchell Hashimoto
e81f525101 apprt/gtk: set GDK_DEBUG 2024-05-08 21:04:50 -07:00
Qwerasd
5df0935f82 update font_size to f32 in libghostty 2024-05-09 00:03:40 -04:00
Qwerasd
575a477be5 cast dpi to int again
forgot to change this back when I reverted the dpi from f32 to u16
2024-05-09 00:03:40 -04:00
Qwerasd
9056771509 keep font size in sane range 2024-05-09 00:03:40 -04:00
Qwerasd
d01db9f793 revert dpi type to u16 2024-05-09 00:03:40 -04:00
Qwerasd
fa45c18a6a fix point size type 2024-05-09 00:03:40 -04:00
Qwerasd
a9daba6d6d fix freetype face size calculation 2024-05-09 00:03:40 -04:00
Qwerasd
3156df261f fix a couple test failures 2024-05-09 00:03:40 -04:00
Qwerasd
d4a7549222 feat(font): Non-integer point sizes
Allows for high dpi displays to get odd numbered pixel sizes, for
example, 13.5pt @ 2px/pt for 27px font. This implementation performs
all the sizing calculations with f32, rounding to the nearest pixel
size when it comes to rendering. In the future this can be enhanced
by adding fractional scaling to support fractional pixel sizes.
2024-05-09 00:03:40 -04:00
Mitchell Hashimoto
6dcf567554 font: fix coretext test issues with harfbuzz shaper 2024-05-08 18:33:14 -07:00
Mitchell Hashimoto
435bd32cfd font: SharedGridSet works without font discovery 2024-05-08 18:24:55 -07:00
Mitchell Hashimoto
3c882e364a font: disable CJK unification fallback with freetype rasterizer 2024-05-08 12:18:35 -07:00
Mitchell Hashimoto
1cb70d6e40 font/coretext: force LTR shaping 2024-05-08 10:11:57 -07:00
Severus
245aaa34bf Add upstream's issue 2024-05-09 00:00:14 +07:00
Severus
b33190131f Add GDK_DEBUG as default environment variable for linux
Since gtk 4.14, we need to define driver to run OpenGL as (gtk's issue)[https://gitlab.gnome.org/GNOME/gtk/-/issues/6589]
2024-05-08 23:50:08 +07:00
Mitchell Hashimoto
18e5382909 font/coretext: do not assume capacity on arraylist append
Now that we're padding the cells with blanks if we have shaped ligatures
we don't actually know the exact count based on the CoreText APIs, so we
should just dynamically add.
2024-05-08 08:55:28 -07:00
Jon Parise
054e01eaaf shell-integration: expand bash HISTFILE value
bash reads HISTFILE at startup to locate its history file, but this is
apparently too early for it to be able to expand home-relative paths. We
now manually expand the full path and add that to the environment.
2024-05-08 07:49:46 -07:00
Mitchell Hashimoto
2b785127b1 Merge pull request #1729 from jparise/bash-integration
shell-integration: automatic bash integration
2024-05-07 20:01:51 -07:00
Mitchell Hashimoto
d64fa6d9db termio: shell integration uses arena 2024-05-07 19:57:26 -07:00
Mitchell Hashimoto
0445a017a2 Merge pull request #1736 from qwerasd205/metal-cell-fixes
Metal cell Contents structure improvements
2024-05-07 19:23:45 -07:00
Mitchell Hashimoto
0335b0eada core: preedit modification sets full screen dirty
Fixes #1735
2024-05-07 19:19:58 -07:00
Qwerasd
7e9bdb84a8 renderer/Metal: cell Contents asserts 2024-05-07 21:19:22 -04:00
Qwerasd
c801e28c39 renderer/Metal: cell Contents tests 2024-05-07 21:13:50 -04:00
Qwerasd
4f26eb203b renderer/Metal: cell Contents cleanup
Cleaned up naming, some logic changes, added comments.
2024-05-07 20:46:20 -04:00
Qwerasd
adf211f5d5 renderer/Metal: ArrayList cell Contents rows
This will allow for unlimited glyphs per row, eliminating the issue run in to with multi-substitution glyphs and combining characters which can result in more glyphs in a row than there are columns.
2024-05-07 19:19:06 -04:00
Qwerasd
dafabe3296 renderer/Metal: improve cell contents tracking
Previous version prevented multiple glyphs from belonging to the same coordinate, which broke quite a few things. This implementation fixes that (and may be more efficient too). Needs clean-up.
2024-05-07 19:19:06 -04:00
Mitchell Hashimoto
91bcc3de39 font/coretext: choose proper original font for CJK search 2024-05-07 15:39:17 -07:00
Mitchell Hashimoto
b7b76e352c Merge pull request #1734 from mitchellh/ct-fallback
coretext: let macOS choose the font for CJK Unified Ideographs
2024-05-07 15:21:38 -07:00
Mitchell Hashimoto
84095025d5 font: fontconfig has proper function 2024-05-07 15:10:53 -07:00
Mitchell Hashimoto
7c5d829274 font: use CoreText API for CJK unified ideographs 2024-05-07 15:05:34 -07:00
Mitchell Hashimoto
cd42888182 terminal: eraseRows sets dirty bits 2024-05-07 10:38:27 -07:00
Mitchell Hashimoto
f975861891 terminal: maintain dirty bits when rotating rows on clone 2024-05-07 10:36:54 -07:00
Mitchell Hashimoto
165c2d9056 renderer/metal: rebuild full screen when viewport changes 2024-05-07 10:22:12 -07:00
Mitchell Hashimoto
a1372a0efd terminal: more dirty tracking 2024-05-07 09:55:32 -07:00
Mitchell Hashimoto
3cfce658c3 terminal: dirty tracking in more places, tests coverage 2024-05-07 09:52:03 -07:00
Mitchell Hashimoto
a84314befe renderer/metal: disable bandaid 2024-05-07 09:51:45 -07:00
Mitchell Hashimoto
c2c8660c62 renderer/metal: disable dirty tracking temporarily
While #1731 is not fixed.
2024-05-07 07:26:59 -07:00