67 lines
2.1 KiB
Markdown
67 lines
2.1 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 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
|
||
|
```
|