4536 Commits

Author SHA1 Message Date
KNnut
a2e6c6b86b readme: fix a typo 2024-01-08 10:24:48 +08:00
Mitchell Hashimoto
ba45e4120e Merge pull request #1248 from der-teufel-programming/main
WIP: Update Ghostty to use the new build system API
2024-01-07 15:34:38 -08:00
Mitchell Hashimoto
ad0db1d2ae nix: update hash 2024-01-07 15:30:56 -08:00
Mitchell Hashimoto
fa0d7e963a Merge pull request #1249 from mitchellh/constrain-dingbats
renderer: constrain dingbats unicode block to cell size
2024-01-07 15:06:11 -08:00
Mitchell Hashimoto
62e5234da4 renderer: for constrained cells, offset was being doubled
This helps better preserve the centerline for constrained glyphs
2024-01-07 15:02:56 -08:00
Mitchell Hashimoto
f7c558e733 renderer: constrain dingbats category to cell size
Dingbats are generally symbolic glyphs that frequently overflow the
cell. Their defined codepoint width is "1" so they take one cell but
very often overflow to the next.

This extends the previously created logic for Nerd Font symbols such
that when a dingbat is next to whitespace, we allow it to use the full
size, but when a dingbat is next to an occupied cell we constrain it to
the cell size.
2024-01-07 14:54:15 -08:00
Krzysztof Wolicki
df19a68dd6 Update mach-glfw dependency 2024-01-07 23:38:17 +01:00
Chris Marchesi
477a79087b nix: update nixpkgs-zig-0-12 input, also cache hash
This updates zig_0_12 to be built off of 0.12.0-dev.2059+42389cb9c.

Additionally, we update the cache hash.
2024-01-07 13:56:07 -08:00
Krzysztof Wolicki
b4a08dd5f1 Update mach-glfw dependency 2024-01-07 22:45:59 +01:00
Krzysztof Wolicki
42eed75b64 Update mach-glfw dependency 2024-01-07 21:52:00 +01:00
Krzysztof Wolicki
3c78df70fb Maybe this will help macos 2024-01-07 21:39:53 +01:00
Mitchell Hashimoto
f6e93c8748 ci: release should only run with a main main ref 2024-01-07 12:34:36 -08:00
Mitchell Hashimoto
162ebaa8fa Merge pull request #1246 from rbino/linux-xft-dpi
linux: consider Xft.dpi to scale the content
2024-01-07 12:29:13 -08:00
Mitchell Hashimoto
b62c78b61d apprt/gtk: stylistic changes 2024-01-07 12:25:56 -08:00
Krzysztof Wolicki
46530b572e Merge branch 'main' of github.com:der-teufel-programming/ghostty 2024-01-07 21:22:19 +01:00
Krzysztof Wolicki
b27fc44837 Link frameworks to macos module conditionally 2024-01-07 21:22:09 +01:00
Mitchell Hashimoto
8db0697b5d nix: update hash 2024-01-07 12:18:11 -08:00
Krzysztof Wolicki
2f5bcf2e27 Attempt to fix building on macos 2024-01-07 21:17:17 +01:00
Mitchell Hashimoto
a8a42c8658 fix macos zig build test failures 2024-01-07 12:10:48 -08:00
Mitchell Hashimoto
c1bde28af4 update flake 2024-01-07 12:03:23 -08:00
Krzysztof Wolicki
5698607a1c Clean pkg/fontconfig/build.zig 2024-01-07 20:54:22 +01:00
Krzysztof Wolicki
9964a55d47 Update source for zig-build-macos-sdk for pkg/apple-sdk 2024-01-07 20:48:00 +01:00
Krzysztof Wolicki
12f4210558 Update required zig version to 0.12.0-dev.2063+804cee3b9 2024-01-07 20:42:30 +01:00
Krzysztof Wolicki
54e866d16e Change source of mach_glfw to experimental branch in fork 2024-01-07 19:25:06 +01:00
Krzysztof Wolicki
f917be968d Merge branch 'mitchellh:main' into main 2024-01-07 19:13:06 +01:00
Krzysztof Wolicki
ddebb31b8a Add include paths to more modules in pkg/ 2024-01-07 19:07:16 +01:00
Krzysztof Wolicki
6c7c5eecce Add include paths to freetype module 2024-01-07 18:45:07 +01:00
Krzysztof Wolicki
9e14a7ea62 Add include paths to modules in pkg/ 2024-01-07 17:39:39 +01:00
Krzysztof Wolicki
eb4ede8b6f Update sources for zig-objc and zig-js 2024-01-07 17:37:42 +01:00
Riccardo Binetti
ad503b8c4f linux: consider Xft.dpi to scale the content
Many applications use Xft.dpi to scale their contents (e.g. Chromium,
kitty, alacritty...). This value also gets set by DE setting managers
and can be manually set in ~/.Xresources if using, e.g., i3.

This should make HiDPI on Linux more consistent even when not using
GTK-specific methods (e.g. GDK_SCALE=2).

Note that we still consider GTK scaling, so it's possible to use the two
independently.

Closes #1243
2024-01-07 17:16:16 +01:00
Mitchell Hashimoto
e1a28dcabf Merge pull request #1245 from mitchellh/clear-screen-consume
core: clear_screen binding doesn't consume on alt screen
2024-01-07 08:04:59 -08:00
Mitchell Hashimoto
383b7c5870 core: clear_screen binding doesn't consume on alt screen
The clear_screen binding does nothing on the alternate screen already,
but we were still marking the action as "performed" which caused the
binding to be consumed.

