host_vars | ||
inventory | ||
roles | ||
main.yml | ||
prerequisites.sh | ||
README.md |
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 (Wayland compositor)
- Waybar (status bar)
- swaybg, swaylock, swayidle (background, session lock, idle management)
- wofi (application menus)
- xfce4-appfinder (application launcher)
- Dunst (notifications)
- slurp, grim, swappy (screenshot tools)
- Thunar (file manager)
- WezTerm (terminal emulator)
- 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:
# 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:
cd desktop-config
git pull
ansible-playbook --ask-become-pass -i inventory/ main.yml
# Reboot after the playbook completes
sudo reboot