diff --git a/README.md b/README.md index 85e499e..20ab86f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 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. +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 @@ -17,7 +17,7 @@ The desktop environment is primarily composed of the following components: - [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.) +- Additional background tools (e.g., PipeWire, polkit-kde-agent) ## Customization @@ -25,29 +25,28 @@ The playbook generates configuration files based on the host-specific variables 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. +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 and ansible -sudo apt update && sudo apt install -y git ansible +# 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 -i inventory/ --ask-become-pass main.yml +ansible-playbook --ask-become-pass -i inventory/ main.yml # Reboot after the playbook completes sudo reboot @@ -60,7 +59,7 @@ 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 +ansible-playbook --ask-become-pass -i inventory/ main.yml # Reboot after the playbook completes sudo reboot diff --git a/roles/desktop-environment/tasks/hyprland.yml b/roles/desktop-environment/tasks/hyprland.yml index aff174c..ee1e2d4 100644 --- a/roles/desktop-environment/tasks/hyprland.yml +++ b/roles/desktop-environment/tasks/hyprland.yml @@ -1,3 +1,16 @@ +- name: Set apt default-release to "testing" + become: yes + copy: + src: "{{ role_path }}/files/20-tum.conf" + dest: "/etc/apt/apt.conf.d/20-tum.conf" + +- name: Add unstable repository + become: yes + ansible.builtin.apt_repository: + repo: "deb http://deb.debian.org/debian unstable main contrib non-free-firmware" + state: present + update_cache: true + - name: Install build dependencies become: yes apt: @@ -43,7 +56,7 @@ - libxcb-composite0-dev - libxcb-res0-dev - xwayland - - libzip5 + - libzip4t64 - libre2-dev # xdg-desktop-portal-hyprland - qt6-wayland diff --git a/roles/firefox/tasks/main.yml b/roles/firefox/tasks/main.yml index 4efac7b..34e2d04 100644 --- a/roles/firefox/tasks/main.yml +++ b/roles/firefox/tasks/main.yml @@ -1,3 +1,15 @@ +- name: Add Mozilla repository + become: yes + deb822_repository: + name: mozilla + types: deb + uris: https://packages.mozilla.org/apt + suites: mozilla + components: main + signed_by: https://packages.mozilla.org/apt/repo-signing-key.gpg + state: present + enabled: yes + - name: Install packages become: yes apt: