- lib/distro.sh: add DISTRO_CODENAME from VERSION_CODENAME; remove unused REPO_ADD_RPM variable; export DISTRO_CODENAME - stages/01-repos.sh: replace repeated '. /etc/os-release' subshell calls with $DISTRO_CODENAME in Docker and Tailscale repo lines - stages/00-envcheck.sh: combine four mkdir -p calls into one - stages/02-packages.sh: remove identical if/else branches in fd symlink block; both branches were the same command - stages/03-toolchains.sh: set NVM_DIR once before the if/else instead of twice; remove dead commented-out duplicate curl line - stages/04-shell.sh: capture $(date +%Y%m%d) into _bak_date once per backup and reuse in cp and warn to avoid redundant forks - stages/06-scripts.sh: split 'export VAR=$(cmd)' into assignment + export to correctly propagate errors under set -euo pipefail - stages/07-uv-projects.sh: remove unused has_package_json field (always false, never read); fix stage completion message 06 -> 07 - stages/08-systemd.sh: remove mempi-sync.timer (deploy, enable, header comment); deploy mempi-sync.service only - stages/09-desktop.sh: remove duplicate mkdir -p in COSMIC section; remove unused repo_url parameter from install_nerd_font() - stages/12-other-apps.sh: replace manual distro branch for Nextcloud with pkg_install_mapped - config/scripts/bw-load-ssh.sh: split 'export BW_SESSION=$(cat ...)' into assignment + export - config/systemd/mempi-sync.timer: delete file
81 lines
3.3 KiB
Bash
Executable File
81 lines
3.3 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..."
|
|
pkg_install_mapped "nextcloud-desktop" "nextcloud-client" 2>/dev/null && ok "Nextcloud client installed." || \
|
|
warn "Nextcloud client not available."
|
|
|
|
# ---- 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."
|