# Copyright 2024-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( {18..20} ) RUST_MIN_VER="1.80.1" # used for version string export NIRI_BUILD_COMMIT="8ba57fc" inherit cargo llvm-r2 optfeature shell-completion systemd DESCRIPTION="Scrollable-tiling Wayland compositor" HOMEPAGE="https://github.com/YaLTeR/niri" SRC_URI=" https://github.com/YaLTeR/niri/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz https://github.com/YaLTeR/niri/releases/download/v${PV}/${P}-vendored-dependencies.tar.xz " LICENSE="GPL-3+" # Dependent crate licenses LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT MPL-2.0 Unicode-3.0 " SLOT="0" KEYWORDS="~amd64" IUSE="+dbus screencast systemd" REQUIRED_USE=" screencast? ( dbus ) systemd? ( dbus ) " DEPEND=" dev-libs/glib:2 dev-libs/libinput:= dev-libs/wayland niri || die "$(cargo_target_dir)"/niri completions fish > niri.fish || die "$(cargo_target_dir)"/niri completions zsh > _niri || die } src_install() { cargo_src_install dobin resources/niri-session systemd_douserunit resources/niri{.service,-shutdown.target} insinto /usr/share/wayland-sessions doins resources/niri.desktop insinto /usr/share/xdg-desktop-portal doins resources/niri-portals.conf dobashcomp niri dofishcomp niri.fish dozshcomp _niri } src_test() { # tests create a wayland socket in the xdg runtime dir local -x XDG_RUNTIME_DIR="${T}/xdg" mkdir "${XDG_RUNTIME_DIR}" || die chmod 0700 "${XDG_RUNTIME_DIR}" || die # bug 950626 # https://yalter.github.io/niri/Packaging-niri.html#running-tests local -x RAYON_NUM_THREADS=2 cargo_src_test -- --test-threads=2 } pkg_postinst() { optfeature "Default application launcher" "gui-apps/fuzzel" optfeature "Default status bar" "gui-apps/waybar" optfeature "Default terminal" "x11-terms/alacritty" optfeature "Xwayland support" "gui-apps/xwayland-satellite" }