152 lines
5.5 KiB
YAML
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." |