Files
dotfiles/config/ansible/tasks/workstations/flatpaks.yml
2025-02-26 13:23:17 +01:00

149 lines
4.3 KiB
YAML

- name: Add Flathub remote repository
community.general.flatpak_remote:
name: flathub
flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo
state: present
- name: Get list of system installed Flatpaks
ansible.builtin.command: flatpak list --system --app --columns=application
register: installed_system_flatpaks
changed_when: false
- name: Get list of system remotes
ansible.builtin.command: flatpak remote-list --system --columns=name
register: system_remotes
changed_when: false
- name: Get list of user installed Flatpaks
ansible.builtin.command: flatpak list --user --app --columns=application
register: installed_user_flatpaks
changed_when: false
- name: Get list of user remotes
ansible.builtin.command: flatpak remote-list --user --columns=name
register: user_remotes
changed_when: false
- name: Define system desired Flatpaks
ansible.builtin.set_fact:
desired_system_flatpaks:
- org.fkoehler.KTailctl
- org.mozilla.Thunderbird
- com.spotify.Client
- org.gnome.Extensions
- com.endlessnetwork.aqueducts
- com.tomjwatson.Emote
- io.github.openhv.OpenHV
- net.wz2100.wz2100
- com.github.k4zmu2a.spacecadetpinball
- com.usebottles.bottles
- io.github.shiftey.Desktop
- org.fedoraproject.MediaWriter
- com.github.tchx84.Flatseal
- de.haeckerfelix.Shortwave
- io.github.thetumultuousunicornofdarkness.cpu-x
- org.gnome.Crosswords
- com.github.wwmm.easyeffects
- dev.bragefuglseth.Keypunch
- org.onlyoffice.desktopeditors
- com.jeffser.Alpaca
- info.beyondallreason.bar
- io.gitlab.adhami3310.Impression
- org.prismlauncher.PrismLauncher
- com.logseq.Logseq
- io.ente.auth
- org.signal.Signal
- com.mardojai.ForgeSparks
- io.github.fastrizwaan.WineZGUI
- net.davidotek.pupgui2
- tv.plex.PlexDesktop
- com.mastermindzh.tidal-hifi
- io.github.flattool.Warehouse
- net.lutris.Lutris
- com.plexamp.Plexamp
- io.github.nokse22.Exhibit
- net.nokyan.Resources
- dev.zed.Zed
- page.tesk.Refine
- io.github.flattool.Ignition
- io.github.bytezz.IPLookup
- com.github.marhkb.Pods
- io.github.giantpinkrobots.varia
- io.bassi.Amberol
- org.gaphor.Gaphor
- io.github.seadve.Mousai
- name: Define system desired Flatpak remotes
ansible.builtin.set_fact:
desired_system_flatpak_remotes:
- flathub
- fedora
- name: Define user desired Flatpaks
ansible.builtin.set_fact:
desired_user_flatpaks:
- com.discordapp.Discord
- io.github.moonlight_mod.moonlight-installer
- name: Define user desired Flatpak remotes
ansible.builtin.set_fact:
desired_user_flatpak_remotes:
- flathub
- name: Add desired user Flatpak remotes
community.general.flatpak_remote:
name: "{{ item }}"
state: present
method: user
loop: "{{ desired_user_flatpak_remotes }}"
- name: Add desired system Flatpak remotes
community.general.flatpak_remote:
name: "{{ item }}"
state: present
method: system
loop: "{{ desired_system_flatpak_remotes }}"
- name: Remove undesired user Flatpak remotes
community.general.flatpak_remote:
name: "{{ item }}"
state: absent
method: user
loop: "{{ user_remotes.stdout_lines | difference(desired_user_flatpak_remotes) }}"
- name: Remove undesired system Flatpak remotes
community.general.flatpak_remote:
name: "{{ item }}"
state: absent
method: system
loop: "{{ system_remotes.stdout_lines | difference(desired_system_flatpak_remotes) }}"
- name: Install desired user Flatpaks
community.general.flatpak:
name: "{{ item }}"
state: present
method: user
loop: "{{ desired_user_flatpaks }}"
- name: Install/Upgrade Flatpak packages
community.general.flatpak:
name: "{{ item }}"
state: present
method: system
loop: "{{ desired_system_flatpaks }}"
- name: Remove undesired user Flatpaks
community.general.flatpak:
name: "{{ item }}"
state: absent
method: user
loop: "{{ installed_user_flatpaks.stdout_lines | difference(desired_user_flatpaks) }}"
- name: Remove undesired system Flatpaks
community.general.flatpak:
name: "{{ item }}"
state: absent
method: system
loop: "{{ installed_system_flatpaks.stdout_lines | difference(desired_system_flatpaks) }}"