desktop-config/README.md
2025-08-06 15:47:40 +02:00

67 lines
2.5 KiB
Markdown

# 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 basically a dotfiles repository on steroids.
## 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 (PipeWire, polkit-kde-agent, gnome-keyring etc.)
## 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.
Even if the host-specific configuration is missing, the playbook will bring up a functional system using sensible defaults. This makes it possible to provision new systems without needing to know details like monitor descriptions for Hyprland in advance.
## Usage
This playbook is intended to be run on Debian `unstable`, with only the `standard system utilities` option selected in `tasksel` during installation. Usage on other versions of Debian likely won't work, as Hyprland requires relatively recent versions of its dependencies to build.
### Steps to Set Up a New System
Run the following commands to set up a fully configured system:
```bash
# Install git and ansible
sudo apt update && sudo apt install -y git ansible
# Clone and prepare the repository
git clone https://git.bluemedia.dev/Bluemedia/desktop-config.git
cd desktop-config
# Customize the applications you want to install
nano main.yml
# Run the playbook
ansible-playbook -i inventory/ --ask-become-pass 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 -i inventory/ --ask-become-pass main.yml
# Reboot after the playbook completes
sudo reboot
```