# Personal Linux Desktop Setup This repository contains an Ansible playbook to bootstrap workstations with my custom Hyprland-based desktop environment and commonly used applications. It's similar to a dotfiles repository but with extended functionality. ## Desktop Environment Components The desktop environment is primarily composed of the following components: - [Hyprland](https://hyprland.org/) (Wayland compositor) - [Waybar](https://github.com/Alexays/Waybar) (status bar) - swaybg, swaylock, swayidle (background, session lock, idle management) - wofi (application menus) - xfce4-appfinder (application launcher) - Dunst (notifications) - slurp, grim, [swappy](https://github.com/jtheoof/swappy) (screenshot tools) - Thunar (file manager) - [WezTerm](https://wezfurlong.org/wezterm/index.html) (terminal emulator) - [Emote](https://flathub.org/apps/com.tomjwatson.Emote) (emoji picker) - Hyprhelpr (custom bash script for common tasks) - Additional background tools (e.g., PipeWire, polkit-kde-agent) ## Customization The playbook generates configuration files based on the host-specific variables for the machine it's running on. To add a new host, include its hostname in the inventory and create a corresponding `host_vars` file. Refer to the existing configurations for examples. ## Usage This playbook is designed to be run on Debian `testing/sid` with only the "default tools" option selected during installation. ### Steps to Set Up a New System Run the following commands to set up a fully configured system: ```bash # Install git sudo apt update && sudo apt install -y git # Clone and prepare the repository git clone https://git.bluemedia.dev/Bluemedia/desktop-config.git cd desktop-config bash prerequisites.sh # Customize the applications you want to install nano main.yml # Run the playbook ansible-playbook --ask-become-pass -i inventory/ main.yml # Reboot after the playbook completes sudo reboot ``` ### Updating an Existing System To update an already installed system, use the following commands: ```bash cd desktop-config git pull ansible-playbook --ask-become-pass -i inventory/ main.yml # Reboot after the playbook completes sudo reboot ```