- name: Check if Flatpak is installed ansible.builtin.command: which flatpak register: flatpak_check changed_when: false failed_when: false - name: Install Flatpak ansible.builtin.package: name: flatpak state: present become: true when: flatpak_check.rc != 0 - 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: Define system desired Flatpaks ansible.builtin.set_fact: desired_system_flatpaks: # GNOME Software - org.gnome.Extensions - org.gnome.Weather - org.gnome.Sudoku # Games - io.github.openhv.OpenHV - net.lutris.Lutris - info.beyondallreason.bar - org.godotengine.Godot - dev.bragefuglseth.Keypunch - org.prismlauncher.PrismLauncher # Multimedia - com.spotify.Client - com.plexamp.Plexamp - tv.plex.PlexDesktop - io.bassi.Amberol # Utilities - org.fkoehler.KTailctl - de.haeckerfelix.AudioSharing - com.usebottles.bottles - com.github.tchx84.Flatseal - com.github.wwmm.easyeffects - org.onlyoffice.desktopeditors - io.gitlab.adhami3310.Impression - io.ente.auth - io.github.fastrizwaan.WineZGUI - net.davidotek.pupgui2 - com.mastermindzh.tidal-hifi - io.github.flattool.Warehouse - io.github.nokse22.Exhibit - net.nokyan.Resources - dev.zed.Zed - page.tesk.Refine - io.github.flattool.Ignition - io.github.bytezz.IPLookup - org.gaphor.Gaphor - name: Define system desired Flatpak remotes ansible.builtin.set_fact: desired_system_flatpak_remotes: - flathub - name: Add desired system Flatpak remotes community.general.flatpak_remote: name: "{{ item }}" state: present method: system loop: "{{ desired_system_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/Upgrade Flatpak packages community.general.flatpak: name: "{{ item }}" state: present method: system loop: "{{ desired_system_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) }}"