# Copyright 2023-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit optfeature systemd tmpfiles udev DESCRIPTION="CachyOS sysctl, udev, systemd and desktop configuration" HOMEPAGE="https://github.com/CachyOS/CachyOS-Settings" SRC_URI="https://github.com/CachyOS/CachyOS-Settings/archive/${PV}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/CachyOS-Settings-${PV}" LICENSE="GPL-3" SLOT="0" KEYWORDS="~amd64" IUSE="X zram" RDEPEND=" app-admin/ananicy-cpp sys-apps/hdparm sys-apps/inxi sys-process/procps virtual/udev X? ( x11-drivers/xf86-input-libinput ) zram? ( sys-apps/zram-generator app-arch/zstd ) " src_install() { local unitdir userunitdir generatordir udevdir unitdir="$(systemd_get_systemunitdir)" unitdir="${unitdir#"${EPREFIX}"}" userunitdir="$(systemd_get_userunitdir)" userunitdir="${userunitdir#"${EPREFIX}"}" generatordir="$(systemd_get_systemgeneratordir)" generatordir="${generatordir#"${EPREFIX}"}" udevdir="$(get_udevdir)" udevdir="${udevdir#"${EPREFIX}"}" # /etc configs insinto /etc doins -r "${S}/etc/debuginfod" doins -r "${S}/etc/security" # scripts dobin "${S}"/usr/bin/* # EAC setup installs Arch packages with pacman and enrolls vendor keys. rm "${ED}/usr/bin/eac-setup" || die # /usr/lib configs insinto /usr/lib doins -r "${S}/usr/lib/modprobe.d" doins -r "${S}/usr/lib/modules-load.d" doins -r "${S}/usr/lib/NetworkManager" doins -r "${S}/usr/lib/sysctl.d" doins -r "${S}/usr/lib/tmpfiles.d" # /usr/lib helpers exeinto /usr/lib doexe "${S}/usr/lib/iw-set-regdomain" # systemd unit systemd_dounit \ "${S}/usr/lib/systemd/system/pci-latency.service" \ "${S}/usr/lib/systemd/system/cachyos-iw-set-regdomain.path" \ "${S}/usr/lib/systemd/system/cachyos-iw-set-regdomain.service" # systemd service drop-ins insinto "${unitdir}/rtkit-daemon.service.d" doins "${S}/usr/lib/systemd/system/rtkit-daemon.service.d/override.conf" insinto "${unitdir}/user@.service.d" doins "${S}/usr/lib/systemd/system/user@.service.d/delegate.conf" # systemd slice drop-ins insinto "${unitdir}/system.slice.d" doins "${S}"/usr/lib/systemd/system/system.slice.d/*.conf local slicedir for slicedir in session.slice.d slice.d; do insinto "${userunitdir}/${slicedir}" doins "${S}/usr/lib/systemd/user/${slicedir}"/*.conf done # systemd daemon config drop-ins local utildir utildir="$(systemd_get_utildir)" utildir="${utildir#"${EPREFIX}"}" insinto "${utildir}" doins -r "${S}/usr/lib/systemd/journald.conf.d" doins -r "${S}/usr/lib/systemd/system.conf.d" doins -r "${S}/usr/lib/systemd/timesyncd.conf.d" doins -r "${S}/usr/lib/systemd/user.conf.d" # zram-generator config; xswap replaces it on kernels that provide xswap if use zram; then insinto "${utildir}" doins "${S}/usr/lib/systemd/zram-generator.conf" exeinto "${generatordir}" doexe "${S}/usr/lib/systemd/system-generators/xswap-generator" insinto "${unitdir}/systemd-zram-setup@.service.d" doins "${S}/usr/lib/systemd/system/systemd-zram-setup@.service.d/xswap.conf" fi # udev helper called by 20-audio-pm.rules exeinto "${udevdir}" doexe "${S}/usr/lib/udev/audio-pm-ctl" # udev rules local rule for rule in "${S}"/usr/lib/udev/rules.d/*.rules; do udev_dorules "${rule}" done # X11 config if use X; then insinto /usr/share/X11/xorg.conf.d doins "${S}/usr/share/X11/xorg.conf.d/20-touchpad.conf" fi # GNOME schema override and icon insinto /usr/share/glib-2.0/schemas doins "${S}/usr/share/glib-2.0/schemas/zz_cachyos.org.gnome.login-screen.gschema.override" insinto /usr/share/icons doins "${S}/usr/share/icons/cachyos.svg" } pkg_postinst() { udev_reload tmpfiles_process thp.conf optfeature "game-performance power profile switching" sys-power/power-profiles-daemon } pkg_postrm() { udev_reload }