Files
dotfiles/playbook.yml
T

472 lines
12 KiB
YAML

---
- name: "Laptop installation & configuration"
hosts: all
connection: local
tasks:
- 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 Eza (replacement for ls)
become: true
pacman:
name: eza
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 Ruby for Neovim
become: true
pacman:
name: ruby
state: present
- name: Install Ruby Gem for Neovim
become: true
gem:
name: neovim
state: present
- name: Install Helix editor
become: true
pacman:
name: helix
state: present
- name: Setup Helix editor
synchronize:
src: helix
dest: /$HOME/.config
- 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: Install Ansible Language Server for Helix
become: true
pacman:
name: ansible-language-server
state: present
- name: Install Rust Analyzer for Helix
become: true
pacman:
name: rust-analyzer
state: present
- name: Install HTML language server for Helix
become: true
pacman:
name: vscode-html-languageserver
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