110 lines
3.4 KiB
YAML
110 lines
3.4 KiB
YAML
---
|
|
- 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) }}"
|