desktop-config/roles/desktop-environment/tasks/hyprland.yml
2024-02-25 20:57:32 +01:00

111 lines
2.9 KiB
YAML

- name: Install build dependencies
become: yes
apt:
state: latest
install_recommends: false
name:
# General
- build-essential
- cmake
- meson
# Hyprland
- libwayland-dev
- wayland-protocols
- libpango1.0-dev
- libtomlplusplus-dev
- libdrm-dev
- xwayland
- libxcb1-dev
- libxkbcommon-dev
- libinput-dev
- libgbm-dev
- libgles2-mesa-dev
# xdg-desktop-portal-hyprland
- qtbase5-dev
- libspa-0.2-dev
- libpipewire-0.3-dev
- name: Create source folders
become: yes
file:
path: "/usr/local/src/{{ item }}"
state: directory
owner: "{{ ansible_user_id }}"
group: "{{ ansible_user_id }}"
loop:
- "Hyprland"
- "hyprlang"
- "xdg-desktop-portal-hyprland"
- name: Checkout Hyprland repo
ansible.builtin.git:
repo: 'https://github.com/hyprwm/Hyprland.git'
dest: /usr/local/src/Hyprland
version: v0.35.0
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.4.0
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.1
force: true
recursive: true
- name: Build Hyprland
community.general.make:
chdir: /usr/local/src/Hyprland
target: all
- name: Install Hyprland
become: true
community.general.make:
chdir: /usr/local/src/Hyprland
target: install
- 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 -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`"
- name: Install hyprlang
become: yes
ansible.builtin.command:
cmd: "cmake --install build"
chdir: /usr/local/src/hyprlang
- 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"
- name: Install xdg-desktop-portal-hyprland
become: yes
ansible.builtin.command:
cmd: "cmake --install build"
chdir: /usr/local/src/xdg-desktop-portal-hyprland
- name: Move xdg-desktop-portal-hyprland.service into place
become: yes
ansible.builtin.copy:
src: /usr/lib/x86_64-linux-gnu/systemd/user/xdg-desktop-portal-hyprland.service
dest: /usr/lib/systemd/user/xdg-desktop-portal-hyprland.service
- name: Reload systemd
ansible.builtin.systemd_service:
daemon_reload: true