Compare commits

..

No commits in common. "debian-unstable" and "master" have entirely different histories.

3 changed files with 34 additions and 10 deletions

View file

@ -1,6 +1,6 @@
# Personal Linux Desktop Setup # 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 ## 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) - [WezTerm](https://wezfurlong.org/wezterm/index.html) (terminal emulator)
- [Emote](https://flathub.org/apps/com.tomjwatson.Emote) (emoji picker) - [Emote](https://flathub.org/apps/com.tomjwatson.Emote) (emoji picker)
- Hyprhelpr (custom bash script for common tasks) - 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 ## 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. 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 ## 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 ### Steps to Set Up a New System
Run the following commands to set up a fully configured system: Run the following commands to set up a fully configured system:
```bash ```bash
# Install git and ansible # Install git
sudo apt update && sudo apt install -y git ansible sudo apt update && sudo apt install -y git
# Clone and prepare the repository # Clone and prepare the repository
git clone https://git.bluemedia.dev/Bluemedia/desktop-config.git git clone https://git.bluemedia.dev/Bluemedia/desktop-config.git
cd desktop-config cd desktop-config
bash prerequisites.sh
# Customize the applications you want to install # Customize the applications you want to install
nano main.yml nano main.yml
# Run the playbook # 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 # Reboot after the playbook completes
sudo reboot sudo reboot
@ -60,7 +59,7 @@ To update an already installed system, use the following commands:
```bash ```bash
cd desktop-config cd desktop-config
git pull 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 # Reboot after the playbook completes
sudo reboot sudo reboot

View file

@ -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 - name: Install build dependencies
become: yes become: yes
apt: apt:
@ -43,7 +56,7 @@
- libxcb-composite0-dev - libxcb-composite0-dev
- libxcb-res0-dev - libxcb-res0-dev
- xwayland - xwayland
- libzip5 - libzip4t64
- libre2-dev - libre2-dev
# xdg-desktop-portal-hyprland # xdg-desktop-portal-hyprland
- qt6-wayland - qt6-wayland

View file

@ -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 - name: Install packages
become: yes become: yes
apt: apt: