desktop-config/roles/desktop-environment/tasks/hyprland.yml

232 lines
6 KiB
YAML

- 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:
state: latest
install_recommends: false
name:
# General
- build-essential
- cmake
- meson
# Aquamarine
- hwdata
- libdrm-dev
- libseat-dev
- libinput-dev
- libgbm-dev
- libdisplay-info-dev
- libegl-dev
- libgles2-mesa-dev
- wayland-protocols
- libwayland-dev
# hyprland-scanner
- libpugixml-dev
# hyprcursor
- libzip-dev
- librsvg2-dev
- libxcb-util-dev
# Hyprland
- libpango1.0-dev
- libtomlplusplus-dev
- uuid-dev
- libxcb-errors-dev
- libxcursor-dev
- libxkbcommon-dev
- libxcb1-dev
- libxcb-icccm4-dev
- libxcb-xfixes0-dev
- libxcb-composite0-dev
- libxcb-res0-dev
- xwayland
- libzip4t64
# xdg-desktop-portal-hyprland
- qt6-base-dev
- libspa-0.2-dev
- libpipewire-0.3-dev
- libsdbus-c++-dev
- name: Create source folders
become: yes
file:
path: "/usr/local/src/{{ item }}"
state: directory
owner: "{{ ansible_user_id }}"
group: "{{ ansible_user_id }}"
loop:
- "hyprutils"
- "hyprwayland-scanner"
- "Hyprland"
- "hyprlang"
- "hyprcursor"
- "xdg-desktop-portal-hyprland"
- "Aquamarine"
- name: Checkout hyprutils repo
ansible.builtin.git:
repo: 'https://github.com/hyprwm/hyprutils.git'
dest: /usr/local/src/hyprutils
version: v0.2.6
force: true
recursive: true
- name: Checkout hyprwayland-scanner repo
ansible.builtin.git:
repo: 'https://github.com/hyprwm/hyprwayland-scanner.git'
dest: /usr/local/src/hyprwayland-scanner
version: v0.4.2
force: true
recursive: true
- name: Checkout hyprlang repo
ansible.builtin.git:
repo: 'https://github.com/hyprwm/hyprlang.git'
dest: /usr/local/src/hyprlang
version: v0.5.3
force: true
recursive: true
- name: Checkout hyprcursor repo
ansible.builtin.git:
repo: 'https://github.com/hyprwm/hyprcursor.git'
dest: /usr/local/src/hyprcursor
version: v0.1.10
force: true
recursive: true
- name: Checkout xdg-desktop-portal-hyprland repo
ansible.builtin.git:
repo: 'https://github.com/hyprwm/xdg-desktop-portal-hyprland.git'
dest: /usr/local/src/xdg-desktop-portal-hyprland
version: v1.3.8
force: true
- name: Checkout Aquamarine repo
ansible.builtin.git:
repo: 'https://github.com/hyprwm/aquamarine.git'
dest: /usr/local/src/Aquamarine
version: v0.5.0
force: true
recursive: true
- name: Checkout Hyprland repo
ansible.builtin.git:
repo: 'https://github.com/hyprwm/Hyprland.git'
dest: /usr/local/src/Hyprland
version: v0.45.0
force: true
recursive: true
- name: Build hyprutils
ansible.builtin.command:
cmd: "{{ item }}"
chdir: /usr/local/src/hyprutils
loop:
- "cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build"
- "cmake --build ./build --config Release --target all --parallel 4"
- name: Install hyprutils
become: yes
ansible.builtin.command:
cmd: "cmake --install build"
chdir: /usr/local/src/hyprutils
- name: Build hyprwayland-scanner
ansible.builtin.command:
cmd: "{{ item }}"
chdir: /usr/local/src/hyprwayland-scanner
loop:
- "cmake -DCMAKE_INSTALL_PREFIX=/usr -B build"
- "cmake --build build --parallel 4"
- name: Install hyprwayland-scanner
become: yes
ansible.builtin.command:
cmd: "cmake --install build"
chdir: /usr/local/src/hyprwayland-scanner
- name: Build hyprlang
ansible.builtin.command:
cmd: "{{ item }}"
chdir: /usr/local/src/hyprlang
loop:
- "cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B build"
- "cmake --build build --config Release --target hyprlang --parallel 4"
- name: Install hyprlang
become: yes
ansible.builtin.command:
cmd: "cmake --install build"
chdir: /usr/local/src/hyprlang
- name: Build hyprcursor
ansible.builtin.command:
cmd: "{{ item }}"
chdir: /usr/local/src/hyprcursor
loop:
- "cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build"
- "cmake --build build --config Release --target all --parallel 4"
- name: Install hyprcursor
become: yes
ansible.builtin.command:
cmd: "cmake --install build"
chdir: /usr/local/src/hyprcursor
- name: Build Aquamarine
ansible.builtin.command:
cmd: "{{ item }}"
chdir: /usr/local/src/Aquamarine
loop:
- "cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build"
- "cmake --build ./build --config Release --target all --parallel 4"
- name: Install Aquamarine
become: yes
ansible.builtin.command:
cmd: "cmake --install build"
chdir: /usr/local/src/Aquamarine
- name: Build Hyprland
community.general.make:
chdir: /usr/local/src/Hyprland
target: all
jobs: 4
- name: Install Hyprland
become: true
community.general.make:
chdir: /usr/local/src/Hyprland
target: install
- name: Build xdg-desktop-portal-hyprland
ansible.builtin.command:
cmd: "{{ item }}"
chdir: /usr/local/src/xdg-desktop-portal-hyprland
loop:
- "cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B build"
- "cmake --build build --parallel 4"
- name: Install xdg-desktop-portal-hyprland
become: yes
ansible.builtin.command:
cmd: "cmake --install build"
chdir: /usr/local/src/xdg-desktop-portal-hyprland
- name: Reload systemd
ansible.builtin.systemd_service:
daemon_reload: true
scope: user