Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
5b82099
ci: delete old release assets for nightly builds
Apr 3, 2025
a89d14a
chore(deps): update softprops/action-gh-release action to v2.2.2
renovate[bot] Apr 19, 2025
dc7e611
Merge pull request #73 from pkgforge-dev/renovate/softprops-action-gh…
Apr 19, 2025
cbb4404
build: add uruntime-lite and debloatted mesa
Apr 21, 2025
00f5c55
feat: add experimental builds
Apr 25, 2025
5cd6539
Merge pull request #76 from pkgforge-dev/feature/exp
Apr 25, 2025
bc9092e
fix: change upinfo name which conflicts between builds
May 16, 2025
299037f
Merge pull request #78 from pkgforge-dev/feature/upinfo
May 16, 2025
af95a7f
fix: typo :/
May 16, 2025
15bf9c9
chore(deps): update softprops/action-gh-release action to v2.3.0
renovate[bot] Jun 10, 2025
660bc4b
Merge pull request #80 from pkgforge-dev/renovate/softprops-action-gh…
Jun 10, 2025
bf0a50a
Revert "chore(deps): update softprops/action-gh-release action to v2.…
Samueru-sama Jun 10, 2025
152862e
Merge pull request #81 from Samueru-sama/revert-80-renovate/softprops…
Jun 10, 2025
6bf32ea
chore(deps): update softprops/action-gh-release action to v2.3.2
renovate[bot] Jun 10, 2025
016d91d
Merge pull request #83 from pkgforge-dev/renovate/softprops-action-gh…
Jun 23, 2025
2654fe7
sunset glfw builds
Jul 6, 2025
0823c0a
Merge pull request #84 from pkgforge-dev/feature/glfw
Jul 6, 2025
a81cf5d
chore(deps): update actions/download-artifact action to v5
renovate[bot] Aug 6, 2025
66d0df4
Merge pull request #85 from pkgforge-dev/renovate/actions-download-ar…
Aug 6, 2025
a49df6f
chore(deps): update actions/checkout action to v5
renovate[bot] Aug 11, 2025
e1fdd85
Merge pull request #87 from pkgforge-dev/renovate/actions-checkout-5.x
Aug 11, 2025
8f949d3
refactor: Implement pkgforge scripts
Sep 1, 2025
fdab545
Merge pull request #88 from pkgforge-dev/feature/deps
Sep 2, 2025
fb67638
fix: copy share dir manually
Sep 5, 2025
ab6438b
Merge pull request #89 from pkgforge-dev/feature/deps
Sep 6, 2025
9f6a3a8
fix `tip` releases updating to stable
Samueru-sama Sep 7, 2025
cf879c1
Merge pull request #90 from Samueru-sama/patch-1
Sep 7, 2025
afcaf0d
chore(deps): update softprops/action-gh-release action to v2.3.3
renovate[bot] Sep 7, 2025
d909ce4
Merge pull request #91 from pkgforge-dev/renovate/softprops-action-gh…
Sep 7, 2025
21715ed
chore: version update to 1.2.0
Sep 16, 2025
7978483
fix: add env to unset argv0
Sep 17, 2025
9457503
temp fix for opengl loader issue
Samueru-sama Sep 17, 2025
812e01d
Merge pull request #95 from Samueru-sama/patch-2
Sep 17, 2025
75f4a07
chore(deps): update softprops/action-gh-release action to v2.3.4
renovate[bot] Oct 3, 2025
6a74a84
Merge pull request #98 from pkgforge-dev/renovate/softprops-action-gh…
Oct 4, 2025
d39126f
chore: zig version 0.15.1 for tip builds
Oct 4, 2025
3807a97
Merge pull request #99 from pkgforge-dev/feature/zig_version
Oct 4, 2025
74e3c0a
chore(deps): update softprops/action-gh-release action to v2.3.4
renovate[bot] Oct 3, 2025
0ed16e4
fix: handle zig versions :X
Oct 5, 2025
b6a35ae
Merge pull request #100 from pkgforge-dev/feature/zig_version
Oct 5, 2025
bb599d7
fix: zig symlink
Oct 5, 2025
3d96beb
Merge pull request #101 from pkgforge-dev/feature/zig_version
Oct 5, 2025
2d990e4
add `gdk-pixbuf2-mini`
Samueru-sama Oct 7, 2025
79cff38
Merge pull request #103 from Samueru-sama/patch-3
Oct 8, 2025
9ad1234
chore(deps): update softprops/action-gh-release action to v2.4.0
renovate[bot] Oct 8, 2025
8698b21
Merge pull request #102 from pkgforge-dev/renovate/softprops-action-g…
Oct 9, 2025
3b89e4a
release: v1.2.2
Oct 9, 2025
99d8fbb
Merge pull request #104 from pkgforge-dev/v1.2.2
Oct 9, 2025
98e5a30
chore: restructure project
Oct 11, 2025
033829e
Merge pull request #105 from pkgforge-dev/feature/restructure
Oct 11, 2025
6e290cc
chore(deps): update softprops/action-gh-release action to v2.4.1
renovate[bot] Oct 11, 2025
8a49437
Merge pull request #106 from pkgforge-dev/renovate/softprops-action-g…
Oct 11, 2025
26ec9ac
fix: ensure proper version gets cascaded to the appimage bundle
Oct 12, 2025
cc789be
Update ci.yaml
Oct 16, 2025
39e4432
release: v1.2.3
Oct 26, 2025
2fd860c
Merge pull request #109 from pkgforge-dev/release/v1.2.3
Oct 26, 2025
61993ce
chore(deps): update actions/download-artifact action to v6
renovate[bot] Oct 26, 2025
c877726
Merge pull request #107 from pkgforge-dev/renovate/actions-download-a…
Oct 27, 2025
652c92c
Merge pull request #112 from Samueru-sama/patch-4
Samueru-sama Nov 8, 2025
101fb07
chore(deps): update softprops/action-gh-release action to v2.4.2 (#113)
renovate[bot] Nov 9, 2025
521f47d
fix: typo in readme, url for manual install (#120)
Dec 13, 2025
cb5f7b7
update graphical installation instructions (#123)
Samueru-sama Feb 26, 2026
f105d3b
Enhance note visibility for prerequisites
psadi Feb 27, 2026
06226bc
release: v1.3.0 (#128)
psadi Mar 10, 2026
2b458ba
fix: pickup zig version from the package (#129)
psadi Mar 10, 2026
2176ecd
release: v1.3.1 (#131)
psadi Mar 13, 2026
31cf990
chore(deps): update softprops/action-gh-release action to v2.6.1 (#132)
renovate[bot] Mar 17, 2026
0932164
fix(ci): revert the original tip build logic for nightly releases (#134)
psadi Mar 19, 2026
faf0340
chore(deps): update softprops/action-gh-release action to v2.6.2 (#135)
renovate[bot] Apr 12, 2026
60e3ce9
chore(deps): update softprops/action-gh-release action to v3 (#136)
renovate[bot] Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 28 additions & 20 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
image: ghcr.io/pkgforge-dev/archlinux:latest
steps:
- name: Checkout ghostty-appimage
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
persist-credentials: false

Expand All @@ -55,27 +55,24 @@ jobs:
- name: Setup build environment
run: |
if [ "${{ github.event_name }}" == "schedule" ]; then
ZIG_VERSION=0.14.0
else
ZIG_VERSION=0.13.0
echo "tip" > VERSION
fi
./bin/setup-env.sh

sed -i "s/#ZIG_VERSION/${ZIG_VERSION}/g" setup.sh
./setup.sh
- name: Build Ghostty
run: |
./bin/build-ghostty.sh

- name: Build Ghostty AppImage
- name: Bundle AppImage
run: |
if [ "${{ github.event_name }}" == "schedule" ]; then
echo "tip" > VERSION
fi
./build.sh
./bin/bundle-appimage.sh

- name: Upload AppImage Artifacts
uses: actions/upload-artifact@v4
with:
name: ghostty-appimage-${{ matrix.arch }}
retention-days: 7
path: /tmp/ghostty-build/Ghostty-*-${{ matrix.arch }}.AppImage*
path: dist

tag:
name: "👻 Tip Tag"
Expand All @@ -88,12 +85,23 @@ jobs:
needs:
- build_appimage
steps:
- uses: actions/checkout@v4 # zizmor: ignore[artipacked]
- name: Tip Tag
- uses: actions/checkout@v5 # zizmor: ignore[artipacked]

- name: Clean-up Old Release Assets
run: |
gh release view tip --json assets --jq '.assets[].name' | while read -r asset; do
if [ -n "$asset" ]; then
gh release delete-asset tip "${asset}" -y
fi
done
env:
GH_TOKEN: ${{ github.token }}

- name: Create 'tip' tag
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git tag -fa tip -m "Latest Continuous Release" ${GITHUB_SHA}
git tag -fa tip -m "Latest Continuous Release" "${GITHUB_SHA}"
git push --force origin tip

release_stable:
Expand All @@ -106,11 +114,11 @@ jobs:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'release' }}
steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v6
with:
name: ghostty-appimage-aarch64

- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v6
with:
name: ghostty-appimage-x86_64

Expand All @@ -134,16 +142,16 @@ jobs:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v6
with:
name: ghostty-appimage-aarch64

- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v6
with:
name: ghostty-appimage-x86_64

- name: Ghostty Tip ("Nightly")
uses: softprops/action-gh-release@v2.2.1
uses: softprops/action-gh-release@v3.0.0
with:
name: '👻 Ghostty Tip ("Nightly")'
prerelease: true
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,10 @@ Sessionx.vim
tags
# Persistent undo
[._]*.un~

AppDir
ghostty-*
quick-sharun
uruntime2appimage
dist
appinfo
31 changes: 14 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Run the following commands in your terminal:

```bash
# Download the latest AppImage package from releases
wget https://github.com/pkgforge-dev/ghostty-appimage/releases/download/${VERSION}/Ghostty-${VERSION}-${ARCH}.AppImage
wget https://github.com/pkgforge-dev/ghostty-appimage/releases/download/v${VERSION}/Ghostty-${VERSION}-${ARCH}.AppImage

# Make the AppImage executable
chmod +x Ghostty-${VERSION}-${ARCH}.AppImage
Expand Down Expand Up @@ -110,25 +110,26 @@ _Note: Ensure you have the necessary permissions to run these commands. For more
<details>
<summary><b>Graphical (Automatic)</b></summary>

Ghostty AppImage can easily be managed using graphical tools such as [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher) and [Gear Lever](https://github.com/mijorus/gearlever).
Ghostty AppImage can easily be managed using graphical tools such as [AppManager](https://github.com/kem-a/AppManager) and [Gear Lever](https://github.com/mijorus/gearlever).

1. **Using [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher)**

For detailed instructions, please refer to the [AppImageLauncher documentation](https://docs.appimage.org/user-guide/run-appimages.html#appimagelauncher).

> **🛈 NOTE**
>
> With the launch of AppImageLauncher **v3.0.0**, you have to use the alpha pre-releases as the stable release doesn't work with the static runtime
>
> For more information please refer the [discussion](https://github.com/TheAssassin/AppImageLauncher/discussions/687) and the [comment](https://github.com/TheAssassin/AppImageLauncher/discussions/687#discussioncomment-12181060)
1. **Using [AppManager](https://github.com/kem-a/AppManager)**
- Download the latest AppImage package from the [releases](https://github.com/pkgforge-dev/ghostty-appimage/releases) section.
- Simply drag and drop the files from your file manager into the AppManager application.
- Follow the on-screen instructions to configure the setup as a one-time installation process.

2. **Using [Gear Lever](https://github.com/mijorus/gearlever)**

- Download the latest AppImage package from the [releases](https://github.com/pkgforge-dev/ghostty-appimage/releases) section.
- Simply drag and drop the files from your file manager into the Gear Lever application.
- Follow the on-screen instructions to configure the setup as a one-time installation process.

_Note: Ensure the necessary prerequsites are satisfied for these applications. For more detailed usage, refer to the documentation of each tool_
> **🛈 NOTE**
> Ensure the necessary prerequsites are satisfied for these applications. For more detailed usage, refer to the documentation of each tool

> **🛈 NOTE**
Gearlever does not support delta updates with zsync and you may need to give it the URL to update manually.

> **🛈 NOTE**
Gearlever does not have official AppImage releases. You can use [this one](https://github.com/pkgforge-dev/Gear-Lever-AppImage) however.

</details>

Expand All @@ -152,10 +153,6 @@ Since AppImages are self-contained executables, there is no formal installation

</details>

## 🛠️ Troubleshooting

Refer [TROUBLESHOOTING.md](./TROUBLESHOOTING.md) file

## 🤝 Contributing

Contributions & Bugfixes are welcome. If you like to contribute, please feel free to fork the repository and submit a pull request.
Expand Down
20 changes: 0 additions & 20 deletions TROUBLESHOOTING.md

This file was deleted.

2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.1.3
1.3.1
68 changes: 0 additions & 68 deletions assets/ghostty.appdata.xml

This file was deleted.

22 changes: 0 additions & 22 deletions assets/ghostty.desktop

This file was deleted.

64 changes: 64 additions & 0 deletions bin/build-ghostty.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#!/bin/sh

set -eux

ARCH="$(uname -m)"
GHOSTTY_VERSION="$(cat VERSION)"
PUB_KEY="RWQlAjJC23149WL2sEpT/l0QKy7hMIFhYdQOFy0Z7z7PbneUgvlsnYcV"

rm -rf AppDir dist ghostty-*

BUILD_ARGS="
-Dcpu=baseline \
-Doptimize=ReleaseFast \
-Dpie=true \
--system /tmp/offline-cache/p \
-Dgtk-wayland=true \
-Dgtk-x11=true \
-Demit-docs=false \
-Dstrip=true"

if [ "${GHOSTTY_VERSION}" = "tip" ]; then
export UPINFO="gh-releases-zsync|$(echo "${GITHUB_REPOSITORY}" | tr '/' '|')|tip|Ghostty-*$ARCH.AppImage.zsync"
wget "https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz" -O "ghostty-${GHOSTTY_VERSION}.tar.gz"
wget "https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz.minisig" -O "ghostty-${GHOSTTY_VERSION}.tar.gz.minisig"
GHOSTTY_VERSION="$(tar -tf "ghostty-${GHOSTTY_VERSION}.tar.gz" --wildcards "*zig.zon.txt" | awk -F'[-/]' '{print $2"-"$3}')"
echo "${GHOSTTY_VERSION}" >VERSION
mv ghostty-tip.tar.gz "ghostty-${GHOSTTY_VERSION}.tar.gz"
mv ghostty-tip.tar.gz.minisig "ghostty-${GHOSTTY_VERSION}.tar.gz.minisig"
else
wget "https://release.files.ghostty.org/${GHOSTTY_VERSION}/ghostty-${GHOSTTY_VERSION}.tar.gz"
wget "https://release.files.ghostty.org/${GHOSTTY_VERSION}/ghostty-${GHOSTTY_VERSION}.tar.gz.minisig"
fi

minisign -V -m "ghostty-${GHOSTTY_VERSION}.tar.gz" -P "${PUB_KEY}" -s "ghostty-${GHOSTTY_VERSION}.tar.gz.minisig"

tar -xzmf "ghostty-${GHOSTTY_VERSION}.tar.gz"

rm "ghostty-${GHOSTTY_VERSION}.tar.gz" \
"ghostty-${GHOSTTY_VERSION}.tar.gz.minisig"

BUILD_ARGS="${BUILD_ARGS} -Dversion-string=${GHOSTTY_VERSION}"

# Configure Zig: https://ziglang.org
ZIG_VERSION="$(cat "ghostty-${GHOSTTY_VERSION}/build.zig.zon" | grep ".minimum_zig_version" | cut -d'"' -f2)"
CURRENT_ZIG_VERSION=$(zig version 2>/dev/null || true)
if [ "$CURRENT_ZIG_VERSION" != "$ZIG_VERSION" ]; then
echo "Installing Zig ${ZIG_VERSION}..."
ZIG_PACKAGE_NAME="zig-${ARCH}-linux-${ZIG_VERSION}"
ZIG_URL="https://ziglang.org/download/${ZIG_VERSION}/${ZIG_PACKAGE_NAME}.tar.xz"
rm -rf /opt/zig*
unlink /usr/local/bin/zig || true
wget "${ZIG_URL}" -O /tmp/zig-linux.tar.xz
tar -xJf /tmp/zig-linux.tar.xz -C /opt
ln -s "/opt/${ZIG_PACKAGE_NAME}/zig" /usr/local/bin/zig
echo "Zig ${ZIG_VERSION} installed successfully"
else
echo "Zig ${ZIG_VERSION} is already installed, skipping installation"
fi

(
cd "ghostty-${GHOSTTY_VERSION}"
ZIG_GLOBAL_CACHE_DIR=/tmp/offline-cache ./nix/build-support/fetch-zig-cache.sh
zig build ${BUILD_ARGS}
)
21 changes: 21 additions & 0 deletions bin/bundle-appimage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/sh

set -eux

ARCH="$(uname -m)"
GHOSTTY_VERSION="$(cat VERSION)"

export UPINFO="gh-releases-zsync|$(echo "${GITHUB_REPOSITORY}" | tr '/' '|')|latest|Ghostty-*$ARCH.AppImage.zsync"
export URUNTIME_PRELOAD=1
export DEPLOY_OPENGL=1
export EXEC_WRAPPER=1
export OUTNAME="Ghostty-${GHOSTTY_VERSION}-${ARCH}.AppImage"
export DESKTOP="./ghostty-${GHOSTTY_VERSION}/zig-out/share/applications/com.mitchellh.ghostty.desktop"
export ICON="./ghostty-${GHOSTTY_VERSION}/zig-out/share/icons/hicolor/256x256/apps/com.mitchellh.ghostty.png"

./quick-sharun ./ghostty-${GHOSTTY_VERSION}/zig-out/bin/ghostty
cp -rf ./ghostty-${GHOSTTY_VERSION}/zig-out/share/* ./AppDir/share/
./quick-sharun --make-appimage

mkdir -p ./dist
mv -v ./*.AppImage* ./dist
Loading