Install GitHub Desktop on Arch Linux

This GitHub Desktop build has no AUR package yet, so on Arch Linux (and Arch-based distros such as Manjaro and EndeavourOS) you run the AppImage. It needs fuse2 from the official repositories and a one-time launcher for sign-in. The steps below install GitHub Desktop 3.6.10.

AUR packages vs this build

Every GitHub Desktop package in the AUR repackages shiftkey/desktop, not this build:

  • github-desktop (3.4.14-2) builds from source at shiftkey's release-3.4.14-linux1 tag.
  • github-desktop-bin (3.4.13_linux1) repackages shiftkey's 3.4.13 release.
  • github-desktop-git builds from shiftkey's git repository.

None of them follows upstream past 3.4.14. For the current GitHub Desktop (3.6.10) on Arch, use this build's AppImage as shown below. Comparison: this build vs shiftkey.

This build is not tested on Arch. Arch has a current glibc and enables user namespaces, so the AppImage is expected to run; please report anything that breaks.

Packages the AppImage needs on Arch

A full desktop install usually has these already. On a minimal setup, install them with pacman:

shell
sudo pacman -S --needed fuse2 gtk3 nss libnotify libsecret mesa libdrm at-spi2-core libxcb xdg-utils alsa-lib curl

For sign-in you also need a Secret Service keyring, for example gnome-keyring (unlocked at login) or KeePassXC with Secret Service enabled. Window managers without a session keyring are the most common cause of "signed out after restart".

How to install the GitHub Desktop AppImage on Arch Linux

  1. 01Install FUSE 2

    AppImages mount themselves with FUSE 2. Install it, or run the AppImage with --appimage-extract-and-run instead.

    shell
    sudo pacman -S --needed fuse2
  2. 02Download the AppImage and its checksum

    Download GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage and its .sha256 file into ~/Applications.

    shell
    mkdir -p ~/Applications && cd ~/Applications
    wget https://github.com/yehudah/desktop/releases/download/release-3.6.10-linux1/GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage \
         https://github.com/yehudah/desktop/releases/download/release-3.6.10-linux1/GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage.sha256
  3. 03Verify the download

    Check the file against its SHA-256 checksum. The command must print OK.

    shell
    sha256sum -c GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage.sha256
  4. 04Make it executable and run it

    Mark the AppImage as executable and start it.

    shell
    chmod +x GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage
    ./GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage
  5. 05Register the sign-in handler

    Create a desktop launcher that handles x-github-client:// links, so the browser can hand the sign-in back to GitHub Desktop. AppImageLauncher or Gear Lever can do this for you instead.

    shell
    mkdir -p ~/.local/share/applications
    cat > ~/.local/share/applications/github-desktop-appimage.desktop <<EOF
    [Desktop Entry]
    Type=Application
    Name=GitHub Desktop
    Exec=$HOME/Applications/GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage %U
    Terminal=false
    Categories=Development;RevisionControl;
    MimeType=x-scheme-handler/x-github-client;x-scheme-handler/x-github-desktop-dev-auth;
    EOF
    update-desktop-database ~/.local/share/applications
    xdg-mime default github-desktop-appimage.desktop x-scheme-handler/x-github-client

No FUSE? Run the AppImage with --appimage-extract-and-run instead. It unpacks to a temporary folder on each start, which is slower but needs nothing installed.

Sign in to GitHub with the AppImage

Sign-in opens your browser, and GitHub sends you back through an x-github-client:// link. A bare AppImage has not told your desktop that it handles those links, so without step 5 the browser redirect does nothing. Instead of writing the launcher by hand, you can let an integration tool do it:

  • AppImageLauncher integrates an AppImage the first time you open it.
  • Gear Lever (available on Flathub) manages AppImages and their launchers.

Either way, keep the AppImage where the tool put it: moving it breaks the launcher. Then check which launcher handles the sign-in link:

shell
xdg-mime query default x-scheme-handler/x-github-client

It should print your AppImage launcher (github-desktop-appimage.desktop if you followed step 5). The AppImage link handler has been checked by launching it, not yet by a full sign-in; if sign-in still fails, the .deb is the tested route where you can use it.

The app also needs a running, unlocked keyring that implements the Secret Service API, such as GNOME Keyring or KeePassXC with Secret Service enabled, to store your sign-in token.

Update or remove the AppImage

To update, download the new AppImage, make it executable and point the launcher's Exec= line at the new file. To remove it, delete the AppImage and ~/.local/share/applications/github-desktop-appimage.desktop. Settings live in ~/.config/GitHub Desktop.