Files
linux-provisioning/stages/12-other-apps.sh
Julian Prester d53e4692a9 Add desktop autostart and more applications
- stages/09-desktop.sh: new autostart section — copies .desktop files
  for Firefox, Ghostty, Nextcloud, Obsidian, Thunderbird into
  ~/.config/autostart/ so they launch at login
- stages/12-other-apps.sh: add Thunderbird, VirtualBox (Fedora via
  RPM Fusion), Zoom (via Flatpak); fallback Signal to Flatpak
  (no official RPM repo); remove FreeRDP (not needed on Fedora)
2026-06-07 14:34:31 +10:00

86 lines
3.5 KiB
Bash
Executable File

#!/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..."
if pkg_install signal-desktop 2>/dev/null; then
ok "Signal installed via DNF."
elif command -v flatpak &>/dev/null; then
flatpak install -y flathub org.signal.Signal 2>/dev/null && ok "Signal installed via Flatpak." \
|| warn "Signal Flatpak failed. Install from https://signal.org/download/"
else
warn "Signal not installed. Install from https://signal.org/download/"
fi
# ---- 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
# ---- Thunderbird (email client) ----
info "Installing Thunderbird..."
pkg_install thunderbird 2>/dev/null && ok "Thunderbird installed." \
|| warn "Thunderbird not available."
# ---- Oracle VirtualBox (VM manager) ----
info "Installing VirtualBox..."
if [ "$DISTRO_FAMILY" = "fedora" ]; then
# Available from RPM Fusion free
pkg_install VirtualBox 2>/dev/null && ok "VirtualBox installed." \
|| warn "VirtualBox not available. Enable RPM Fusion free in stage 01."
else
warn "VirtualBox not available on Debian via this script. Install manually."
fi
# ---- Zoom (video conferencing) ----
info "Installing Zoom..."
# The zoom wrapper script (~/.local/bin/zoom) is deployed in stage 06.
# The actual Zoom app is best installed via Flatpak.
if command -v zoom &>/dev/null && ! grep -q "wrapper" "$(which zoom)" 2>/dev/null; then
ok "Zoom already installed."
elif command -v flatpak &>/dev/null; then
flatpak install -y flathub us.zoom.Zoom 2>/dev/null && ok "Zoom installed via Flatpak." \
|| warn "Zoom Flatpak failed. Download from https://zoom.us/download"
else
warn "Zoom not installed. Download from https://zoom.us/download"
fi
ok "Stage 12 complete: additional applications installed."