Files
Cachy-Predator-Keyboard/packaging/arch/PKGBUILD
T
MrBlakeandClaude Opus 5.5 5b7534560f Open the app with the Predator key, bump to 1.3.0
The Predator key sends keyboard usage 0xC9, which lies outside the
logical range the keyboard declares, so the kernel never emits an input
event for it. It is also reported on vendor report 4 of USB interface 2
(04 81 ff on press). predatord now listens there and opens the app in
the active graphical session via the user's systemd manager.

The action is configurable on the System page: open the app, switch to
the next performance mode, or do nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 17:51:21 +02:00

58 lines
2.8 KiB
Bash

# Maintainer: Louis-Alexander Kerst <louis@alexander-kerst.de>
#
# Builds the pacman package from this source checkout:
# cd packaging/arch && makepkg -f
# sudo pacman -U predator-control-*.pkg.tar.zst
pkgname=predator-control
pkgver=1.3.0
pkgrel=1
pkgdesc="PredatorSense replacement for Acer Predator laptops: performance modes, fans, keyboard RGB, lightbar, battery (Qt app + Plasma widget)"
arch=('any')
url="https://git.mrblake.cc/MrBlake/Cachy-Predator-Keyboard"
license=('GPL-2.0-only')
depends=('python' 'pyside6' 'dkms')
optdepends=('plasma-workspace: panel widget'
'linux-headers: build the kernel module for the stock Arch kernel'
'linux-cachyos-headers: build the kernel module for CachyOS kernels'
'clang: needed by DKMS for clang-built kernels (CachyOS)'
'lld: needed by DKMS for clang-built kernels (CachyOS)'
'llvm: needed by DKMS for clang-built kernels (CachyOS)')
install=predator-control.install
source=()
_src="$(realpath "$startdir/../..")"
_modver=1.3.0
package() {
cd "$_src"
# Python package and launchers
install -d "$pkgdir/usr/lib/predator-control/predator_control/gui"
install -m644 predator_control/*.py "$pkgdir/usr/lib/predator-control/predator_control/"
install -m644 predator_control/gui/*.py "$pkgdir/usr/lib/predator-control/predator_control/gui/"
python -m compileall -q -d /usr/lib/predator-control "$pkgdir/usr/lib/predator-control"
for b in predatord predatorctl predator-control; do
install -Dm755 "bin/$b" "$pkgdir/usr/bin/$b"
done
# Kernel module as DKMS source (built automatically by the dkms pacman hook)
install -d "$pkgdir/usr/src/predator-wmi-$_modver"
install -m644 kernel/{predator_wmi.c,Makefile,dkms.conf} "$pkgdir/usr/src/predator-wmi-$_modver/"
install -Dm644 data/modules-load-predator-control.conf "$pkgdir/usr/lib/modules-load.d/predator-control.conf"
# Service, resume hook, desktop integration
install -Dm644 data/predatord.service "$pkgdir/usr/lib/systemd/system/predatord.service"
install -Dm755 data/system-sleep-predator-control "$pkgdir/usr/lib/systemd/system-sleep/predator-control"
install -Dm644 data/predator-control.desktop "$pkgdir/usr/share/applications/predator-control.desktop"
install -Dm644 data/predator-control.svg "$pkgdir/usr/share/icons/hicolor/scalable/apps/predator-control.svg"
# Plasma panel widget
local p="$pkgdir/usr/share/plasma/plasmoids/org.predatorcontrol.panel"
install -Dm644 plasmoid/org.predatorcontrol.panel/metadata.json "$p/metadata.json"
install -Dm644 plasmoid/org.predatorcontrol.panel/contents/ui/main.qml "$p/contents/ui/main.qml"
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
install -Dm644 CHANGELOG.md "$pkgdir/usr/share/doc/$pkgname/CHANGELOG.md"
}