{ description = "Ghostty AppImage"; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; }; outputs = { self, nixpkgs }: let # actual versions upstreamVersion = "1.2.0"; appimageVersion = "v1.2.0+1"; # tip is harder to get to, and looks like this: # upstreamVersion = "1.1.4-main+b58a761"; # appimageVersion = "tip"; exename = "ghostty"; mkGhostty = system: let pkgs = import nixpkgs { inherit system; }; arch = if system == "x86_64-linux" then "x86_64" else "aarch64"; appimagename = "Ghostty-${upstreamVersion}-${arch}.AppImage"; in pkgs.stdenv.mkDerivation { pname = "ghostty"; version = appimageVersion; src = pkgs.fetchurl { # temporary fix for nvidia proprietary drivers # See https://github.com/pkgforge-dev/ghostty-appimage/pull/95 # url = if system == "x86_64-linux" then # "https://git.lerch.org/api/packages/lobo/generic/ghostty-appimage/1.2.0/Ghostty-1.2.0-x86_64.AppImage" # else # "https://git.lerch.org/api/packages/lobo/generic/ghostty-appimage/1.2.0/Ghostty-1.2.0-aarch64.AppImage"; url = "https://github.com/psadi/ghostty-appimage/releases/download/${appimageVersion}/${appimagename}"; hash = if system == "x86_64-linux" then "sha256-E78tVBzSfoc+xZ2HKy0gAmmCwSxI+idIvZrg9wsJ4rc=" else "sha256-3j7yGUCkvGErlYTS6njkuoSaqgKtFvNZ4/RWlx3B7Fc="; }; nativeBuildInputs = [ pkgs.makeWrapper ]; buildInputs = [ pkgs.appimage-run ]; dontUnpack = true; installPhase = '' mkdir -p $out/bin $out/share/applications # We do this so that nix won't try to do it's wrapper stuff needed for nix os cp $src $out/share/${exename} chmod +x $out/share/${exename} cat > $out/share/applications/Ghostty.desktop <