diff --git a/README.md b/README.md new file mode 100644 index 0000000..20ab86f --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# 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 +```