428 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
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
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
Jack N
346eba3152 sprites: dont thicken via font-thicken, + add cursor thickness adjustment 2024-04-22 20:35:23 -07:00
Mitchell Hashimoto
be0d52a4f2 config: rename "wcswidth" to "legacy" for "grapheme-width-method"
We don't actually use libc wcswidth to determine width and even if we
did some terminals use wcwidth (which behaves differently), some use
the Python wcswidth library (which behaves differently), etc. The
reality is there is no real consistency on "legacy" behavior so by
naming it "legacy" we show that we're doing our best but also gives us
wiggle room to change our behavior in the future.

Functionally nothing changes with this commit.
2024-04-19 09:56:22 -07:00
Mitchell Hashimoto
acf823fe3a config: update docs that fullscreen is incompatible with win-deco
Fixes #1684
2024-04-16 09:13:57 -07:00
Mitchell Hashimoto
21a648748d font: CodepointMap supports clone 2024-04-07 10:54:59 -07:00
Mitchell Hashimoto
b9efd83798 font: SharedGridSet uses DerivedConfig 2024-04-06 10:37:26 -07:00
Mitchell Hashimoto
07a5dd0442 config: FontStyle.clone 2024-04-06 10:28:57 -07:00
Mitchell Hashimoto
efb8146c28 config: RepeatableString.clone should clone all the strings too 2024-04-06 10:20:16 -07:00
Marius Svechla
e34b373426 shell-integration: implement no-title option
This adds a new option to the shell integration feature set, `no-title`.
If this option is set, the shell integration will not automatically
update the window title.
2024-04-03 22:00:42 +02:00
Mitchell Hashimoto
41cffd116a Merge pull request #1484 from jparise/window-title-font
macos: configurable titlebar fonts
2024-03-28 09:49:19 -07:00
Mitchell Hashimoto
caf2742b76 Merge pull request #1584 from mitchellh/paged-terminal
Low-memory terminal state implementation
2024-03-26 20:00:20 -07:00
Jon Parise
baf75dfaaf macos: configurable titlebar fonts
Add support for configurable fonts for window and tab titles. This is
only implemented for macOS (and could be macOS-only if other platforms
aren't able to support this using their windowing toolkits). It plays
nicely with regular and titlebar tabs.
2024-03-26 16:56:39 -07:00
Mitchell Hashimoto
b68e1c6a5d Merge pull request #1555 from BvngeeCord/gtk-tabs-location
add 'gtk-tabs-location'
2024-03-25 21:37:50 -07:00
Mitchell Hashimoto
aadd0d3d48 config: increase default max scrollback to 10MB 2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
49e8acbcd2 core: configurable scrollback limit 2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
9b4ab0e209 zig build test with renamed terminal package 2024-03-22 20:27:44 -07:00
Mitchell Hashimoto
b48d24a546 update zig 2024-03-13 09:14:12 -07:00
Jack N
fab3490d6e add gtk-tabs-location 2024-02-25 22:56:33 -08:00
ProfOak
f7911937ec Move selection paste to linux config section 2024-02-21 22:37:05 -06:00
ProfOak
96daf97d19 Add keybind support for shift+insert selection paste 2024-02-21 19:33:05 -06:00
Felipe Coury
733f4464c3 docs: correct MacOS location for themes on config docs 2024-02-17 10:53:27 -03:00
Ryan Cao
56ebc78b8a docs: document the text action for keybind 2024-02-16 17:40:43 +08:00
Mitchell Hashimoto
7548ac368e config: note that tab restore with titlebar tabs on macos 13 is broken 2024-02-12 21:30:24 -08:00
Mitchell Hashimoto
eb653907d6 config: grapheme-width-method sets mode 2027
Fixes #1403

This changes the behavior of `grapheme-width-method = unicode` to change
the default state of mode 2027 to true. Prior to this, setting this
config would force grapheme clustering regardless of mode 2027. Now,
this only sets the default and running TUI programs can disable it if
they want.
2024-02-02 12:13:13 -08:00
Mitchell Hashimoto
e5400bad06 config: add window-theme = auto for automatic choosing based on bg color 2024-02-01 20:49:28 -08:00
Mitchell Hashimoto
6482c25579 macos: titlebar tabs set window appearance based on bg luminance
Fixes #1427
2024-02-01 16:47:45 -08:00
Mitchell Hashimoto
00661c13ab config: clarify some limitations 2024-01-31 10:20:37 -08:00
Qwerasd
ba16d65d02 macOS: Added titlebar tabs 2024-01-30 18:48:36 -05:00
Mitchell Hashimoto
06ff385e0c Merge pull request #1394 from em-dash/configure-scroll-speed
Configure scroll speed  #1378
2024-01-27 21:24:05 -08:00
Mitchell Hashimoto
5095c8f477 core: be explicit about float rounding for mouse scroll multiplier 2024-01-27 21:14:42 -08:00
Mitchell Hashimoto
9beb395b12 config: update docs 2024-01-27 19:09:03 -08:00
Mitchell Hashimoto
3efe88c85c input: add link highlight always/hover w/ mods 2024-01-27 19:07:49 -08:00
Mitchell Hashimoto
ae11cc9042 add a new highlight state that requires modifiers 2024-01-27 19:03:03 -08:00
em-dash
ce7ba52b12 Add mouse-scroll-multiplier config option 2024-01-28 11:08:41 +11:00
Matt Robenolt
5813488691 Update Config docs to suggest Super + hover is required for link activation 2024-01-26 20:56:34 -08:00
Mitchell Hashimoto
26c7215cf8 forgot commit to get #1363 building to new API 2024-01-26 09:04:32 -08:00
Mitchell Hashimoto
d50307c219 Merge pull request #1363 from jcollie/list-keybinds-docs
Add option to include docs when listing keybinds.
2024-01-26 09:02:49 -08:00
Mitchell Hashimoto
0ba3edaf3d very small style change 2024-01-26 09:01:27 -08:00
Armin Ronacher
6f82004183 Document that window padding changes need a restart 2024-01-26 00:09:16 +01:00
Mitchell Hashimoto
0f133ae4a7 config: re-expand relative paths correctly when reloading config
Fixes #1366

When we use `loadTheme`, we "replay" the configuration so that the theme
is the base configuration and everything else can override everything
the theme sets. During this process, we were not properly re-expanding
all the relative paths.

This fix works by changing our input tracking from solely tracking args
to tracking operations such as expansion as well. When we "replay" the
configuration we also replay operations such as path expansion with the
correct base path.

This also removes the `_inputs` special mechanism `cli/args.zig` had
because we can already do that ourselves using `parseManuallyHook`.
2024-01-23 21:59:34 -08:00
Jeffrey C. Ollie
d51b6d4799 Add option to include docs when listing keybinds. 2024-01-23 00:26:38 -06:00
LordMZTE
8182b69ae3 add increase_font_size keybind with plus 2024-01-22 16:15:03 +01:00
Jeffrey C. Ollie
510f270c54 markdown-ify help strings 2024-01-21 15:07:37 -06:00
Mitchell Hashimoto
daf297cee2 config: union type formatters 2024-01-20 15:35:16 -08:00
Mitchell Hashimoto
2bf37843f3 config: tests for all custom formatEntry calls 2024-01-20 15:07:32 -08:00
Mitchell Hashimoto
32a1c6ec06 config: ability to format all field types except tagged unions 2024-01-20 14:41:49 -08:00
Mitchell Hashimoto
33bc424d7e config: introduce wait-after-command 2024-01-17 08:40:21 -08:00