--- - name: "Laptop installation & configuration" hosts: all connection: local tasks: - name: Install Helix (text editor) become: true pacman: name: helix state: present - name: Install Fd (alternative to find) become: true pacman: name: fd state: present - name: Install Python become: true pacman: name: python state: present - name: Install Julia become: true pacman: name: julia state: present - name: Install Ruby become: true pacman: name: ruby state: present - name: Install Composer (PHP package manager) become: true pacman: name: composer state: present - name: Install Luarocks (Lua package manager) become: true pacman: name: luarocks state: present - name: Install Wget (HTTP client) become: true pacman: name: wget state: present - name: Set the keyboard keymap become: true command: localectl set-keymap us - name: Set the keyboard layout become: true command: localectl set-x11-keymap us pc105 euro --no-convert compose:ralt - name: Install Pulsemixer (Pulseaudio Terminal UI) become: true pacman: name: pulsemixer state: present - name: Install Bluez (Bluetooth management) become: true pacman: name: bluez state: present - name: Install Bluez Utils (Bluetooth utilities) become: true pacman: name: bluez-utils state: present - name: Install Bluetuith (Bluetooth Terminal UI) become: true kewlfft.aur.aur: name: bluetuith state: present update_cache: true - name: Install i3lock-fancy (window locker) become: true kewlfft.aur.aur: name: i3lock-fancy state: present update_cache: true - name: Install Playerctl (control media playing on the device) become: true pacman: name: playerctl state: present - name: Install Evince (PDF viewer & editor) become: true pacman: name: evince state: present - name: Install Noto Fonts Emoji (for emojis support) become: true pacman: name: noto-fonts-emoji state: present - name: Setup Fonts synchronize: src: fontconfig dest: /$HOME/.config - name: Install JMTPFS (for accessing MTP devices) kewlfft.aur.aur: name: jmtpfs state: present update_cache: true - name: Install Unzip (uncompression utility) become: true pacman: name: unzip state: present - name: Install Zip (compression utility) become: true pacman: name: zip state: present - name: Install Xdotool (X11 command-line utility) become: true pacman: name: xdotool state: present - name: Install Mesa (graphics driver) become: true pacman: name: mesa state: present - name: Install Xorg AMDGPU (AMD graphics driver for Xorg) become: true pacman: name: xf86-video-amdgpu state: present - name: Install Vulkan Radeon (Vulkan for AMDGPU) become: true pacman: name: vulkan-radeon state: present - name: Install Libva Mesa (accelerated video decoding driver) become: true pacman: name: libva-mesa-driver state: present - name: Install Radeon Top (graphics monitoring) become: true pacman: name: radeontop state: present - name: Install Mesa Vdpau (accelerated video decoding driver) become: true pacman: name: mesa-vdpau state: present - name: Install rsync (file synchronizer) become: true pacman: name: rsync state: present - name: Install Pulseaudio (sound system) become: true pacman: name: pulseaudio state: present - name: Install Pulseaudio Systray (system tray volume control) become: true pacman: name: pasystray state: present - name: Install ACPID (Power manager) become: true pacman: name: acpid state: present - name: Start ACPID service become: true service: enabled: true name: acpid state: started - name: Install Xorg Backlight (brightness manager) become: true pacman: name: xorg-xbacklight state: present - name: Install Flameshot (screenshot utility) become: true pacman: name: flameshot state: present - name: Install Rofi (application switcher) become: true pacman: name: rofi state: present - name: Install Rofi Emoji (emoji selector for Rofi) become: true pacman: name: rofi-emoji state: present - name: Install Rbw (Bitwarden CLI) become: true pacman: name: rbw state: present # - name: Install Rofi Bitwarden (Bitwarden client for Rofi) # kewlfft.aur.aur: # name: rofi-rbw # state: present # update_cache: yes - name: Setup Rofi synchronize: src: rofi dest: /$HOME/.config - name: Install Notification Daemon become: true pacman: name: notification-daemon state: present - name: Setup Notification Daemon become: true synchronize: src: notification/notification.service dest: /usr/share/dbus-1/services/org.freedesktop.Notification.service - name: Install Xorg (X11 server) become: true pacman: name: xorg-server state: present - name: Install Xorg Xinput (input devices manager) become: true pacman: name: xorg-xinput state: present - name: Install Xorg Xinit (Xorg startup script) become: true pacman: name: xorg-xinit state: present - name: Setup Xorg Xinit synchronize: src: xinit/xinitrc dest: /$HOME/.xinitrc - name: Install i3-gaps (window manager) become: true pacman: name: i3-gaps state: present - name: Install dmenu become: true pacman: name: dmenu state: present - name: Install Network Manager (Wi-Fi & ethernet manager) become: true pacman: name: networkmanager state: present - name: Start Bluetooth service become: true service: enabled: true name: bluetooth state: started - name: Start Network Manager service become: true service: enabled: true name: NetworkManager state: started - name: Install Network Manager Applet (Network Manager i3status icon) become: true pacman: name: network-manager-applet state: present - name: Install Node.js become: true pacman: name: nodejs state: present - name: Install custom i3status dependencies npm: path: /$HOME/.config/i3/i3status state: present - name: Setup i3 Window Manager synchronize: src: i3 dest: /$HOME/.config - name: Install Tokei (line of code counter) become: true pacman: name: tokei state: present - name: Install Chromium (web browser) become: true pacman: name: chromium state: present - name: Install bottom (processes visualizer) become: true pacman: name: bottom state: present - name: Install Zathura (command-line PDF viewer) become: true pacman: name: zathura state: present - name: Install Feh (command-line picture viewer) become: true pacman: name: feh state: present - name: Install background synchronize: src: background/background.jpg dest: /$HOME/.local/share/backgrounds/background.jpg - name: Install Chafa (command-line graphics) become: true pacman: name: chafa state: present - name: Install Zoxide (smarter cd command) become: true pacman: name: zoxide state: present - name: Felix (command-line file manager) become: true pacman: name: felix-rs state: present - name: Felix setup synchronize: src: felix dest: /$HOME/.config - name: Dua (disk usage analyzer) become: true pacman: name: dua-cli state: present - name: Install Xset (Xorg configuration manager) become: true pacman: name: xorg-xset state: present - name: Install Bat (replacement for cat) become: true pacman: name: bat state: present - name: Install Exa (replacement for ls) become: true pacman: name: exa state: present - name: Install JetBrains Mono Nerd (IntelliJ font) become: true pacman: name: ttf-jetbrains-mono-nerd state: present - name: Install Alacritty (terminal emulator) become: true pacman: name: alacritty state: present - name: Setup Alacritty synchronize: delete: true src: alacritty dest: /$HOME/.config - name: Install TMUX (terminal multiplexer) become: true pacman: name: tmux state: present - name: Setup TMUX copy: src: tmux/tmux.conf dest: /$HOME/.tmux.conf - name: Install Neovim (command-line text editor) become: true pacman: name: neovim state: present - name: Setup NeoVim for the unprivileged user synchronize: src: nvim dest: /$HOME/.config delete: true - name: Setup NeoVim for the administrator user become: true synchronize: src: nvim dest: /root/.config delete: true - name: Install Neovim package from NPM become: true npm: name: neovim global: true state: present - name: Install Neovim package for Python become: true pacman: name: python-neovim state: present - name: Install Fish (shell) become: true pacman: name: fish state: present - name: Install Helix editor plugin for Vue Language Server become: true pacman: name: vue-language-server state: present - name: Setup Fish synchronize: delete: true src: fish dest: /$HOME/.config - name: Setup OMF synchronize: delete: true src: omf dest: /$HOME/.config - name: Install UFW (firewall) become: true pacman: name: ufw state: present - name: UFW reset all rules become: true ufw: state: reset - name: UFW deny all by default become: true ufw: policy: deny - name: UFW enable become: true ufw: state: enabled - name: UFW service startup become: true service: name: ufw state: restarted