diff --git a/ansible/inventory/group_vars/desktop.yml b/ansible/inventory/group_vars/desktop.yml index d2a6413..69d2baf 100644 --- a/ansible/inventory/group_vars/desktop.yml +++ b/ansible/inventory/group_vars/desktop.yml @@ -137,3 +137,6 @@ desktop_flatpak_packages: - io.github.flattool.Warehouse - org.telegram.desktop - sh.loft.devpod + +desktop_flatpak_extensions: + - org.gtk.Gtk3theme.Yaru-Blue-dark diff --git a/ansible/roles/profile_desktop_i3/tasks/main.yml b/ansible/roles/profile_desktop_i3/tasks/main.yml index 91c321c..ac179f1 100644 --- a/ansible/roles/profile_desktop_i3/tasks/main.yml +++ b/ansible/roles/profile_desktop_i3/tasks/main.yml @@ -273,6 +273,42 @@ method: system when: (desktop_flatpak_packages | default([])) | length > 0 +- name: Gather Flatpak runtime branches for extensions + ansible.builtin.shell: >- + flatpak list --runtime --columns=application,branch --system + | awk '$1 == "org.gnome.Platform" || $1 == "org.freedesktop.Platform" { print $2 }' + | sort -u + register: desktop_flatpak_runtime_branches + changed_when: false + when: + - (desktop_flatpak_packages | default([])) | length > 0 + - (desktop_flatpak_extensions | default([])) | length > 0 + +- name: Build Flatpak extension refs for active runtimes + ansible.builtin.set_fact: + desktop_flatpak_extension_refs: >- + {{ + (desktop_flatpak_extensions | default([])) + | product(desktop_flatpak_runtime_branches.stdout_lines | default([])) + | map('join', '//') + | list + }} + when: + - (desktop_flatpak_packages | default([])) | length > 0 + - (desktop_flatpak_extensions | default([])) | length > 0 + +- name: Install Flatpak extensions for active runtimes + community.general.flatpak: + name: "{{ item }}" + state: present + remote: "{{ desktop_flatpak_remote_name | default('flathub') }}" + method: system + loop: "{{ desktop_flatpak_extension_refs | default([]) }}" + when: + - (desktop_flatpak_packages | default([])) | length > 0 + - (desktop_flatpak_extensions | default([])) | length > 0 + - item | length > 0 + - name: Set desktop external tool release metadata ansible.builtin.set_fact: desktop_tools_tmp_dir: /tmp/desktop-tools diff --git a/dotfiles/desktop/.config/i3/scripts/setup-gtk-theme.sh b/dotfiles/desktop/.config/i3/scripts/setup-gtk-theme.sh index 0d02825..995105e 100755 --- a/dotfiles/desktop/.config/i3/scripts/setup-gtk-theme.sh +++ b/dotfiles/desktop/.config/i3/scripts/setup-gtk-theme.sh @@ -35,3 +35,10 @@ EOF export GTK_THEME=$THEME export XCURSOR_THEME=$CURSOR export XCURSOR_SIZE=24 + +if command -v gsettings >/dev/null 2>&1; then + gsettings set org.gnome.desktop.interface gtk-theme "$THEME" >/dev/null 2>&1 || true + gsettings set org.gnome.desktop.interface icon-theme "$ICONS" >/dev/null 2>&1 || true + gsettings set org.gnome.desktop.interface cursor-theme "$CURSOR" >/dev/null 2>&1 || true + gsettings set org.gnome.desktop.interface color-scheme prefer-dark >/dev/null 2>&1 || true +fi