--- - 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' if (ansible_facts.env.XDG_CURRENT_DESKTOP is defined and 'GNOME' in ansible_facts.env.XDG_CURRENT_DESKTOP) else omit }}" - "{{ 'org.gnome.Weather' if (ansible_facts.env.XDG_CURRENT_DESKTOP is defined and 'GNOME' in ansible_facts.env.XDG_CURRENT_DESKTOP) else omit }}" - "{{ 'org.gnome.Sudoku' if (ansible_facts.env.XDG_CURRENT_DESKTOP is defined and 'GNOME' in ansible_facts.env.XDG_CURRENT_DESKTOP) else omit }}" # 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 # Messaging - org.telegram.desktop - org.signal.Signal - com.rtosta.zapzap - io.github.equicord.equibop # Utilities - io.gitlab.elescoute.spacelaunch - org.fkoehler.KTailctl - 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.johannesboehler2.BmiCalculator - io.github.nokse22.Exhibit - net.nokyan.Resources - 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 | reject('equalto', omit) | list }}" - name: Remove undesired system Flatpaks community.general.flatpak: name: "{{ item }}" state: absent method: system loop: "{{ installed_system_flatpaks.stdout_lines | difference(desired_system_flatpaks | reject('equalto', omit) | list) }}"