appvol
LOW
maintainer ter0liu
0 votes
scanned 2026-10-17 17:19:05.078207
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: appvol contributors <noreply@github.com>
2
#
3
# Two packages from one source: the daemon and the CLI need neither Qt nor a
4
# display, while the window pulls PySide6 and (with it) a few hundred megabytes.
5
# Splitting them keeps a headless or minimal install small.
6
pkgbase=appvol
7
pkgname=('appvol' 'appvol-gui')
8
pkgver=0.7.0
9
pkgrel=1
10
arch=('any')
11
url="https://github.com/YaBulochka/appvol"
12
license=('MIT')
13
14
# The upstream release archive, built with `git archive` from the v$pkgver tag.
15
# The upstream tree also carries packaging/PKGBUILD, which is kept in sync with
16
# this file by hand.
17
source=("$url/releases/download/v$pkgver/$pkgbase-$pkgver.tar.gz")
18
sha256sums=('f92abb023886da239f1ef58a40cfbc1e240cd44f2add488aa7ab3da750da10ea')
19
20
# $srcdir is only set once makepkg starts a package function, so the unpacked
21
# tree can not be named at the top of the file.
22
_site() {
23
python -c 'import sys; print("lib/python{}.{}/site-packages".format(*sys.version_info[:2]))'
24
}
25
26
package_appvol() {
27
pkgdesc="Volume control for the audio streams of the focused window (KDE Plasma 6 on Wayland)"
28
depends=('python' 'python-dbus' 'python-gobject' 'python-pulsectl')
29
optdepends=(
30
'plasma-desktop: the Plasma session the daemon drives (KWin script, OSD, shortcuts)'
31
'kwin: loads the script that reports the focused window'
32
'kglobalacceld: binds the hotkeys in System Settings -> Shortcuts'
33
'pipewire-pulse: the audio server the daemon talks to'
34
'appvol-gui: the window for the profiles'
35
)
36
install=appvol.install
37
38
cd "$srcdir/$pkgbase-$pkgver"
39
40
local site
41
site="$(_site)"
42
43
install -d "$pkgdir/usr/$site/appvol"
44
install -m644 appvol/*.py "$pkgdir/usr/$site/appvol/"
45
46
# The daemon looks for the KWin script in the XDG data dirs as well, which is
47
# where a package install keeps it.
48
install -Dm644 kwin/appvol.js "$pkgdir/usr/share/appvol/appvol.js"
49
50
# Launchers: the module is already importable, so no path discovery is needed.
51
install -d "$pkgdir/usr/bin"
52
printf '#!/bin/sh\nexec python3 -m appvol.cli "$@"\n' >"$pkgdir/usr/bin/appvol"
53
printf '#!/bin/sh\nexec python3 -m appvol.daemon "$@"\n' >"$pkgdir/usr/bin/appvold"
54
chmod 755 "$pkgdir/usr/bin/appvol" "$pkgdir/usr/bin/appvold"
55
56
# The unit gets absolute paths: systemd does not read the user's PATH at all,
57
# and the shortcut server only lives in the session.
58
install -d "$pkgdir/usr/lib/systemd/user"
59
sed 's|@APPVOLD@|/usr/bin/appvold|' systemd/appvold.service.in \
60
>"$pkgdir/usr/lib/systemd/user/appvold.service"
61
62
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
63
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
64
install -d "$pkgdir/usr/share/doc/$pkgname/docs"
65
install -m644 docs/*.md "$pkgdir/usr/share/doc/$pkgname/docs/"
66
}
67
68
package_appvol-gui() {
69
pkgdesc="Qt-based configurator for appvol (PySide6 and Kirigami)"
70
depends=('appvol' 'pyside6' 'kirigami' 'qqc2-desktop-style' 'breeze-icons')
71
optdepends=('plasma-desktop: the desktop whose shortcut dialog the window opens')
72
73
cd "$srcdir/$pkgbase-$pkgver"
74
75
local site
76
site="$(_site)"
77
78
# The QML files sit next to the Python ones: the window loads them from the
79
# filesystem, so no Qt resource compilation is needed.
80
install -d "$pkgdir/usr/$site/appvol/gui/qml"
81
install -m644 appvol/gui/*.py "$pkgdir/usr/$site/appvol/gui/"
82
install -m644 appvol/gui/qml/*.qml "$pkgdir/usr/$site/appvol/gui/qml/"
83
84
install -d "$pkgdir/usr/bin"
85
printf '#!/bin/sh\nexec python3 -m appvol.gui "$@"\n' >"$pkgdir/usr/bin/appvol-gui"
86
chmod 755 "$pkgdir/usr/bin/appvol-gui"
87
88
install -d "$pkgdir/usr/share/applications"
89
sed 's|@APPVOL_GUI@|/usr/bin/appvol-gui|g' desktop/org.appvol.gui.desktop.in \
90
>"$pkgdir/usr/share/applications/org.appvol.gui.desktop"
91
92
# The app icon the entry names. The hicolor cache is refreshed by the
93
# gtk-update-icon-cache pacman hook, so nothing extra is needed here.
94
install -Dm644 desktop/icons/hicolor/scalable/apps/appvol.svg \
95
"$pkgdir/usr/share/icons/hicolor/scalable/apps/appvol.svg"
96
97
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
98
}
99
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-17 17:19:05 | Low | 1 |