#!/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."