#⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⡠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ #⠀⣀⣠⡤⣀⣀⡀⠀⠀⠀⠑⡀⠈⠂⡠⣠⠊⠀⢀⠜⠀⠀⠀⠀⣀⣀⠀⠀⠀⠀⠀ #⠈⢿⣭⡍⠩⠉⠄⢛⡲⠤⣀⠸⣄⣿⣿⣿⣷⣴⣡⠤⣒⠩⠝⢩⡙⠫⠝⠛⣶ #⠀⠀⠉⢖⠒⠒⠒⠀⠐⠚⠷⣺⣇⠀⠀⠀⠋⣿⠿⣗⣀⡉⠉⠩⣭⣤⣽⠿⠋⠀ #⠀⠀⠀⠈⠓⠠⠤⠬⠷⠖⢋⡽⣿⣷⢄⣸⣼⣿⣍⠓⠥⢍⣶⣤⡍⠔⠂⠀⠀⠀ #⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⢩⣾⣿⣛⢟⠿⢿⣷⡌⠱⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ #⠀⠀⠀⠀⠀⠀⠀⠂⠉⠰⡟⣯⣍⠙⠛⠛⢛⣿⣗⡄⠈⠀⠃⠀⠀⠀⠀⠀⠀⠀⠀ #⠀⠀⠀⠀⠀⠀⠀⠀⠀⠿⠁⣯⣙⠛⠿⠟⢻⣿⠛⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ #⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠀⠘⢿⡻⠿⠾⣻⠏⠀⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ #⠀⠀⠀⠀⠀⠀⠀⠀⠀⠜⠀⠀⠀⠉⠙⠋⠁⠀⠀⠘⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ # 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