This meant that alt screen applications like neovim, tmux, etc. couldn't
see "cmd+k" (default binding for clear_screen on macOS) without the
Ghostty user unbinding it completely.

We already have other bindings that do not consume only when they do not
perform, such as `previous_tab` and `next_tab`. This extends the
framework we built for that to this action.
2024-01-07 07:54:42 -08:00
Riccardo Binetti
fe0842c2d0 linux: add a function to check if we're running on X11 2024-01-07 16:54:01 +01:00
Krzysztof Wolicki
5bb25536e1 Update source for libxev 2024-01-07 15:00:31 +01:00
Krzysztof Wolicki
5776c54225 Update changed build.zig 2024-01-07 15:00:17 +01:00
Mitchell Hashimoto
76f760c7eb Merge pull request #1241 from mitchellh/monaspace-ligs
font: insert blank cells for multi-cell ligatures for styling
2024-01-06 19:40:47 -08:00
Mitchell Hashimoto
f447e6f9df font: insert blank cells for multi-cell ligatures for styling
Up to this point, every font I've experienced with ligatures has
replaced the codepoints that were replaced for combining with a space.
For example, if a font has a ligature for "!=" to turn it into a glyph,
it'd shape to `[not equal glyph, space]`, so it'd still take up two
cells, allowing us to style both.

Monaspace, however, does not do this. It turns "!=" into `[not equal
glyph]` so styles like backgrounds, underlines, etc. were not extending.

This commit detects multi-cell glyphs and inserts synthetic blank cells
so that styling returns. I decided to do this via synthetic blank cells
instead of introducing a `cell_width` to the shaper result because this
simplifies the renderers to assume each shaper cell is one cell. We can
change this later if we need to.

Annoyingly, this does make the shaper slightly slower for EVERYONE to
accomodate one known font that behaves this way. I haven't benchmarked
it but my belief is that the performance impact will be negligible
because to figure out cell width we're only accessing subsequent cells
so they're likely to be in the CPU cache and also 99% of cells are going
to be width 1.
2024-01-06 19:22:25 -08:00
Mitchell Hashimoto
1403db8835 Merge pull request #1239 from jcollie/nix-fix-build
In some cases, 'self' would not be passed to the package. It's not necessary so remove it.
2024-01-06 15:19:22 -08:00
Jeffrey C. Ollie
6626c315d7 In some cases, 'self' would not be passed to the package. It's not necessary so remove it. 2024-01-06 16:30:40 -06:00
Mitchell Hashimoto
0369a6d5a7 Merge pull request #1238 from mitchellh/macos-shell
macOS: detect changed shell (via `chsh`) immediately without requiring system restart
2024-01-06 12:40:02 -08:00
Mitchell Hashimoto
d65fbba39e config: do not load command from SHELL when launched from desktop
Fixes #139

From the issue:

Looking into this now, I think I figured out the broken logic. When launching
from open, the parent process of Ghostty is launchd which appears to set your
SHELL env var to your configured shell when logging in. That's why a restart
fixes it. However, I believe directory services (the macOS equivalent to
/etc/passwd) is updated in real time.

Ghostty does read directory services but at a lower priority than SHELL.
This logic makes sense for CLI-launched terminals but not desktop-launched.
From a CLI you want the terminal you're launching to probably inherit the shell
from the CLI you launched it from. (Note that using open explicitly forces a
launchd-style launch so it quacks as if it was double-clicked on the desktop).

In conclusion, I believe the correct logic is to invert the priority on SHELL
vs directory services when Ghostty detects it was launched from launchd. We
already have this detection logic in Ghostty because we use it for a number of
other things as well, so this should be easy to fix. I'll work on it later
today.
2024-01-06 12:31:01 -08:00
Mitchell Hashimoto
8a816dc5ef os: mac app launched with bundle env var is treated as desktop launch 2024-01-06 12:30:44 -08:00
Mitchell Hashimoto
0c40c99887 Merge pull request #1235 from jcollie/nix-full-version
Include the git commit hash in the Nix package.
2024-01-06 10:50:29 -08:00
Jeffrey C. Ollie
f09901f236 Include '-nix' in the version string to distinguish Nix builds. 2024-01-06 00:08:30 -06:00
Mitchell Hashimoto
c93436ad5d Merge pull request #1236 from mitchellh/apple-emoji
Prefer Apple Emoji on macOS, don't crash on unknown Freetype error
2024-01-05 21:48:00 -08:00
Jeffrey C. Ollie
0200f79554 Include the git commit hash in the Nix package. 2024-01-05 23:44:53 -06:00
Mitchell Hashimoto
efd196e5c9 pkg/freetype: unknown errors should be reported, not unreachable 2024-01-05 21:08:39 -08:00
Mitchell Hashimoto
962be81f71 core: add Apple Color Emoji on macOS if its available 2024-01-05 21:03:37 -08:00
Krzysztof Wolicki
710b02a2ab Merge branch 'main' of github.com:mitchellh/ghostty 2024-01-06 05:42:55 +01:00
Mitchell Hashimoto
58e9eb80ab Merge pull request #1233 from mitchellh/shell-alloc
termio: support XDG data dirs greater than 4k for fish shell integration
2024-01-05 14:29:57 -08:00