diff --git a/arch_sway.yml b/arch_sway.yml new file mode 100644 index 0000000..7c2d832 --- /dev/null +++ b/arch_sway.yml @@ -0,0 +1,160 @@ +--- +- name: Initial installation of WSL arch + hosts: localhost,all + become: yes + + pre_tasks: + - name: Run the equivalent of "pacman -Syu" as a separate step + community.general.pacman: + update_cache: yes + upgrade: yes + - name: Install packages + community.general.pacman: + name: sudo,htop,base-devel,git + state: present + - name: Make sure we have a 'wheel' group + group: + name: wheel + state: present + - name: Allow 'wheel' group to have passwordless sudo + lineinfile: + dest: /etc/sudoers + state: present + regexp: '^%wheel' + line: '%wheel ALL=(ALL) NOPASSWD: ALL' + - name: Add the user tobi + ansible.builtin.user: + name: tobi + password: $6$jUZIIwoMDSg8B3OJ$tRKNJe.YHLVQRkbRSvmPJqE4lFUBVKKDxy.K688SW.gUP8VdfrkUeIIa7XqI8ovpncoZlt5VbGk7WxMKBCS191 + comment: Tobias Maier + groups: wheel,video + shell: /bin/zsh + - name: Add name to git config + community.general.git_config: + name: user.name + scope: global + value: Tobias Maier + - name: Add email to git config + community.general.git_config: + name: user.email + scope: global + value: git@maiertobi.de + - name: Create the `aur_builder` user + ansible.builtin.user: + name: aur_builder + create_home: yes + group: wheel + - name: Allow the `aur_builder` user to run `sudo pacman` without a password + ansible.builtin.lineinfile: + path: /etc/sudoers.d/11-install-aur_builder + line: 'aur_builder ALL=(ALL) NOPASSWD: /usr/bin/pacman' + create: yes + validate: 'visudo -cf %s' + + - name: Add number of CPUs to MAKEPKG + ansible.builtin.lineinfile: + path: /etc/makepkg.conf + line: 'MAKEFLAGS="-j$(nproc)"' + create: yes + - name: Install paru using makepkg if it isn't installed already + kewlfft.aur.aur: + name: paru + use: makepkg + state: present + become: yes + become_user: aur_builder + - name: Install ZSH-GIT and reflector from AUR + community.general.pacman: + name: zsh-git,reflector + state: present + executable: paru + become: yes + become_user: aur_builder + + - name: Run reflector to update mirrorlist + ansible.builtin.command: reflector --latest 20 --sort rate --save /etc/pacman.d/mirrorlist + + - name: Install packages from AUR + community.general.pacman: + name: zsh-git,oh-my-zsh-git,zsh-theme-powerlevel10k-git,zsh-autosuggestions,zsh-syntax-highlighting,nano,ly,ansible,openssh + state: present + executable: paru + become: yes + become_user: aur_builder + + - name: Install Sway stuff + community.general.pacman: + name: sway,foot,foot-terminfo,waybar,ttf-font-awesome,sway-launcher-desktop,pipewire,pipewire-pulse,bluez,bluez-utils,firefox,archlinux-wallpaper,iwd,btop,light,wob-git,udiskie,ranger,mako,micro,man,wdisplays,swayidle,swaylock-effects-git,pamixer,qt5-wayland + state: present + executable: paru + become: yes + become_user: aur_builder + + - name: Add WLR_RENDERER_ALLOW_SOFTWARE to /etc/environment, needed for testing in VM + ansible.builtin.lineinfile: + path: /etc/environment + regexp: '^WLR_RENDERER_ALLOW_SOFTWARE=' + line: WLR_RENDERER_ALLOW_SOFTWARE=1 + - name: Clone dotfiles + ansible.builtin.git: + repo: https://gitea.maiertobi.de/tobimai/dotfiles.git + dest: /home/tobi/git/dotfiles + + + - name: Ensures directories exist + ansible.builtin.file: + path: /home/tobi/{{ item }} + state: directory + group: tobi + owner: tobi + mode: '0744' + loop: + - .config/sway + - .config/foot + - .config/waybar + - .config/mako + - git + - name: Copy ZSH dotfiles + copy: + src: //home/tobi/git/dotfiles/{{ item.src }} + dest: /home/tobi/{{ item.dest }} + remote_src: yes + with_items: + - { src: '.zshrc', dest: '.zshrc' } + - { src: '.p10k.zsh', dest: '.p10k.zsh' } + + + - name: Copy config files + copy: + src: //home/tobi/git/dotfiles/{{ item.src }} + dest: /home/tobi/.config/{{ item.dest }} + remote_src: yes + owner: tobi + group: tobi + with_items: + - { src: 'sway_config', dest: 'sway/config' } + - { src: 'foot.ini', dest: 'foot/foot.ini' } + - { src: 'waybar/waybar.config', dest: 'waybar/config' } + - { src: 'waybar/style.css', dest: 'waybar/style.css' } + - { src: 'mako.config', dest: 'mako/config' } + + + - name: Enable services + ansible.builtin.service: + name: "{{ item }}" + enabled: yes + with_items: + - ly + - iwd + + - name: Install More apps + community.general.pacman: + name: visual-studio-code-bin,cargo,python,nextcloud-client + state: present + executable: paru + become: yes + become_user: aur_builder + + - name: reboot + reboot: +