--- # tasks file for fedora_gnome_workstation - name: Ensure GNOME shell extensions are installed ansible.builtin.dnf: name: - gnome-shell-extension-pop-shell state: present become: true - name: Ensure Python psutil is installed for dconf module ansible.builtin.dnf: name: - python3-psutil state: present become: true - name: Enable pop-shell extension community.general.dconf: key: "/org/gnome/shell/enabled-extensions" value: "{{ enabled_extensions + ['pop-shell@system76.com'] }}" state: present vars: enabled_extensions: "{{ lookup('pipe', 'gsettings get org.gnome.shell enabled-extensions') | regex_replace(\"^@as |\\[|\\]|'\", '') | split(', ') | select() | list }}" become: false - name: Ensure gnome-extensions-app is installed ansible.builtin.dnf: name: - gnome-extensions-app state: present become: true - name: Create extensions directory ansible.builtin.file: path: "{{ ansible_env.HOME }}/.local/share/gnome-shell/extensions/clipboard-indicator@tudmotu.com" state: directory mode: "0755" become: false - name: Get GNOME Shell version for extension compatibility ansible.builtin.shell: gnome-shell --version | grep -oP '\d+\.\d+' | head -1 register: gnome_shell_version changed_when: false become: false - name: Download Clipboard Indicator extension metadata ansible.builtin.uri: url: "https://extensions.gnome.org/extension-info/?pk=779&shell_version={{ gnome_shell_version.stdout }}" return_content: true register: extension_info become: false - name: Download Clipboard Indicator extension ansible.builtin.get_url: url: "https://extensions.gnome.org{{ extension_info.json.download_url }}" dest: "/tmp/clipboard-indicator.zip" mode: "0644" become: false - name: Extract Clipboard Indicator extension ansible.builtin.unarchive: src: "/tmp/clipboard-indicator.zip" dest: "{{ ansible_env.HOME }}/.local/share/gnome-shell/extensions/clipboard-indicator@tudmotu.com/" remote_src: true become: false - name: Enable Clipboard Indicator extension community.general.dconf: key: "/org/gnome/shell/enabled-extensions" value: "{{ enabled_extensions + ['clipboard-indicator@tudmotu.com'] }}" state: present vars: enabled_extensions: "{{ lookup('pipe', 'gsettings get org.gnome.shell enabled-extensions') | regex_replace(\"^@as |\\[|\\]|'\", '') | split(', ') | select() | list }}" become: false - name: Create Dash to Dock extensions directory ansible.builtin.file: path: "{{ ansible_env.HOME }}/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com" state: directory mode: "0755" become: false - name: Download Dash to Dock extension metadata ansible.builtin.uri: url: "https://extensions.gnome.org/extension-info/?pk=307&shell_version={{ gnome_shell_version.stdout }}" return_content: true register: dash_to_dock_info become: false - name: Download Dash to Dock extension ansible.builtin.get_url: url: "https://extensions.gnome.org{{ dash_to_dock_info.json.download_url }}" dest: "/tmp/dash-to-dock.zip" mode: "0644" become: false - name: Extract Dash to Dock extension ansible.builtin.unarchive: src: "/tmp/dash-to-dock.zip" dest: "{{ ansible_env.HOME }}/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/" remote_src: true become: false - name: Enable Dash to Dock extension community.general.dconf: key: "/org/gnome/shell/enabled-extensions" value: "{{ enabled_extensions + ['dash-to-dock@micxgx.gmail.com'] }}" state: present vars: enabled_extensions: "{{ lookup('pipe', 'gsettings get org.gnome.shell enabled-extensions') | regex_replace(\"^@as |\\[|\\]|'\", '') | split(', ') | select() | list }}" become: false - name: Create OpenBar extensions directory ansible.builtin.file: path: "{{ ansible_env.HOME }}/.local/share/gnome-shell/extensions/openbar@neuromorph" state: directory mode: "0755" become: false - name: Download OpenBar extension metadata ansible.builtin.uri: url: "https://extensions.gnome.org/extension-info/?pk=6580&shell_version={{ gnome_shell_version.stdout }}" return_content: true register: openbar_info become: false - name: Download OpenBar extension ansible.builtin.get_url: url: "https://extensions.gnome.org{{ openbar_info.json.download_url }}" dest: "/tmp/openbar.zip" mode: "0644" become: false - name: Extract OpenBar extension ansible.builtin.unarchive: src: "/tmp/openbar.zip" dest: "{{ ansible_env.HOME }}/.local/share/gnome-shell/extensions/openbar@neuromorph/" remote_src: true become: false - name: Enable OpenBar extension community.general.dconf: key: "/org/gnome/shell/enabled-extensions" value: "{{ enabled_extensions + ['openbar@neuromorph'] }}" state: present vars: enabled_extensions: "{{ lookup('pipe', 'gsettings get org.gnome.shell enabled-extensions') | regex_replace(\"^@as |\\[|\\]|'\", '') | split(', ') | select() | list }}" become: false # - name: Import OpenBar configuration # ansible.builtin.copy: # src: files/OpenBar.cfg # dest: "{{ ansible_env.HOME }}/.config/openbar/OpenBar.cfg" # mode: '0644' # become: false - name: Ensure flatpak is installed ansible.builtin.dnf: name: - flatpak state: present become: true - name: Add flathub repository community.general.flatpak_remote: name: flathub state: present flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo become: true - name: Install flatpak applications from flathub community.general.flatpak: name: - com.mattjakeman.ExtensionManager - com.github.tchx84.Flatseal - org.gnome.Evolution - org.keepassxc.KeePassXC - com.belmoussaoui.Authenticator - org.gnome.World.Secrets state: present remote: flathub become: true