4468 Commits

Author SHA1 Message Date
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
Mitchell Hashimoto
4c39739a26 renderer/metal: rebuild all cells on resize 2024-05-06 20:51:55 -07:00
Mitchell Hashimoto
d3abe65ad6 terminal: only set selection dirty to true on clear if previously set 2024-05-06 18:35:51 -07:00
Mitchell Hashimoto
26300447e4 renderer/metal: reset screen dirty flags
I introduced screen dirty flags fairly late, and never reset them. As a
result, dirty tracking basically gets disabled as soon as selection
changes in any form. This happens frequently because _unsetting_
selection also resets selection which happens for various events.
2024-05-06 18:31:26 -07:00
Jon Parise
861edc722f shell-integration: revise ShellIntegration.command comment 2024-05-05 14:03:31 -07:00
Jon Parise
73b3560e62 shell-integration: automatic bash integration
This change adds automatic bash shell detection and integration.

Unlike our other shell integrations, bash doesn't provide a built-in
mechanism for injecting our ghostty.bash script into the new shell
environment.

Instead, we start bash in POSIX mode and use the ENV environment
variable to load our integration script, and the rest of the bash
startup sequence becomes the responsibility of our script to emulate
(along with disabling POSIX mode).
2024-05-05 13:59:52 -07:00
Mitchell Hashimoto
8fdf6b4b64 renderer: add window-vsync option (defaults to false) 2024-05-05 10:18:15 -07:00
Mitchell Hashimoto
ca9689be46 renderer/metal: API to handle macOS display ID changing 2024-05-04 19:40:58 -07:00
Mitchell Hashimoto
6b3cb69101 renderer/metal: clean up some unnecessary state around rebuilds 2024-05-04 19:06:43 -07:00
Mitchell Hashimoto
0836aa7318 renderer: add comment why we have dead code 2024-05-04 14:50:15 -07:00
Mitchell Hashimoto
c56e016ab3 renderer: remove 10ms delay on repaint 2024-05-04 14:50:15 -07:00
Mitchell Hashimoto
b00e7009d7 renderer/metal: do not update frames if cells don't change 2024-05-04 14:50:13 -07:00
Mitchell Hashimoto
92caea6948 renderer/metal: remove unnecessary logs 2024-05-04 14:49:50 -07:00
Mitchell Hashimoto
ac813c9244 renderer/metal: stop/start display link on occlusion 2024-05-04 14:49:50 -07:00
Mitchell Hashimoto
6ae1784f4b renderer/metal: stop display link when we lose focus 2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
a40ffad218 renderer/metal: setup display link 2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
e31e25f54d apprt/embedded: add draw now API 2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
fe7ff998c9 renderer: move our constant draw timer up to 120fps
Our renderers can now handle it
2024-05-04 14:49:49 -07:00
Mitchell Hashimoto
caaf6a496f renderer: add draw now async wakeup 2024-05-04 14:49:48 -07:00
Mitchell Hashimoto
7c9ce0af73 terminal: Screen selection marks dirty 2024-05-01 20:41:53 -07:00
Mitchell Hashimoto
851b1fe2ac font: noop shaper 2024-05-01 20:31:50 -07:00
Mitchell Hashimoto
22702b6941 renderer/metal: re-enable triple buffer 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
bb138becc5 terminal: resize causes full screen redraw 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
037f8d3a5e terminal: set dirty bit for screen swap 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
b166ca7e30 renderer/Metal: only rebuild rows that are dirty 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
7e52f94278 terminal: on clone, only mark rows dirty that were previously dirty 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
d47f14f86a terminal: dirty tracking on screen clone 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
3f9e3c39a4 terminal: track dirty state of palette and reverse colors 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
f867fabf8e terminal: new coordinate type 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
4f2ee95ecd renderer/metal: docs 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
fb25f5cea1 terminal: more dirty tests 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
cfcd16354a terminal: many more dirty checks 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
1c05939f17 terminal: deleteChars dirty 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
a53dbaaa31 terminal: more dirty tests 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
19ddbbc7d6 terminal: eraseRowBounded dirty tracking 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
0749b67832 terminal: index dirty tests one todo 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
b46e028069 terminal: scrollDown dirty tests 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
bd1a7d3db1 terminal: scrollDown dirty tests 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
58aa4cc10b terminal: dirty tests for insertLines 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
f7a57bd2c8 terminal: dirty tests on t/b/l/r margins 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
981f031951 terminal: remove unused debug log 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
11c195e493 terminal: dirty tracking on print with tests 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
7b750b7ed9 terminal: add dirty bits to the page structure 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
a8b97d4061 font/coretext: only pad shaped text ltr 2024-05-01 20:27:40 -07:00