diff --git a/ansible/laptop.yml b/ansible/laptop.yml new file mode 100644 index 0000000..cf1ba43 --- /dev/null +++ b/ansible/laptop.yml @@ -0,0 +1,21 @@ +--- +- name: "Laptop installation & configuration" + hosts: all + connection: local + vars: + ansible_python_interpreter: auto_silent + gather_facts: false + roles: + - base + - xorg + - i3 + - background + - fish + - fontconfig + - notification + - kitty + - felix + - tmux + - rofi + - neovim + - ufw diff --git a/background/background.jpg b/ansible/roles/background/files/background/background.jpg similarity index 100% rename from background/background.jpg rename to ansible/roles/background/files/background/background.jpg diff --git a/ansible/roles/background/tasks/main.yml b/ansible/roles/background/tasks/main.yml new file mode 100644 index 0000000..662d3e6 --- /dev/null +++ b/ansible/roles/background/tasks/main.yml @@ -0,0 +1,5 @@ +--- +- name: Install background + synchronize: + src: background/background.jpg + dest: /$HOME/.local/share/backgrounds/background.jpg diff --git a/ansible/roles/base/tasks/main.yml b/ansible/roles/base/tasks/main.yml new file mode 100644 index 0000000..7424c9f --- /dev/null +++ b/ansible/roles/base/tasks/main.yml @@ -0,0 +1,245 @@ +--- +- name: Update package manager cache + become: true + pacman: + update_cache: true +- name: Install Eza (alternative to ls) + become: true + pacman: + name: eza + state: present +- name: Install Xclip (clipboard manager for X) + become: true + pacman: + name: xclip + state: present +- name: Install Neofetch (operating system informations logger) + become: true + pacman: + name: neofetch + 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 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 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 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 Flameshot (screenshot utility) + become: true + pacman: + name: flameshot + 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 Node.js + become: true + pacman: + name: nodejs + state: present +- 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 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: Dua (disk usage analyzer) + become: true + pacman: + name: dua-cli + 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 diff --git a/felix/config.yaml b/ansible/roles/felix/files/felix/config.yaml similarity index 100% rename from felix/config.yaml rename to ansible/roles/felix/files/felix/config.yaml diff --git a/ansible/roles/felix/tasks/main.yml b/ansible/roles/felix/tasks/main.yml new file mode 100644 index 0000000..2bb443a --- /dev/null +++ b/ansible/roles/felix/tasks/main.yml @@ -0,0 +1,10 @@ +--- +- name: Felix (command-line file manager) + become: true + pacman: + name: felix-rs + state: present +- name: Felix setup + synchronize: + src: felix + dest: /$HOME/.config diff --git a/fish/conf.d/omf.fish b/ansible/roles/fish/files/fish/conf.d/omf.fish similarity index 100% rename from fish/conf.d/omf.fish rename to ansible/roles/fish/files/fish/conf.d/omf.fish diff --git a/fish/config.fish b/ansible/roles/fish/files/fish/config.fish similarity index 100% rename from fish/config.fish rename to ansible/roles/fish/files/fish/config.fish diff --git a/fish/fish_variables b/ansible/roles/fish/files/fish/fish_variables similarity index 100% rename from fish/fish_variables rename to ansible/roles/fish/files/fish/fish_variables diff --git a/fish/functions/decrease_brightness_by.fish b/ansible/roles/fish/files/fish/functions/decrease_brightness_by.fish similarity index 100% rename from fish/functions/decrease_brightness_by.fish rename to ansible/roles/fish/files/fish/functions/decrease_brightness_by.fish diff --git a/fish/functions/increase_brightness_by.fish b/ansible/roles/fish/files/fish/functions/increase_brightness_by.fish similarity index 100% rename from fish/functions/increase_brightness_by.fish rename to ansible/roles/fish/files/fish/functions/increase_brightness_by.fish diff --git a/fish/functions/set_brightness.fish b/ansible/roles/fish/files/fish/functions/set_brightness.fish similarity index 100% rename from fish/functions/set_brightness.fish rename to ansible/roles/fish/files/fish/functions/set_brightness.fish diff --git a/fish/functions/tmux.fish b/ansible/roles/fish/files/fish/functions/tmux.fish similarity index 100% rename from fish/functions/tmux.fish rename to ansible/roles/fish/files/fish/functions/tmux.fish diff --git a/omf/bundle b/ansible/roles/fish/files/omf/bundle similarity index 100% rename from omf/bundle rename to ansible/roles/fish/files/omf/bundle diff --git a/omf/channel b/ansible/roles/fish/files/omf/channel similarity index 100% rename from omf/channel rename to ansible/roles/fish/files/omf/channel diff --git a/omf/theme b/ansible/roles/fish/files/omf/theme similarity index 100% rename from omf/theme rename to ansible/roles/fish/files/omf/theme diff --git a/ansible/roles/fish/tasks/main.yml b/ansible/roles/fish/tasks/main.yml new file mode 100644 index 0000000..bc79b53 --- /dev/null +++ b/ansible/roles/fish/tasks/main.yml @@ -0,0 +1,16 @@ +--- +- name: Install Fish (shell) + become: true + pacman: + name: fish + state: present +- name: Setup Fish + synchronize: + delete: true + src: fish + dest: /$HOME/.config +- name: Setup OMF + synchronize: + delete: true + src: omf + dest: /$HOME/.config diff --git a/fontconfig/fonts.conf b/ansible/roles/fontconfig/files/fontconfig/fonts.conf similarity index 100% rename from fontconfig/fonts.conf rename to ansible/roles/fontconfig/files/fontconfig/fonts.conf diff --git a/ansible/roles/fontconfig/tasks/main.yml b/ansible/roles/fontconfig/tasks/main.yml new file mode 100644 index 0000000..2df9fa9 --- /dev/null +++ b/ansible/roles/fontconfig/tasks/main.yml @@ -0,0 +1,15 @@ +--- +- name: Install JetBrains Mono Nerd (IntelliJ font) + become: true + pacman: + name: ttf-jetbrains-mono-nerd + 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 diff --git a/i3/config b/ansible/roles/i3/files/i3/config similarity index 100% rename from i3/config rename to ansible/roles/i3/files/i3/config diff --git a/i3/i3status/index.js b/ansible/roles/i3/files/i3/i3status/index.js similarity index 100% rename from i3/i3status/index.js rename to ansible/roles/i3/files/i3/i3status/index.js diff --git a/i3/i3status/package.json b/ansible/roles/i3/files/i3/i3status/package.json similarity index 100% rename from i3/i3status/package.json rename to ansible/roles/i3/files/i3/i3status/package.json diff --git a/ansible/roles/i3/files/i3/i3status/settings.json b/ansible/roles/i3/files/i3/i3status/settings.json new file mode 100644 index 0000000..d7d203e --- /dev/null +++ b/ansible/roles/i3/files/i3/i3status/settings.json @@ -0,0 +1,5 @@ +{ + "weather": { + "appid": "150bbc4bae133cc448cba94e05b66703" + } +} diff --git a/ansible/roles/i3/tasks/main.yml b/ansible/roles/i3/tasks/main.yml new file mode 100644 index 0000000..e8de142 --- /dev/null +++ b/ansible/roles/i3/tasks/main.yml @@ -0,0 +1,25 @@ +--- +- name: Install i3-gaps (window manager) + become: true + pacman: + name: i3-gaps + state: present +- name: Install i3lock-fancy (window locker) + become: true + kewlfft.aur.aur: + name: i3lock-fancy + state: present + update_cache: true +- name: Install Network Manager Applet (Network Manager i3status icon) + become: true + pacman: + name: network-manager-applet + state: present +- name: Setup i3 Window Manager + synchronize: + src: i3 + dest: /$HOME/.config +- name: Install custom i3status dependencies + npm: + path: /$HOME/.config/i3/i3status + state: present diff --git a/kitty/kitty.conf b/ansible/roles/kitty/files/kitty/kitty.conf similarity index 100% rename from kitty/kitty.conf rename to ansible/roles/kitty/files/kitty/kitty.conf diff --git a/ansible/roles/kitty/tasks/main.yml b/ansible/roles/kitty/tasks/main.yml new file mode 100644 index 0000000..b5fd0cb --- /dev/null +++ b/ansible/roles/kitty/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- name: Install Kitty (terminal emulator) + become: true + pacman: + name: kitty + state: present +- name: Setup Kitty + synchronize: + delete: true + src: kitty + dest: /$HOME/.config diff --git a/nvim/init.lua b/ansible/roles/neovim/files/nvim/init.lua similarity index 100% rename from nvim/init.lua rename to ansible/roles/neovim/files/nvim/init.lua diff --git a/nvim/lua/settings/autocommands.lua b/ansible/roles/neovim/files/nvim/lua/settings/autocommands.lua similarity index 100% rename from nvim/lua/settings/autocommands.lua rename to ansible/roles/neovim/files/nvim/lua/settings/autocommands.lua diff --git a/nvim/lua/settings/keymap.lua b/ansible/roles/neovim/files/nvim/lua/settings/keymap.lua similarity index 100% rename from nvim/lua/settings/keymap.lua rename to ansible/roles/neovim/files/nvim/lua/settings/keymap.lua diff --git a/nvim/lua/settings/lazy/init.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/init.lua similarity index 100% rename from nvim/lua/settings/lazy/init.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/init.lua diff --git a/nvim/lua/settings/lazy/plugins/barbar.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/barbar.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/barbar.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/barbar.lua diff --git a/nvim/lua/settings/lazy/plugins/barbecue.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/barbecue.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/barbecue.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/barbecue.lua diff --git a/nvim/lua/settings/lazy/plugins/comment.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/comment.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/comment.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/comment.lua diff --git a/nvim/lua/settings/lazy/plugins/conform.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/conform.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/conform.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/conform.lua diff --git a/nvim/lua/settings/lazy/plugins/dressing.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/dressing.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/dressing.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/dressing.lua diff --git a/nvim/lua/settings/lazy/plugins/icon-picker.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/icon-picker.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/icon-picker.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/icon-picker.lua diff --git a/nvim/lua/settings/lazy/plugins/link-visitor.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/link-visitor.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/link-visitor.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/link-visitor.lua diff --git a/nvim/lua/settings/lazy/plugins/lsp-colors.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/lsp-colors.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/lsp-colors.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/lsp-colors.lua diff --git a/nvim/lua/settings/lazy/plugins/lspkind.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/lspkind.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/lspkind.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/lspkind.lua diff --git a/nvim/lua/settings/lazy/plugins/lualine.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/lualine.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/lualine.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/lualine.lua diff --git a/nvim/lua/settings/lazy/plugins/mason-lspconfig.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/mason-lspconfig.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/mason-lspconfig.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/mason-lspconfig.lua diff --git a/nvim/lua/settings/lazy/plugins/mason-tool-installer.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/mason-tool-installer.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/mason-tool-installer.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/mason-tool-installer.lua diff --git a/nvim/lua/settings/lazy/plugins/mason.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/mason.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/mason.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/mason.lua diff --git a/nvim/lua/settings/lazy/plugins/neogit.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/neogit.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/neogit.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/neogit.lua diff --git a/nvim/lua/settings/lazy/plugins/neoscroll.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/neoscroll.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/neoscroll.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/neoscroll.lua diff --git a/nvim/lua/settings/lazy/plugins/noice.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/noice.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/noice.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/noice.lua diff --git a/nvim/lua/settings/lazy/plugins/nvim-autopairs.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-autopairs.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/nvim-autopairs.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-autopairs.lua diff --git a/nvim/lua/settings/lazy/plugins/nvim-lint.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-lint.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/nvim-lint.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-lint.lua diff --git a/nvim/lua/settings/lazy/plugins/nvim-lspconfig.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-lspconfig.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/nvim-lspconfig.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-lspconfig.lua diff --git a/nvim/lua/settings/lazy/plugins/nvim-notify.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-notify.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/nvim-notify.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-notify.lua diff --git a/nvim/lua/settings/lazy/plugins/nvim-surround.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-surround.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/nvim-surround.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-surround.lua diff --git a/nvim/lua/settings/lazy/plugins/nvim-treesitter.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-treesitter.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/nvim-treesitter.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvim-treesitter.lua diff --git a/nvim/lua/settings/lazy/plugins/nvimcmp.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvimcmp.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/nvimcmp.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvimcmp.lua diff --git a/nvim/lua/settings/lazy/plugins/nvimtree.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvimtree.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/nvimtree.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/nvimtree.lua diff --git a/nvim/lua/settings/lazy/plugins/telescope.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/telescope.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/telescope.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/telescope.lua diff --git a/nvim/lua/settings/lazy/plugins/tokyonight.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/tokyonight.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/tokyonight.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/tokyonight.lua diff --git a/nvim/lua/settings/lazy/plugins/trouble.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/trouble.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/trouble.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/trouble.lua diff --git a/nvim/lua/settings/lazy/plugins/vim-illuminate.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/vim-illuminate.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/vim-illuminate.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/vim-illuminate.lua diff --git a/nvim/lua/settings/lazy/plugins/which-key.lua b/ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/which-key.lua similarity index 100% rename from nvim/lua/settings/lazy/plugins/which-key.lua rename to ansible/roles/neovim/files/nvim/lua/settings/lazy/plugins/which-key.lua diff --git a/nvim/lua/settings/options.lua b/ansible/roles/neovim/files/nvim/lua/settings/options.lua similarity index 100% rename from nvim/lua/settings/options.lua rename to ansible/roles/neovim/files/nvim/lua/settings/options.lua diff --git a/ansible/roles/neovim/tasks/main.yml b/ansible/roles/neovim/tasks/main.yml new file mode 100644 index 0000000..ed12e67 --- /dev/null +++ b/ansible/roles/neovim/tasks/main.yml @@ -0,0 +1,49 @@ +--- +- name: Install Node.js package for Neovim + become: true + npm: + name: neovim + global: true + state: present + path: /usr/local/bin/node_modules +- name: Install Neovim (command-line text editor) + become: true + pacman: + name: neovim + state: present +- name: Install Neovim package for Python + become: true + pacman: + name: python-neovim + state: present +- name: Install TreeSitter CLI for Neovim + become: true + pacman: + name: tree-sitter-cli + state: present +- name: Install Java SDK for Neovim + become: true + pacman: + name: jdk-openjdk + 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: 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 diff --git a/notification/notification.service b/ansible/roles/notification/files/notification/notification.service similarity index 100% rename from notification/notification.service rename to ansible/roles/notification/files/notification/notification.service diff --git a/ansible/roles/notification/tasks/main.yml b/ansible/roles/notification/tasks/main.yml new file mode 100644 index 0000000..0e0ff57 --- /dev/null +++ b/ansible/roles/notification/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- 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 diff --git a/rofi/config.rasi b/ansible/roles/rofi/files/rofi/config.rasi similarity index 100% rename from rofi/config.rasi rename to ansible/roles/rofi/files/rofi/config.rasi diff --git a/ansible/roles/rofi/tasks/main.yml b/ansible/roles/rofi/tasks/main.yml new file mode 100644 index 0000000..0636c67 --- /dev/null +++ b/ansible/roles/rofi/tasks/main.yml @@ -0,0 +1,25 @@ +--- +- 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: true +- name: Setup Rofi + synchronize: + src: rofi + dest: /$HOME/.config diff --git a/tmux/tmux.conf b/ansible/roles/tmux/files/tmux/tmux.conf similarity index 100% rename from tmux/tmux.conf rename to ansible/roles/tmux/files/tmux/tmux.conf diff --git a/ansible/roles/tmux/tasks/main.yml b/ansible/roles/tmux/tasks/main.yml new file mode 100644 index 0000000..46c6dd5 --- /dev/null +++ b/ansible/roles/tmux/tasks/main.yml @@ -0,0 +1,10 @@ +--- +- name: Install TMUX (terminal multiplexer) + become: true + pacman: + name: tmux + state: present +- name: Setup TMUX + copy: + src: tmux/tmux.conf + dest: /$HOME/.tmux.conf diff --git a/ansible/roles/ufw/tasks/main.yml b/ansible/roles/ufw/tasks/main.yml new file mode 100644 index 0000000..7d06295 --- /dev/null +++ b/ansible/roles/ufw/tasks/main.yml @@ -0,0 +1,23 @@ +--- +- 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 diff --git a/xinit/xinitrc b/ansible/roles/xorg/files/xinit/xinitrc similarity index 100% rename from xinit/xinitrc rename to ansible/roles/xorg/files/xinit/xinitrc diff --git a/ansible/roles/xorg/tasks/main.yml b/ansible/roles/xorg/tasks/main.yml new file mode 100644 index 0000000..0a85085 --- /dev/null +++ b/ansible/roles/xorg/tasks/main.yml @@ -0,0 +1,35 @@ +--- +- name: Install Xorg (X11 server) + become: true + pacman: + name: xorg-server + state: present +- name: Install Xset (Xorg configuration manager) + become: true + pacman: + name: xorg-xset + state: present +- name: Install Xorg AMDGPU (AMD graphics driver for Xorg) + become: true + pacman: + name: xf86-video-amdgpu + state: present +- name: Install Xorg Backlight (brightness manager) + become: true + pacman: + name: xorg-xbacklight + 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 diff --git a/helix/config.toml b/helix/config.toml deleted file mode 100644 index 3d862ad..0000000 --- a/helix/config.toml +++ /dev/null @@ -1,21 +0,0 @@ -theme = "gruvbox" - -[editor] -mouse = false -middle-click-paste = false -shell = ["/bin/fish", "-c"] -cursorline = false -cursorcolumn = false -line-number = "relative" -auto-completion = true -auto-format = true -true-color = true -color-modes = true - -[editor.cursor-shape] -normal = "block" -insert = "bar" -select = "block" - -[keys.normal] -esc = [ "collapse_selection", "keep_primary_selection" ] diff --git a/makefile b/makefile deleted file mode 100644 index 366c279..0000000 --- a/makefile +++ /dev/null @@ -1,7 +0,0 @@ -.PHONY: install collections - -collections: - sudo ansible-galaxy collection install -p collections kewlfft.aur - -install: collections - ansible-playbook --ask-become-pass --inventory ./ansible/hosts playbook.yml diff --git a/playbook.yml b/playbook.yml deleted file mode 100644 index e534057..0000000 --- a/playbook.yml +++ /dev/null @@ -1,504 +0,0 @@ ---- -- name: "Laptop installation & configuration" - hosts: all - connection: local - gather_facts: false - tasks: - - name: Install Eza (alternative to ls) - become: true - pacman: - name: eza - state: present - - name: Install Xclip (clipboard manager for X) - become: true - pacman: - name: xclip - state: present - - name: Install Neofetch (operating system informations logger) - become: true - pacman: - name: neofetch - 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 Node.js package for Neovim - become: true - npm: - name: neovim - global: true - state: present - path: /usr/local/bin/node_modules - - 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 Kitty (terminal emulator) - become: true - pacman: - name: kitty - state: present - - name: Setup Kitty - synchronize: - delete: true - src: kitty - 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 TreeSitter CLI for Neovim - become: true - pacman: - name: tree-sitter-cli - state: present - - name: Install Java SDK for Neovim - become: true - pacman: - name: jdk-openjdk - 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