Distribution-agnostic provisioning script that sets up a new Linux machine (Detected via lib/distro.sh - supports Debian/Ubuntu/Pop and Fedora families). 13 stages covering: - System packages, external repos, toolchains (nvm, uv, Python) - Shell config (zsh, oh-my-zsh, p10k), git, SSH - Custom uv tools from ~40 git repos - Desktop config (keybindings, hotkeys, ghostty, fonts) - Docker, system tweaks, browser/app installs - Custom systemd user services (porridge, swayidle, mempi-sync, etc.) - API keys loaded from Bitwarden at shell startup
59 lines
2.4 KiB
Bash
59 lines
2.4 KiB
Bash
#!/usr/bin/env bash
|
|
# ===========================================================================
|
|
# Stage 12: Other Applications
|
|
# Depends on: stage 01 (repos), stage 02 (packages)
|
|
# Chrome, Signal, Zotero, Obsidian, Nextcloud client, FreeRDP.
|
|
# Distro-agnostic — uses pkg_install / Flatpak / tarball.
|
|
# ===========================================================================
|
|
|
|
# ---- Google Chrome ----
|
|
info "Installing Google Chrome..."
|
|
pkg_install google-chrome-stable 2>/dev/null && ok "Chrome installed." \
|
|
|| warn "Chrome not available. Install from https://www.google.com/chrome/"
|
|
|
|
# ---- Signal Desktop ----
|
|
info "Installing Signal Desktop..."
|
|
pkg_install signal-desktop 2>/dev/null && ok "Signal installed." \
|
|
|| warn "Signal not available. Check repo in stage 01."
|
|
|
|
# ---- Zotero (reference manager) ----
|
|
info "Installing Zotero..."
|
|
if command -v zotero &>/dev/null || flatpak list 2>/dev/null | grep -qi "zotero"; then
|
|
ok "Zotero already installed."
|
|
elif command -v flatpak &>/dev/null; then
|
|
flatpak install -y flathub org.zotero.Zotero 2>/dev/null && ok "Zotero installed via Flatpak." \
|
|
|| warn "Zotero Flatpak failed. Try manual tarball from zotero.org."
|
|
else
|
|
warn "Zotero not installed. Get it from https://www.zotero.org/download/"
|
|
fi
|
|
|
|
# ---- Obsidian (knowledge base) ----
|
|
info "Installing Obsidian..."
|
|
if command -v obsidian &>/dev/null || flatpak list 2>/dev/null | grep -qi "obsidian"; then
|
|
ok "Obsidian already installed."
|
|
elif command -v flatpak &>/dev/null; then
|
|
flatpak install -y flathub md.obsidian.Obsidian 2>/dev/null && ok "Obsidian installed." \
|
|
|| warn "Obsidian Flatpak failed. Download from https://obsidian.md/"
|
|
else
|
|
warn "Obsidian not installed."
|
|
fi
|
|
|
|
# ---- Nextcloud Desktop Client ----
|
|
info "Installing Nextcloud Desktop Client..."
|
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
|
pkg_install nextcloud-desktop 2>/dev/null && ok "Nextcloud client installed." || \
|
|
warn "Nextcloud client not available."
|
|
else
|
|
pkg_install nextcloud-client 2>/dev/null && ok "Nextcloud client installed." || \
|
|
warn "Nextcloud client not available."
|
|
fi
|
|
|
|
# ---- FreeRDP (for WinBoat RDP) ----
|
|
info "Installing FreeRDP (Flatpak)..."
|
|
if command -v flatpak &>/dev/null; then
|
|
flatpak install -y flathub com.freerdp.FreeRDP 2>/dev/null && ok "FreeRDP installed." \
|
|
|| warn "FreeRDP Flatpak failed."
|
|
fi
|
|
|
|
ok "Stage 12 complete: additional applications installed."
|