Files
my_sway_konfig/sway_config_deploy.yml
2025-12-17 18:10:08 +01:00

152 lines
5.5 KiB
YAML

- name: Deploy Sway Configuration
hosts: localhost
connection: local
become: true
vars:
target_user: jonnybravo
tasks:
- name: Install required packages for Arch Linux
tags: install_packages
community.general.pacman:
name:
- sway
- waybar
- wofi
- alacritty
- swaylock
- swayidle
- mako
- kanshi
- wl-clipboard
- brightnessctl
- grim
- slurp
- playerctl
- qalculate-gtk
- tmux
- rclone
- pacman-contrib
- udisks2
- udiskie
- mpd
- ncmpcpp
- ttf-dejavu
- otf-font-awesome
- papirus-icon-theme
- nwg-look
state: present
- name: Check if yay is installed
ansible.builtin.command: "which yay"
register: yay_check
changed_when: false
ignore_errors: true
- name: Install AUR packages with yay
ansible.builtin.command: "yay -S --noconfirm tty-clock catppuccin-gtk-theme-mocha"
when: yay_check.rc == 0
become: true
become_user: "{{ target_user }}"
- name: Add user to storage group
ansible.builtin.user:
name: "{{ target_user }}"
groups: storage
append: true
notify:
- Reboot required for group changes
- name: Create required directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{ target_user }}"
group: "{{ target_user }}"
mode: '0755'
loop:
- "/home/{{ target_user }}/.config/sway"
- "/home/{{ target_user }}/.config/sway/scripts"
- "/home/{{ target_user }}/.config/waybar"
- "/home/{{ target_user }}/.config/mako"
- "/home/{{ target_user }}/.config/wofi"
- "/home/{{ target_user }}/.config/alacritty"
- "/home/{{ target_user }}/.config/kanshi"
- "/home/{{ target_user }}/.config/rclone"
- "/home/{{ target_user }}/.config/systemd/user"
- "/home/{{ target_user }}/.config/mpd"
- "/home/{{ target_user }}/.config/ncmpcpp"
- name: Copy configuration files
ansible.builtin.copy:
src: "{{ playbook_dir }}/{{ item.src }}"
dest: "/home/{{ target_user }}/{{ item.dest }}"
owner: "{{ target_user }}"
group: "{{ target_user }}"
mode: '0644'
loop:
- { src: 'config/sway/config', dest: '.config/sway/config' }
- { src: 'config/waybar/config', dest: '.config/waybar/config' }
- { src: 'config/waybar/style.css', dest: '.config/waybar/style.css' }
- { src: 'config/mako/config', dest: '.config/mako/config' }
- { src: 'config/wofi/config', dest: '.config/wofi/config' }
- { src: 'config/alacritty/alacritty.toml', dest: '.config/alacritty/alacritty.toml' }
- { src: 'config/alacritty/alacritty.yml', dest: '.config/alacritty/alacritty.yml' }
- { src: 'config/alacritty/catppuccin-mocha.toml', dest: '.config/alacritty/catppuccin-mocha.toml' }
- { src: 'config/kanshi/config', dest: '.config/kanshi/config' }
- { src: 'config/rclone/rclone.conf', dest: '.config/rclone/rclone.conf' }
- { src: '.tmux.conf', dest: '.tmux.conf' }
- { src: 'config/systemd/user/rclone-sync.service', dest: '.config/systemd/user/rclone-sync.service' }
- { src: 'config/systemd/user/rclone-sync.timer', dest: '.config/systemd/user/rclone-sync.timer' }
- { src: 'config/mpd/mpd.conf', dest: '.config/mpd/mpd.conf' }
- { src: 'config/ncmpcpp', dest: '.config/ncmpcpp' }
- { src: 'config/systemd/user/mpd.service', dest: '.config/systemd/user/mpd.service' }
- name: Copy background image
ansible.builtin.copy:
src: "{{ playbook_dir }}/media/wallpapersden.com_astronaut-with-jellyfish_2560x1440.jpg"
dest: "/home/{{ target_user }}/Bilder/wallpapersden.com_astronaut-with-jellyfish_2560x1440.jpg"
owner: "{{ target_user }}"
group: "{{ target_user }}"
mode: '0644'
- name: Copy and make waybar scripts executable
ansible.builtin.copy:
src: "{{ playbook_dir }}/config/waybar/{{ item }}"
dest: "/home/{{ target_user }}/.config/waybar/{{ item }}"
owner: "{{ target_user }}"
group: "{{ target_user }}"
mode: '0755'
loop:
- "updates.sh"
- "vpn-status.sh"
- "rclone-status.sh"
- name: Copy and make sway scripts executable
ansible.builtin.copy:
src: "{{ playbook_dir }}/config/sway/scripts/auto-bluetooth.sh"
dest: "/home/{{ target_user }}/.config/sway/scripts/auto-bluetooth.sh"
owner: "{{ target_user }}"
group: "{{ target_user }}"
mode: '0755'
- name: Reload systemd daemon for the target user
ansible.builtin.command: "systemctl --user daemon-reload"
become: true
become_user: "{{ target_user }}"
- name: Enable and start the rclone timer for the target user
ansible.builtin.command: "systemctl --user enable --now rclone-sync.timer"
become: true
become_user: "{{ target_user }}"
- name: Enable and start mpd service for the target user
ansible.builtin.command: "systemctl --user enable --now mpd.service"
become: true
become_user: "{{ target_user }}"
handlers:
- name: Reboot required for group changes
ansible.builtin.debug:
msg: "User '{{ target_user }}' was added to the 'storage' group. A reboot or re-login is required for changes to take effect."