- name: Add Flathub remote repository community.general.flatpak_remote: name: flathub flatpakrepo_url: https://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 - io.github.kukuruzka165.materialgram - 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 - com.discordapp.Discord - io.github.flattool.Ignition - io.github.bytezz.IPLookup - 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 desired system Flatpaks - com.github.marhkb.Pods - io.github.giantpinkrobots.varia - 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) }}"