blob: 6ff7a7bd2c4431fbcdf8118f9a4337607f3b2142 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# Maintainer: loteran <https://github.com/loteran>
pkgname=arctis-sound-manager
pkgver=1.1.74
pkgrel=1
pkgdesc="Linux GUI for SteelSeries Arctis headsets — all GG/Sonar features: mixer, EQ, ANC, mic processing, surround"
arch=('any')
url="https://github.com/loteran/Arctis-Sound-Manager"
license=('GPL-3.0-or-later')
depends=(
'python>=3.10'
'pyside6'
'qt6-svg'
'python-babel'
'python-pillow'
'python-pyudev'
'python-pyusb'
'python-ruamel-yaml'
'pipewire'
'pipewire-pulse'
'wireplumber'
'libusb'
'libpulse'
# Used by asm-setup to download HRIR (~/.local/share/pipewire/
# hrir_hesuvi/EAC_Default.wav) on first run — Spatial Audio is
# silent without it. asm-setup falls back to wget but a default
# Arch base install ships curl, not wget.
'curl'
# LADSPA Steve Harris pack — provides plate_1423 used by the HeSuVi
# 7.1 surround filter-chain (issue #23). Promoted from optdepends
# to depends per the "no soft deps" mandate.
'swh-plugins'
# rnnoise LADSPA plugin used by the ClearCast / mic noise-suppression
# toggle in the Settings page. Lives in the AUR — pacman will refuse
# to satisfy this from the official repos, so users installing the
# AUR PKGBUILD via paru/yay will be prompted to build it as part of
# the same transaction. This is intentional — the alternative
# (optdepends) means the toggle silently does nothing.
'noise-suppression-for-voice'
)
makedepends=('python-installer' 'uv')
install=arctis-sound-manager.install
source=("$pkgname-$pkgver.tar.gz::https://github.com/loteran/Arctis-Sound-Manager/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz")
sha256sums=('bc75bc8d4a4a95021d15f33ce565a8c52b99afb4399c1f2fe4f2677938fef138')
build() {
cd "Arctis-Sound-Manager-$pkgver"
uv build --wheel
}
package() {
cd "Arctis-Sound-Manager-$pkgver"
# Install Python package
python -m installer --destdir="$pkgdir" dist/*.whl
# Bundle dbus-next and pulsectl (not in official Arch repos)
uv pip install --no-deps --python /usr/bin/python --prefix "$pkgdir/usr" dbus-next pulsectl
# udev rules (generated from device YAMLs — never hardcode PIDs here)
uv run python3 scripts/generate_udev_rules.py \
| install -Dm644 /dev/stdin "$pkgdir/usr/lib/udev/rules.d/91-steelseries-arctis.rules"
# Desktop entry
install -Dm644 src/arctis_sound_manager/desktop/ArctisManager.desktop \
"$pkgdir/usr/share/applications/ArctisManager.desktop"
# Icon
install -Dm644 src/arctis_sound_manager/gui/images/steelseries_logo.svg \
"$pkgdir/usr/share/icons/hicolor/scalable/apps/arctis-manager.svg"
# Systemd user services (single source of truth in systemd/, not heredocs)
install -Dm644 systemd/arctis-manager.service \
"$pkgdir/usr/lib/systemd/user/arctis-manager.service"
install -Dm644 systemd/arctis-video-router.service \
"$pkgdir/usr/lib/systemd/user/arctis-video-router.service"
install -Dm644 systemd/arctis-gui.service \
"$pkgdir/usr/lib/systemd/user/arctis-gui.service"
# dinit user service templates (Artix Linux / dinit init systems)
install -Dm644 dinit/arctis-manager \
"$pkgdir/usr/share/$pkgname/dinit/arctis-manager"
install -Dm644 dinit/arctis-video-router \
"$pkgdir/usr/share/$pkgname/dinit/arctis-video-router"
install -Dm644 dinit/arctis-gui \
"$pkgdir/usr/share/$pkgname/dinit/arctis-gui"
install -Dm644 dinit/pipewire-filter-chain \
"$pkgdir/usr/share/$pkgname/dinit/pipewire-filter-chain"
# dinit diagnostic script
install -Dm755 scripts/asm-diag-dinit.py \
"$pkgdir/usr/bin/asm-diag-dinit"
# PipeWire configs (shared, copied to user dir on first run by asm-setup)
install -Dm644 scripts/pipewire/10-arctis-virtual-sinks.conf \
"$pkgdir/usr/share/$pkgname/pipewire/10-arctis-virtual-sinks.conf"
install -Dm644 scripts/pipewire/sink-virtual-surround-7.1-hesuvi.conf \
"$pkgdir/usr/share/$pkgname/pipewire/sink-virtual-surround-7.1-hesuvi.conf"
# filter-chain.service (for distros that don't ship one; Arch ships it via pipewire-audio)
install -Dm644 scripts/filter-chain.service \
"$pkgdir/usr/share/$pkgname/filter-chain.service"
# Device configs
install -Dm644 src/arctis_sound_manager/devices/*.yaml \
-t "$pkgdir/usr/share/$pkgname/devices/"
# AppStream metainfo (releases injected from CHANGELOG.md — never hardcode)
uv run python3 scripts/generate_metainfo_releases.py --in-place
install -Dm644 src/arctis_sound_manager/desktop/com.github.loteran.arctis-sound-manager.metainfo.xml \
"$pkgdir/usr/share/metainfo/com.github.loteran.arctis-sound-manager.metainfo.xml"
# First-run autostart (triggers asm-setup on first graphical login)
install -Dm644 debian/asm-first-run.desktop \
"$pkgdir/etc/xdg/autostart/asm-first-run.desktop"
}
|