- 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