From 9d4dd83660706719542ecd0f7cc738a4584c19fd Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Mon, 16 Mar 2026 22:29:02 +0100 Subject: [PATCH] Refactor desktop dotfile copy into configurable list --- ansible/inventory/group_vars/desktop.yml | 42 ++++++++++ .../roles/profile_desktop_i3/tasks/main.yml | 83 ++----------------- 2 files changed, 49 insertions(+), 76 deletions(-) diff --git a/ansible/inventory/group_vars/desktop.yml b/ansible/inventory/group_vars/desktop.yml index 97ba749..69be30d 100644 --- a/ansible/inventory/group_vars/desktop.yml +++ b/ansible/inventory/group_vars/desktop.yml @@ -34,6 +34,48 @@ profile_packages: - yaru - yaru-plus +desktop_dotfiles: + - name: i3 config + src: .config/i3/ + dest: .config/i3/ + mode: preserve + - name: i3blocks config + src: .config/i3blocks/ + dest: .config/i3blocks/ + mode: preserve + - name: dunst config + src: .config/dunst/ + dest: .config/dunst/ + mode: preserve + - name: alacritty config + src: .config/alacritty/ + dest: .config/alacritty/ + mode: preserve + - name: Thunar config + src: .config/Thunar/ + dest: .config/Thunar/ + mode: preserve + - name: rofi config + src: .config/rofi/ + dest: .config/rofi/ + mode: preserve + - name: .xinitrc + src: .xinitrc + dest: .xinitrc + mode: "0644" + - name: .gitconfig + src: .gitconfig + dest: .gitconfig + mode: "0644" + - name: .gitignore_global + src: .gitignore_global + dest: .gitignore_global + mode: "0644" + - name: .themes.gitignore + src: .themes.gitignore + dest: .themes.gitignore + mode: "0644" + desktop_flatpak_packages: - ch.protonmail.protonmail-bridge - com.calibre_ebook.calibre diff --git a/ansible/roles/profile_desktop_i3/tasks/main.yml b/ansible/roles/profile_desktop_i3/tasks/main.yml index 472b2b9..2ae52a9 100644 --- a/ansible/roles/profile_desktop_i3/tasks/main.yml +++ b/ansible/roles/profile_desktop_i3/tasks/main.yml @@ -29,85 +29,16 @@ line: "session optional pam_gnome_keyring.so auto_start" state: present -- name: Copy i3 config +- name: Copy desktop dotfiles ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.config/i3/" - dest: "{{ user_home }}/.config/i3/" + src: "{{ playbook_dir }}/../dotfiles/desktop/{{ item.src }}" + dest: "{{ user_home }}/{{ item.dest }}" owner: "{{ username }}" group: "{{ user_group }}" - mode: preserve - -- name: Copy i3blocks config - ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.config/i3blocks/" - dest: "{{ user_home }}/.config/i3blocks/" - owner: "{{ username }}" - group: "{{ user_group }}" - mode: preserve - -- name: Copy dunst config - ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.config/dunst/" - dest: "{{ user_home }}/.config/dunst/" - owner: "{{ username }}" - group: "{{ user_group }}" - mode: preserve - -- name: Copy alacritty config - ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.config/alacritty/" - dest: "{{ user_home }}/.config/alacritty/" - owner: "{{ username }}" - group: "{{ user_group }}" - mode: preserve - -- name: Copy Thunar config - ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.config/Thunar/" - dest: "{{ user_home }}/.config/Thunar/" - owner: "{{ username }}" - group: "{{ user_group }}" - mode: preserve - -- name: Copy rofi config - ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.config/rofi/" - dest: "{{ user_home }}/.config/rofi/" - owner: "{{ username }}" - group: "{{ user_group }}" - mode: preserve - -- name: Copy .xinitrc - ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.xinitrc" - dest: "{{ user_home }}/.xinitrc" - owner: "{{ username }}" - group: "{{ user_group }}" - mode: "0644" - -- name: Copy .gitconfig - ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.gitconfig" - dest: "{{ user_home }}/.gitconfig" - owner: "{{ username }}" - group: "{{ user_group }}" - mode: "0644" - -- name: Copy .gitignore_global - ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.gitignore_global" - dest: "{{ user_home }}/.gitignore_global" - owner: "{{ username }}" - group: "{{ user_group }}" - mode: "0644" - -- name: Copy .themes.gitignore - ansible.builtin.copy: - src: "{{ playbook_dir }}/../dotfiles/desktop/.themes.gitignore" - dest: "{{ user_home }}/.themes.gitignore" - owner: "{{ username }}" - group: "{{ user_group }}" - mode: "0644" + mode: "{{ item.mode }}" + loop: "{{ desktop_dotfiles | default([]) }}" + loop_control: + label: "{{ item.dest }}" - name: Ensure .gnupg directory exists ansible.builtin.file: