#!/bin/bash # Shared logging helpers — source this in every module GREEN="\e[32m" YELLOW="\e[33m" RED="\e[31m" RESET="\e[0m" log() { printf "${GREEN}[+] %s${RESET}\n" "$*"; } skip() { printf "${YELLOW}[~] %s${RESET}\n" "$*"; } warn() { printf "${YELLOW}[!] %s${RESET}\n" "$*" >&2; } err() { printf "${RED}[✖] %s${RESET}\n" "$*" >&2; } ensure_flatpak() { if ! command -v flatpak &>/dev/null; then log "Installing flatpak..." sudo pacman -S --noconfirm --needed flatpak fi if ! flatpak remotes 2>/dev/null | grep -q flathub; then log "Adding Flathub remote..." flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo fi } apply_flatpak_theme() { local app_id="$1" local theme_name="cyberqueer" local theme_src="$HOME/Dotfiles/gtk-themes/$theme_name" local themes_dir="$HOME/.themes" if [[ ! -d "$theme_src" ]]; then warn "Cyberqueer theme not found at $theme_src — skipping Flatpak theme override." return 0 fi mkdir -p "$themes_dir" cp -r "$theme_src" "$themes_dir/$theme_name" flatpak override --user --filesystem="$themes_dir":ro "$app_id" flatpak override --user --env=GTK_THEME="$theme_name" "$app_id" log "Cyberqueer theme applied to $app_id." }