dots/play.yml
2024-07-29 22:43:23 +03:00

192 lines
4.9 KiB
YAML

#⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⡠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
#⠀⣀⣠⡤⣀⣀⡀⠀⠀⠀⠑⡀⠈⠂⡠⣠⠊⠀⢀⠜⠀⠀⠀⠀⣀⣀⠀⠀⠀⠀⠀
#⠈⢿⣭⡍⠩⠉⠄⢛⡲⠤⣀⠸⣄⣿⣿⣿⣷⣴⣡⠤⣒⠩⠝⢩⡙⠫⠝⠛⣶
#⠀⠀⠉⢖⠒⠒⠒⠀⠐⠚⠷⣺⣇⠀⠀⠀⠋⣿⠿⣗⣀⡉⠉⠩⣭⣤⣽⠿⠋⠀
#⠀⠀⠀⠈⠓⠠⠤⠬⠷⠖⢋⡽⣿⣷⢄⣸⣼⣿⣍⠓⠥⢍⣶⣤⡍⠔⠂⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⢩⣾⣿⣛⢟⠿⢿⣷⡌⠱⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⠂⠉⠰⡟⣯⣍⠙⠛⠛⢛⣿⣗⡄⠈⠀⠃⠀⠀⠀⠀⠀⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⠀⠀⠿⠁⣯⣙⠛⠿⠟⢻⣿⠛⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠀⠘⢿⡻⠿⠾⣻⠏⠀⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⠀⠀⠜⠀⠀⠀⠉⠙⠋⠁⠀⠀⠘⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
# This file should be distributed elsewhere.
# Once you're in your arch system (with networking!), `wget` this file and run
# ansible-galaxy collection install community.general
# ansible-galaxy collection install kewlfft.aur
# ansible-playbook -K play.yml
- name: Install My System (holy shit!)
hosts: localhost
tasks:
- name: Gather the package facts
ansible.builtin.package_facts:
manager: auto
- name: Create user group
ansible.builtin.group:
name: sophie
state: present
become: yes
- name: Create user
ansible.builtin.user:
name: sophie
create_home: yes
groups: sophie
append: yes
state: present
become: yes
- name: Install sudo
community.general.pacman:
name:
- sudo
state: present
become: yes
- name: Give user sophie max sudoers
community.general.sudoers:
name: main-user
state: present
user: sophie
runas: ALL
commands: ALL
become: yes
- name: Install yay prerequisites
community.general.pacman:
name:
- make
- gcc
- fakeroot
state: present
become: yes
- name: Install yay using makepkg if it isn't installed already
kewlfft.aur.aur:
name: yay
use: makepkg
state: present
become: yes
become_user: sophie
- name: Install stow
community.general.pacman:
name:
- stow
state: present
become: yes
- name: Clone my dotfiles
ansible.builtin.git:
repo: 'https://git.sad.ovh/sophie/dots.git'
dest: /home/sophie/.shell
become: yes
become_user: sophie
- name: Upgrade the system using yay
kewlfft.aur.aur:
upgrade: yes
use: yay
become: yes
become_user: sophie
- name: Run stow
ansible.builtin.shell: "stow . --target=/home/sophie/ --verbose=2"
args:
chdir: /home/sophie/.shell/src
register: result
changed_when: 'result.stderr is search("LINK: ")'
become: yes
become_user: sophie
- name: Install everything
kewlfft.aur.aur:
use: yay
name: "{{ item }}"
state: present
extra_args: "--needed"
loop:
- sdbus-cpp
- python-gpgme
- pkgconfig
- patch
- flex
- bison
- which
- pipewire
- wireplumber
- pipewire-pulse
- pipewire-alsa
- pipewire-jack
- qpwgraph
- hyprland
- xdg-desktop-portal-hyprland-git
- polkit-kde-agent
- aylurs-gtk-shell
- foot
- nushell
- wl-clipboard
- slurp
- grim
- rofi-lbonn-wayland-git
- swww
- thunar
- gvfs
- gvfs-smb
- spotify
- spicetify-cli
- ttf-jetbrains-mono-nerd
- vencord-desktop-git
- vivaldi
- wps-office
- ttf-wps-fonts
- visual-studio-code-bin
- pipes.sh
- fastfetch
- network-manager-applet
- lemurs
- syncthing
become: yes
become_user: sophie
- name: Create .bash_profile
ansible.builtin.file:
path: /home/sophie/.bash_profile
state: touch
modification_time: preserve
access_time: preserve
become: yes
become_user: sophie
- name: Enable lemurs
ansible.builtin.systemd:
name: lemurs
enabled: true
become: yes
- name: Create lemurs wayland dir
ansible.builtin.file:
path: /etc/lemurs/wayland/
state: directory
become: yes
- name: Create auto hyprland login
ansible.builtin.file:
path: /etc/lemurs/wayland/hyprland
state: touch
modification_time: preserve
access_time: preserve
mode: a+x
become: yes
- name: Write auto-hyprland login
ansible.builtin.blockinfile:
path: /etc/lemurs/wayland/hyprland
block: |
#! /bin/sh
exec Hyprland
become: yes
- name: Set GTK interface theme
ansible.builtin.shell: "gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Latte-Standard-Pink-Light'"
become: yes
become_user: sophie