Waybar startet pro Monitor eine eigene corsairctl-Instanz. Mehrere Prozesse auf demselben HID-Gerät verursachen Response-Mixups. Der Wrapper cached den JSON-Output für 10s und nutzt flock damit nur ein Prozess gleichzeitig das Gerät anspricht.
33 lines
919 B
Bash
33 lines
919 B
Bash
# Maintainer: nevaforget <dom@moonarch.de>
|
|
pkgname=corsairctl
|
|
pkgver=0.1.0
|
|
pkgrel=1
|
|
pkgdesc='CLI tool for Corsair Bragi-protocol devices (HS80 RGB Wireless, etc.)'
|
|
arch=('x86_64')
|
|
url='https://gitea.moonarch.de/nevaforget/corsairctl'
|
|
license=('MIT')
|
|
depends=('hidapi' 'alsa-lib')
|
|
makedepends=('cargo' 'pkg-config')
|
|
source=("git+${url}.git")
|
|
sha256sums=('SKIP')
|
|
|
|
prepare() {
|
|
cd "$pkgname"
|
|
export RUSTUP_TOOLCHAIN=stable
|
|
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
|
|
}
|
|
|
|
build() {
|
|
cd "$pkgname"
|
|
export RUSTUP_TOOLCHAIN=stable
|
|
export CARGO_TARGET_DIR=target
|
|
cargo build --frozen --release
|
|
}
|
|
|
|
package() {
|
|
cd "$pkgname"
|
|
install -Dm755 "target/release/$pkgname" "$pkgdir/usr/bin/$pkgname"
|
|
install -Dm755 "scripts/corsairctl-waybar.sh" "$pkgdir/usr/bin/corsairctl-waybar"
|
|
install -Dm644 "udev/99-corsair.rules" "$pkgdir/usr/lib/udev/rules.d/99-corsair.rules"
|
|
}
|