mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-25 05:06:24 +03:00

Using `gtk4-layer-shell` still seems like the path of least resistance, and to my delight it pretty much Just Works. Hurrah! This implementation could do with some further polish (e.g. animations, which can be implemented via libadwaita's animations API, and global shortcuts), but as a MVP it works well enough. It even supports tabs! Fixes #4624.
144 lines
3.8 KiB
YAML
144 lines
3.8 KiB
YAML
name: ghostty
|
|
base: core24
|
|
summary: A terminal emulator
|
|
description: |
|
|
Ghostty is a fast, feature-rich, and cross-platform terminal emulator that
|
|
uses platform-native UI and GPU acceleration.
|
|
grade: stable
|
|
confinement: classic
|
|
contact: https://github.com/ghostty-org/ghostty/discussions
|
|
issues: https://github.com/ghostty-org/ghostty/issues
|
|
website: https://ghostty.org
|
|
license: MIT
|
|
icon: images/icons/icon_512.png
|
|
adopt-info: ghostty
|
|
|
|
platforms:
|
|
amd64:
|
|
arm64:
|
|
|
|
apps:
|
|
ghostty:
|
|
command: bin/ghostty
|
|
command-chain: [bin/launcher]
|
|
completer: share/bash-completion/completions/ghostty.bash
|
|
desktop: share/applications/com.mitchellh.ghostty.desktop
|
|
#refresh-mode: ignore-running # Store rejects this, needs fix in review-tools
|
|
environment:
|
|
PATH: /snap/ghostty/current/bin:/snap/ghostty/current/usr/bin:$PATH
|
|
LC_ALL: C.UTF-8
|
|
GHOSTTY_RESOURCES_DIR: /snap/ghostty/current/share/ghostty
|
|
|
|
parts:
|
|
launcher:
|
|
plugin: dump
|
|
source: snap/local
|
|
source-type: local
|
|
organize:
|
|
launcher: bin/
|
|
|
|
zig:
|
|
plugin: nil
|
|
build-packages:
|
|
- curl
|
|
override-pull: |
|
|
set -ex
|
|
case "$CRAFT_ARCH_BUILD_FOR" in
|
|
amd64) arch=x86_64 ;;
|
|
arm64) arch=aarch64 ;;
|
|
*) arch="" ;;
|
|
esac
|
|
|
|
rm -rf $CRAFT_PART_SRC/*
|
|
|
|
if [[ -n $arch ]]; then
|
|
curl -LO --retry-connrefused --retry 10 https://ziglang.org/download/0.13.0/zig-linux-$arch-0.13.0.tar.xz
|
|
else
|
|
echo "Unsupported arch"
|
|
exit 1
|
|
fi
|
|
|
|
tar xf zig-lin*xz
|
|
rm -f *xz
|
|
mv zig-linux*/* .
|
|
prime:
|
|
- -*
|
|
|
|
ghostty:
|
|
source: .
|
|
after: [zig]
|
|
plugin: nil
|
|
build-attributes: [enable-patchelf]
|
|
build-packages:
|
|
- blueprint-compiler
|
|
- libgtk-4-dev
|
|
- libadwaita-1-dev
|
|
# TODO: Add when the Snap is updated to Ubuntu 24.10+
|
|
# - gtk4-layer-shell
|
|
- libxml2-utils
|
|
- git
|
|
- patchelf
|
|
override-build: |
|
|
craftctl set version=$(git describe --abbrev=8)
|
|
$CRAFT_PART_SRC/../../zig/src/zig build -Dpatch-rpath=\$ORIGIN/../usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR:/snap/core24/current/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR -Doptimize=ReleaseFast
|
|
cp -rp zig-out/* $CRAFT_PART_INSTALL/
|
|
sed -i 's|Icon=com.mitchellh.ghostty|Icon=/snap/ghostty/current/share/icons/hicolor/512x512/apps/com.mitchellh.ghostty.png|g' $CRAFT_PART_INSTALL/share/applications/com.mitchellh.ghostty.desktop
|
|
|
|
libs:
|
|
plugin: nil
|
|
build-attributes: [enable-patchelf]
|
|
stage-packages:
|
|
- libadwaita-1-0
|
|
- libglib2.0-0t64
|
|
- libgtk-4-1
|
|
- libgtk-4-media-gstreamer
|
|
- ibus-gtk4
|
|
- libpciaccess0
|
|
- libtinfo6
|
|
- libedit2
|
|
- libelf1t64
|
|
- libsensors5
|
|
- libllvm17
|
|
- libunistring5
|
|
- librsvg2-2
|
|
- on amd64:
|
|
[
|
|
i965-va-driver,
|
|
libdrm-intel1,
|
|
libdrm-nouveau2,
|
|
libdrm-amdgpu1,
|
|
libdrm-radeon1,
|
|
]
|
|
stage:
|
|
# The libraries in dri need no-patchelf, so they come from the mesa-unpatched part
|
|
- -usr/lib/*/dri
|
|
|
|
mesa:
|
|
plugin: nil
|
|
build-attributes: [enable-patchelf]
|
|
stage-packages:
|
|
- libglu1-mesa
|
|
- libgl1-mesa-dri
|
|
- libegl-mesa0
|
|
- libegl1
|
|
- libglx-mesa0
|
|
- mesa-libgallium
|
|
stage:
|
|
# The libraries in dri need no-patchelf, so they come from the mesa-unpatched part
|
|
- usr/lib/*/*.so*
|
|
- usr/lib/*/dri/libdril_dri.so
|
|
- -usr/lib/*/libgallium*so
|
|
- -usr/lib/*/dri
|
|
|
|
mesa-gl1-dri:
|
|
plugin: nil
|
|
stage-packages:
|
|
- libgl1-mesa-dri
|
|
build-attributes: [no-patchelf]
|
|
stage:
|
|
# Only the libraries in dri need to not be patched, the rest come from the mesa part
|
|
# Otherwise snapcraft may strip the build ID and cause the driver to crash
|
|
- usr/lib/*/libgallium*so
|
|
- -usr/lib/*/dri/libdril_dri.so
|
|
- usr/lib/*/dri
|