Skip to content

Instantly share code, notes, and snippets.

@svin24
Created December 7, 2025 08:05
Show Gist options
  • Select an option

  • Save svin24/4ff2b5c492f9b98933547e8f0d420dfd to your computer and use it in GitHub Desktop.

Select an option

Save svin24/4ff2b5c492f9b98933547e8f0d420dfd to your computer and use it in GitHub Desktop.
A local zen install script in case you don't like using flatpak browsers.
#!/usr/bin/env bash
set -euo pipefail
INSTALL_DIR="$HOME/.local/zen"
BIN_DIR="$HOME/.local/bin"
DESKTOP_FILE="$HOME/.local/share/applications/zen.desktop"
ICON_DIR="$HOME/.local/share/icons/hicolor/128x128/apps"
echo "Installing/Updating Zen Browser → $INSTALL_DIR"
echo
# Create installation directories
mkdir -p "$INSTALL_DIR" "$BIN_DIR" "$HOME/.local/share/applications" "$ICON_DIR"
# Download/Extract/Cleanup
echo "Downloading latest Zen Browser..."
curl -L "https://github.com/zen-browser/desktop/releases/latest/download/zen.linux-x86_64.tar.xz" \
--fail --show-error --progress-bar -o /tmp/zen-latest.tar.xz
echo "Extracting archive..."
tar -xf /tmp/zen-latest.tar.xz -C "$INSTALL_DIR" --strip-components=1
rm -f /tmp/zen-latest.tar.xz
# Make zen command available
ln -sf "$INSTALL_DIR/zen" "$BIN_DIR/zen"
# Install icon and Create icon cache
cp "$INSTALL_DIR/browser/chrome/icons/default/default128.png" "$ICON_DIR/zen.png"
gtk-update-icon-cache "$HOME/.local/share/icons/hicolor" 2>/dev/null || true
update-icon-caches "$HOME/.local/share/icons" 2>/dev/null || true
# Create .desktop file and refresh desktop file database
cat > "$DESKTOP_FILE" << 'EOF'
[Desktop Entry]
Name=Zen Browser
Comment=Experience tranquillity while browsing the web without people tracking you!
Exec=zen %u
Icon=zen
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
StartupWMClass=zen
Categories=Network;WebBrowser;
StartupNotify=true
Terminal=false
X-MultipleArgs=false
Keywords=Internet;WWW;Browser;Web;Explorer;
Actions=new-window;new-private-window;profilemanager;
[Desktop Action new-window]
Name=Open a New Window
Exec=zen %u
[Desktop Action new-private-window]
Name=Open a New Private Window
Exec=zen --private-window %u
[Desktop Action profilemanager]
Name=Open the Profile Manager
Exec=zen --ProfileManager %u
EOF
chmod +x "$DESKTOP_FILE"
update-desktop-database "$HOME/.local/share/applications" 2>/dev/null || true
echo
echo "Zen Browser is ready!"
echo "Launch with: zen (or from your app menu)"
echo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment