Dotfiles/setup/modules/optional-Modules/apps
Amir Alexander Abdelbaki dd1cd2b8c7 feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme
Policy change: graphical apps now prefer Flatpak > pacman > AUR. Non-graphical
tools keep pacman > AUR > source. This makes installed apps sandboxed, keeps
system packages clean, and gives us a single hook point (apply_flatpak_theme)
to theme every GUI app consistently.

lib/logging.sh — two new helper functions sourced by every module:

  ensure_flatpak()
    Checks if flatpak is installed (pacman installs it if not) and ensures the
    Flathub remote is registered. Called at the top of every Flatpak script so
    the module is self-contained and safe to run in any order.

  apply_flatpak_theme(app_id)
    Copies gtk-themes/cyberqueer/ from the Dotfiles repo into ~/.themes/, then
    calls `flatpak override --user --filesystem=~/.themes:ro <id>` so the
    sandbox can read it, and `flatpak override --user --env=GTK_THEME=cyberqueer
    <id>` to activate it. Gracefully skips with a warning if the theme source
    directory is absent.

App scripts converted (pacman/AUR → Flatpak + theme):
  ardour       org.ardour.Ardour
  audacity     org.audacityteam.Audacity
  chromium     org.chromium.Chromium
  firefox      org.mozilla.firefox
  geany        org.geany.Geany
  gimp         org.gimp.GIMP
  inkscape     org.inkscape.Inkscape
  kate         org.kde.kate
  kdenlive     org.kde.kdenlive
  krita        org.kde.krita
  librewolf    io.gitlab.librewolf-community.librewolf
  lmms         io.lmms.LMMS
  localsend    org.localsend.localsend
  min-browser  com.github.minbrowser.min
  mixxx        org.mixxx.Mixxx
  onlyoffice   org.onlyoffice.desktopeditors
  openshot     org.openshot.OpenShot
  rdp-client   org.remmina.Remmina  (was pacman remmina + freerdp + libvncserver;
               Flatpak bundles all protocols, including VNC and SSH tunnels)
  shotcut      org.shotcut.Shotcut
  steam        com.valvesoftware.Steam
  vscodium     com.vscodium.codium
  wireshark    org.wireshark.Wireshark
  xournal      com.github.xournalpp.xournalpp
  zed          dev.zed.Zed
  zen-browser  io.github.zen_browser.zen

Special cases:

  blender-povray: Blender → Flatpak (org.blender.Blender) + theme; POV-Ray
    stays pacman because it has no Flatpak and is a CLI renderer, not a GUI app.

  prismlauncher / stuntrally: were already Flatpak installs; added
    apply_flatpak_theme so they pick up the cyberqueer theme like everything else.

  vesktop: switched from AUR vesktop to Flatpak dev.vencord.Vesktop. The AUR
    build requires cargo and takes several minutes; the Flatpak is pre-built.
    Vencord config is now deployed to ~/.var/app/dev.vencord.Vesktop/config/
    (both Vencord/ and vesktop/ sub-dirs) instead of ~/.config/, which is where
    the Flatpak sandbox exposes its config directory.

  k8s: kubectl stays pacman (it is a CLI tool with no GUI, no Flatpak needed);
    podman-desktop switches from pacman podman-desktop to Flatpak
    io.podman_desktop.PodmanDesktop + theme, because it is a full GUI app.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 10:19:06 +02:00
..
anti-malware.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
ardour.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
audacity.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
blender-povray.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
butter.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
caldav-sync.sh fix(caldav): write per-calendar khal config instead of broken glob 2026-05-26 14:40:37 +02:00
cecilia.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
chromium.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
claude.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
cockpit.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
codeblocks.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
croc.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
db-clients.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
disk-recovery.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
docker.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
doom.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
ffmpeg.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
firefox.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
freeipa-client.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
freeipa-image-builder.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
freeipa-server.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
geany.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
gimp.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
gnuplot.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
himalaya.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
imagemagick.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
inkscape.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
k8s.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
kate.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
kdenlive.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
krita.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
lamco-rdp-server.sh fix(installer): fix FIDO2 user login and AUR module failures 2026-05-22 04:06:49 +02:00
librewolf.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
llama-cpp.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
lmms.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
localsend.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
localtunnel.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
mail-notmuch.sh feat(mail): install w3m and write mailcap for HTML email rendering 2026-05-26 16:07:54 +02:00
min-browser.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
mixxx.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
mysql.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
networking-cli.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
nyxt.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
ollama.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
onlyoffice.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
open-webui.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
openarena.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
openshot.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
podman.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
prismlauncher.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
productivity.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
qemu.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
rdp-client.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
sauerbraten.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
shotcut.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
sox.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
spotify.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
ssh-server.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
steam.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
stuntrally.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
tetris.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
timeshift.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
tlp.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
toot.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
vesktop.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
vintagestory.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
vscodium.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
wireshark.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
xournal.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
yt-dlp.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
zed.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
zen-browser.sh feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00