181 Commits

Author SHA1 Message Date
Mitchell Hashimoto
6e411d60f2 Fix wayland-scanner/protocols packaging dependency
By updating zig-wayland:
https://codeberg.org/ifreund/zig-wayland/issues/67
2025-01-10 09:57:29 -08:00
Mitchell Hashimoto
622cc3f9c7 build: update zig-wayland to use new LazyPath API
This is a more idiomatic way to handle build paths in Zig 0.13 and
later.
2025-01-08 19:55:57 -08:00
Mitchell Hashimoto
bade7be021 Use build.zig.zon for Wayland protocols 2025-01-07 20:26:26 -08:00
Mitchell Hashimoto
8bf5c4ed7f This is a major refactor of build.zig.
The major idea behind the refactor is to split the `build.zig` file up into
distinct `src/build/*.zig` files. By doing so, we can improve readability of
the primary `build.zig` while also enabling better reuse of steps. Our
`build.zig` is now less than 150 lines of code (of course, it calls into a lot
more lines but they're neatly organized now).

Improvements:

  * `build.zig` is less than 150 lines of readable code.
  * Help strings and unicode table generators are only run once when multiple
    artifacts are built since the results are the same regardless of target.
  * Metal lib is only built once per architecture (rather than once per artifact)
  * Resources (shell integration, terminfo, etc.) and docs are only
    built/installed for artifacts that need them

Breaking changes:

  * Removed broken wasm build (@gabydd will re-add)
  * Removed conformance files, shell scripts are better and we don't run
    these anymore
  * Removed macOS app bundle creation, we don't use this anymore since we
    use Xcode

## Some History

Our `build.zig` hasn't been significantly refactored since the project started,
when Zig was _version 0.10_. Since then, the build system has changed
significantly. We've only ever duct taped the `build.zig` as we needed to
support new Zig versions, new features, etc. It was a mess.

The major improvement is adapting the entire Ghostty `build.zig` to the Step
and LazyPath changes introduced way back in Zig 0.12. This lets us better take
advantage of parallelism and the dependency graph so that steps are only
executed as they're needed.

As such, you can see in the build.zig that we initialize a lot of things, but
unless a final target (i.e. install, run) references those steps, _they'll
never be executed_. This lets us clean up a lot.
2025-01-07 19:47:43 -08:00
Mitchell Hashimoto
ce77b91bf6 nix fmt 2025-01-05 12:37:56 -08:00
Mitchell Hashimoto
0ae8d9ed42 nix: update hash 2025-01-05 12:30:16 -08:00
Leah Amelia Chen
31439f311d build: add wayland 2025-01-05 12:27:11 -08:00
mitchellh
6db39e827e deps: Update iTerm2 color schemes 2025-01-05 01:00:16 +00:00
Jeffrey C. Ollie
652079b26c wuffs: update, add jpeg decoding, add simple tests 2025-01-01 22:48:30 -06:00
Mitchell Hashimoto
1d71196de3 up version to 1.0.2 for development 2024-12-31 14:12:00 -08:00
mitchellh
12a333dfb4 deps: Update iTerm2 color schemes 2024-12-31 05:40:18 +00:00
Jeffrey C. Ollie
b6e45d49a3 gtk/x11: link directly to libX11, no more dlopen 2024-12-29 01:15:01 -06:00
mitchellh
a671ca43f8 deps: Update iTerm2 color schemes 2024-12-29 01:00:43 +00:00
Jeffrey C. Ollie
8ecb11a602 gtk: add option to not link against libX11 2024-12-28 13:40:17 -06:00
Mitchell Hashimoto
35b9ceee21 up the version to 1.0.1 everywhere for dev 2024-12-26 15:21:50 -08:00
Mitchell Hashimoto
68f09eb60d set version metadata to 1.0.0 2024-12-26 11:49:31 -08:00
Mitchell Hashimoto
010e73517d nix: move vimfiles instead of copying (#3073) 2024-12-22 19:07:41 -08:00
Qwerasd
b920352c39 deps: update z2d to v0.4.0
Introduces static path methods and a reworked context API that makes
things generally cleaner.

This update incidentally fixed a bug we had before where the corner
triangle shade characters were drawn solid rather than medium shade.
2024-12-22 16:07:05 -05:00
Jeffrey C. Ollie
b41db4f288 nix: move vimfiles instead of copying 2024-12-22 14:25:36 -06:00
mitchellh
7da6af85e1 deps: Update iTerm2 color schemes 2024-12-22 01:01:15 +00:00
Anund
ac6956f1fe nix: support programs.vim.plugins = [ ghostty.vim ]
nix vim module expects vim plugins to have their code organized as top level
directories. eg: /ftdetect rather than /share/vim/vimfiles/ftdetect. Adding
a separate output seems like a convenient way to reference the plugin
files in `programs.vim.plugins ...`. Interestingly nvim will find the
plugin via nested directories making ghostty.vim and ghostty the same
for `programs.neovim.plugins`
2024-12-19 07:21:54 -08:00
Anund
c39b60709f nix: address warning to use toplevel adwaita-icon-theme 2024-12-17 14:37:20 +11:00
mitchellh
854ec586f9 deps: Update iTerm2 color schemes 2024-12-15 01:05:52 +00:00
mitchellh
c4029015b9 deps: Update iTerm2 color schemes 2024-12-12 21:45:11 +00:00
Mitchell Hashimoto
313752dee2 update libxev
This fixes a possible deadlock. This has never happened in reports by
beta testers but good hygiene to get this fixed.
2024-12-08 16:49:50 -08:00
Mitchell Hashimoto
1ee7da174b flake: update to Nix 24.11 2024-12-05 12:15:48 -08:00
furtidev
d32e3be0b3 update nix cache 2024-11-16 21:15:20 +06:00
Mitchell Hashimoto
523e3a6ae3 deps: update iterm2 color themes 2024-11-12 19:49:53 -08:00
Mitchell Hashimoto
b26ff0a41b deps: update zf and nix hash 2024-11-12 19:07:07 -08:00
Mitchell Hashimoto
98c4c453ee update iterm2 themes 2024-11-05 16:32:30 -08:00
Mitchell Hashimoto
f8d2ac6c8c update zig-objc
removes usingnamespace
2024-11-04 09:52:19 -08:00
Mitchell Hashimoto
038b3dec79 update zig-objc
This fixes a hack we had around apple paths since we do this now
upstream in zig-objc. This also adds in support for NSFastEnumeration
needed for #2586
2024-11-03 15:21:26 -08:00
Mitchell Hashimoto
1a12355dc9 ci: add signing and tarball generation to release-tip workflow 2024-10-24 16:32:43 -07:00
Mitchell Hashimoto
3ae3429bf7 nix: oniguruma needed for dynamic linking 2024-10-24 15:14:46 -07:00
Mitchell Hashimoto
8bb8b01e54 build: use Zig system packaging options
This allows dynamically linking against system libraries, which is
particularly useful for packaging.
2024-10-24 14:46:37 -07:00
Mitchell Hashimoto
dc26a9abe0 nix hash 2024-10-15 09:26:46 -07:00
Qwerasd
d38d0f30c4 font/sprite: replace pixman with z2d, extend Box coverage
More complete coverage of the Symbols For Legacy Computing block,
including characters from Unicode 16.0.

Pixman and the web canvas impl for Canvas have been removed in favor of
z2d for drawing, since it has a nicer API with more powerful methods,
and is in Zig with no specific platform optimizations so should compile
to wasm no problem.
2024-10-14 17:50:49 -04:00
isabel
02be641358 refactor(nix): stdenv.isX -> stdenv.hostPlatform.isX
In preparation for the deprecation of `stdenv.isX`

e0464e4788
2024-10-14 16:39:28 +01:00
Tim Culverhouse
e502597e8d fix(list-keybinds): reset SGR after pretty printing
Update libvaxis which now resets SGR at the end of a pretty print.

Fixes: #2333
2024-09-30 20:16:27 -07:00
Jeffrey C. Ollie
cadca8ca45 nix: remove tracy from the devshell 2024-09-27 23:18:42 -05:00
Jeffrey C. Ollie
21a7e40510 nix: move fetch-zig-cache script into nix/build-support 2024-09-27 20:40:03 -05:00
Jeffrey C. Ollie
a9b04037b4 nix: don't require the ZIG_LOCAL_CACHE_DIR to be set
NixOS does not set this during Nix package builds. Probably Nix's
caching got in the way of detecting this on my system.
2024-09-27 19:19:51 -05:00
Jeffrey C. Ollie
39733ac3e5 nix: work around ziglang/zig#20976 and fix nix package builds
Because Zig does not fetch recursive dependencies when you run `zig build
--fetch` (see https://github.com/ziglang/zig/issues/20976) we need to do some
extra work to fetch everything that we actually need to build without Internet
access (such as when building a Nix package).

An example of this happening:

```
error: builder for '/nix/store/cx8qcwrhjmjxik2547fw99v5j6np5san-ghostty-0.1.0.drv' failed with exit code 1;
      la/build/tmp.xgHOheUF7V/p/12208cfdda4d5fdbc81b0c44b82e4d6dba2d4a86bff644a153e026fdfc80f8469133/build.zig.zon:7:20: error: unable to discover remote git server capabilities: TemporaryNameServerFailure
      >             .url = "git+https://github.com/zigimg/zigimg#3a667bdb3d7f0955a5a51c8468eac83210c1439e",
      >                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      > /build/tmp.xgHOheUF7V/p/12208cfdda4d5fdbc81b0c44b82e4d6dba2d4a86bff644a153e026fdfc80f8469133/build.zig.zon:16:20: error: unable to discover remote git server capabilities: TemporaryNameServerFailure
      >             .url = "git+https://github.com/mitchellh/libxev#f6a672a78436d8efee1aa847a43a900ad773618b",
      >                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      >
      For full logs, run 'nix log /nix/store/cx8qcwrhjmjxik2547fw99v5j6np5san-ghostty-0.1.0.drv'.
```

To update this script, add any failing URLs with a line like this:

```
  zig fetch <url>
```

Periodically old URLs may need to be cleaned out.

Hopefully when the Zig issue is fixed this script can be eliminated in favor
of a plain `zig build --fetch`.
2024-09-27 15:49:02 -05:00
Jeffrey C. Ollie
a969364f93 cli/list-themes: add ability to search theme names 2024-09-27 10:53:58 -07:00
Jeffrey C. Ollie
743e547235 cli: "fancy" theme preview
This adds a "fancy" theme preview to the `+list-themes` CLI action.
By default, if the command is connected to a TTY, it will display the
fancy preview. If it is not connected to a TTY, or the user specifies
`--plain` on the command line, a simple list of themes will be printed
to stdout.

While in the preview `F1` or `?` will show a help screen.
2024-09-27 10:53:58 -07:00
Jeffrey C. Ollie
196c9dc3ba nix: fix up zig hook in package.nix 2024-09-26 17:24:16 -05:00
Mitchell Hashimoto
c91c5164ff update libxev
This fixes the issue where a write could be interrupted and not retried.
2024-09-23 09:30:57 -07:00
Mitchell Hashimoto
a9deb37071 nix: remove ZLS
Fixes #2171

ZLS has caused us issues in our Nix shell before and I noted when we
first added it that we probably shouldn't. We now pin to release
versions of Zig so I think its reasonable to expect developers to have
ZLS installed themselves with the proper version or not use it at all.
2024-09-03 15:18:04 -07:00
Mitchell Hashimoto
e6c3ba2cf9 update zig cache hash 2024-09-02 20:47:07 -07:00
Mitchell Hashimoto
f133206c55 nix: update cache 2024-08-28 21:43:18 -07:00