diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-04-04 19:22:04 +0300 |
|---|---|---|
| committer | Can Celik <ogulcancelik@gmail.com> | 2026-04-05 01:23:06 +0300 |
| commit | 41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch) | |
| tree | 3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/nix/devShell.nix | |
| parent | 55c138263e190a1e79d4b997bfb9397306c0ec1f (diff) | |
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/nix/devShell.nix')
| -rw-r--r-- | vendor/libghostty-vt/nix/devShell.nix | 234 |
1 files changed, 234 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/nix/devShell.nix b/vendor/libghostty-vt/nix/devShell.nix new file mode 100644 index 00000000..df08fc20 --- /dev/null +++ b/vendor/libghostty-vt/nix/devShell.nix @@ -0,0 +1,234 @@ +{ + mkShell, + lib, + stdenv, + bashInteractive, + doxygen, + nushell, + appstream, + flatpak-builder, + gdb, + cmake, + #, glxinfo # unused + ncurses, + nodejs, + nodePackages, + oniguruma, + parallel, + pkg-config, + python3, + qemu, + scdoc, + # snapcraft, + valgrind, + #, vulkan-loader # unused + vttest, + wabt, + wasmtime, + wraptest, + zig, + zig_0_15, + zip, + llvmPackages_latest, + bzip2, + expat, + fontconfig, + freetype, + glib, + glslang, + gtk4, + gtk4-layer-shell, + gobject-introspection, + gst_all_1, + libadwaita, + blueprint-compiler, + gettext, + adwaita-icon-theme, + hicolor-icon-theme, + harfbuzz, + libpng, + libxkbcommon, + libX11, + libXcursor, + libXext, + libXi, + libXinerama, + libXrandr, + libxml2, + spirv-cross, + simdutf, + zlib, + alejandra, + jq, + minisign, + pandoc, + pinact, + hyperfine, + poop, + typos, + shellcheck, + swiftlint, + uv, + wayland, + wayland-scanner, + wayland-protocols, + zon2nix, + pkgs, + # needed by GTK for loading SVG icons while running from within the + # developer shell + glycin-loaders, + librsvg, +}: let + # See package.nix. Keep in sync. + ld_library_path = import ./build-support/ld-library-path.nix { + inherit pkgs lib stdenv; + }; + gi_typelib_path = import ./build-support/gi-typelib-path.nix { + inherit pkgs lib stdenv; + }; +in + mkShell { + name = "ghostty"; + packages = + [ + # For builds + cmake + doxygen + jq + llvmPackages_latest.llvm + minisign + ncurses + pandoc + pkg-config + scdoc + zig + zip + zon2nix.packages.${stdenv.hostPlatform.system}.zon2nix + + # For web and wasm stuff + nodejs + + # Linting + nodePackages.prettier + alejandra + pinact + typos + shellcheck + + # Testing + parallel + python3 + vttest + hyperfine + + # wasm + wabt + wasmtime + + # Localization + gettext + + # CI + uv + + # Scripting + nushell + + # We need these GTK-related deps on all platform so we can build + # dist tarballs. + blueprint-compiler + libadwaita + gtk4 + + # Python packages + (python3.withPackages (python-pkgs: [ + python-pkgs.ucs-detect + ])) + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + # My nix shell environment installs the non-interactive version + # by default so we have to include this. + bashInteractive + + # Used for testing SIMD codegen. This is Linux only because the macOS + # build only has the qemu-system files. + qemu + + appstream + flatpak-builder + gdb + # snapcraft + valgrind + wraptest + + bzip2 + expat + fontconfig + freetype + harfbuzz + libpng + libxml2 + oniguruma + simdutf + zlib + + glslang + spirv-cross + + libxkbcommon + libX11 + libXcursor + libXext + libXi + libXinerama + libXrandr + + # Only needed for GTK builds + gtk4-layer-shell + glib + gobject-introspection + wayland + wayland-scanner + wayland-protocols + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + + # needed by GTK for loading SVG icons while running from within the + # developer shell + glycin-loaders + librsvg + + # for benchmarking + poop + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + swiftlint + ]; + + # This should be set onto the rpath of the ghostty binary if you want + # it to be "portable" across the system. + LD_LIBRARY_PATH = ld_library_path; + GI_TYPELIB_PATH = gi_typelib_path; + + shellHook = + (lib.optionalString stdenv.hostPlatform.isLinux '' + # On Linux we need to setup the environment so that all GTK data + # is available (namely icons). + + # Minimal subset of env set by wrapGAppsHook4 for icons and global settings + export XDG_DATA_DIRS=$XDG_DATA_DIRS:${hicolor-icon-theme}/share:${adwaita-icon-theme}/share + export XDG_DATA_DIRS=$XDG_DATA_DIRS:$GSETTINGS_SCHEMAS_PATH # from glib setup hook + '') + + (lib.optionalString stdenv.hostPlatform.isDarwin '' + # On macOS, we unset the macOS SDK env vars that Nix sets up because + # we rely on a system installation. Nix only provides a macOS SDK + # and we need iOS too. + unset SDKROOT + unset DEVELOPER_DIR + + # We need to remove "xcrun" from the PATH. It is injected by + # some dependency but we need to rely on system Xcode tools + export PATH=$(echo "$PATH" | awk -v RS=: -v ORS=: '$0 !~ /xcrun/ || $0 == "/usr/bin" {print}' | sed 's/:$//') + ''); + } |
