Ansible playbook to quickly bootstrap Debian workstations with my custom desktop environment and commonly used apps
Find a file
2024-10-15 19:18:46 +02:00
host_vars Fix zeus display description 2024-10-05 16:50:02 +02:00
inventory Add dummy inventory 2024-05-27 22:45:19 +02:00
roles Adjust position of dunst notifications 2024-10-15 19:18:46 +02:00
main.yml Add role for Docker 2024-06-01 21:55:38 +02:00
prerequisites.sh Refactor for use with Hyprland 2024-02-25 22:41:20 +01:00
README.md Add README.md 2024-10-12 19:44:29 +02:00

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