Expose sidecar amplifier apply status

This commit is contained in:
Spencer Bull
2026-08-15 17:29:37 -05:00
parent 426951dacc
commit 8ab98748c1
4 changed files with 73 additions and 31 deletions
+8 -4
View File
@@ -2,7 +2,7 @@
pkgname=dell-xps13-sidecar-amps
pkgver=1.0.0
pkgrel=1
pkgrel=2
pkgdesc="Temporary sidecar speaker amplifier enablement for the Dell XPS 13 DX13260"
arch=('x86_64')
url="https://github.com/omacom-io/omarchy-pkgs"
@@ -12,17 +12,21 @@ optdepends=('limine-mkinitcpio-hook: rebuild Limine Unified Kernel Images')
install=dell-xps13-sidecar-amps.install
options=('!debug')
source=(
'dell-xps13-sidecar-amps-apply'
'dell-xps13-sidecar-amps.conf'
'dell-xps13-sidecar-amps.install'
'LICENSE'
'README.md'
)
sha256sums=('dcef05d30c15b70943e621325d813980894c4c9d646aafe645e73e194f47f9d7'
'69d054e8e156c3449b53a972cde429216bad17841c6937228106ba2102b29e14'
sha256sums=('ec5484486468c483b5a5acc50cd5a0dc5f368425c84bb88cddc95debe71d357e'
'dcef05d30c15b70943e621325d813980894c4c9d646aafe645e73e194f47f9d7'
'5573370afad9ce25e9b11501154d231e062f2d90f4a99b775bef69b6c736d35c'
'fd9348252dda847b9b4c19e44c5ab101098c7d0470c2238857ce1e14bb63207b'
'95553269a76775ab28d5f376ed0f5daed06fe094e2b4357928f6bebab7731e97')
'82685711fcbe32bec70faa0aaf65032e0c0be4b6c8796123c171e1d7865e7771')
package() {
install -Dm755 dell-xps13-sidecar-amps-apply \
"${pkgdir}/usr/bin/dell-xps13-sidecar-amps-apply"
install -Dm644 dell-xps13-sidecar-amps.conf \
"${pkgdir}/usr/lib/modprobe.d/dell-xps13-sidecar-amps.conf"
install -Dm644 LICENSE \
@@ -14,6 +14,11 @@ The package does not replace the kernel, audio firmware, or speaker tuning. It
owns only a modprobe drop-in and rebuilds the boot images when installed,
upgraded, or removed.
`dell-xps13-sidecar-amps-apply` repeats the legacy cleanup and boot-image
rebuild idempotently. System integrations can run it as root after installation
when they need a directly observable success or failure status; package-manager
scriptlet failures are otherwise only reported by Pacman.
## Removal
Once every kernel you intend to boot contains the upstream commit, remove the
@@ -0,0 +1,57 @@
#!/bin/bash
_legacy_override="/etc/modprobe.d/dell-xps13-dx13260-sidecar-amps.conf"
_legacy_sha256="97f36bce41581ecc6b1d7963cd0dab29c7b1a107b2dd4d17db7a56094a7b7289"
_remove_legacy_override() {
local actual_sha256 hash_output
[[ -f $_legacy_override ]] || return 0
if ! hash_output=$(sha256sum "$_legacy_override"); then
printf ':: Unable to hash legacy override: %s\n' "$_legacy_override" >&2
return 1
fi
actual_sha256=${hash_output%% *}
if [[ $actual_sha256 == "$_legacy_sha256" ]]; then
if ! rm -f -- "$_legacy_override"; then
printf ':: Unable to remove legacy override: %s\n' "$_legacy_override" >&2
return 1
fi
printf ':: Removed the superseded Dell XPS 13 sidecar amplifier override.\n'
else
printf ':: Preserving modified legacy override: %s\n' "$_legacy_override"
fi
}
_rebuild_boot_images() {
local output status
if command -v limine-mkinitcpio >/dev/null 2>&1; then
output=$(limine-mkinitcpio 2>&1)
status=$?
[[ -z $output ]] || printf '%s\n' "$output"
(( status == 0 )) || return "$status"
[[ $output != *"ERROR:"* ]] || return 1
elif command -v mkinitcpio >/dev/null 2>&1; then
mkinitcpio -P
else
printf ':: Unable to rebuild boot images: install mkinitcpio and rebuild before rebooting.\n' >&2
return 1
fi
}
apply_sidecar_amp_workaround() {
_remove_legacy_override || return
_rebuild_boot_images || return
}
if [[ ${BASH_SOURCE[0]} == "$0" ]]; then
if (( EUID != 0 )); then
printf ':: Run dell-xps13-sidecar-amps-apply as root.\n' >&2
exit 1
fi
apply_sidecar_amp_workaround
fi
@@ -1,26 +1,4 @@
_legacy_override="/etc/modprobe.d/dell-xps13-dx13260-sidecar-amps.conf"
_legacy_sha256="97f36bce41581ecc6b1d7963cd0dab29c7b1a107b2dd4d17db7a56094a7b7289"
_remove_legacy_override() {
local actual_sha256 hash_output
[ -f "$_legacy_override" ] || return 0
if ! hash_output=$(sha256sum "$_legacy_override"); then
printf ':: Unable to hash legacy override: %s\n' "$_legacy_override" >&2
return 1
fi
actual_sha256=${hash_output%% *}
if [ "$actual_sha256" = "$_legacy_sha256" ]; then
if ! rm -f -- "$_legacy_override"; then
printf ':: Unable to remove legacy override: %s\n' "$_legacy_override" >&2
return 1
fi
printf ':: Removed the superseded Dell XPS 13 sidecar amplifier override.\n'
else
printf ':: Preserving modified legacy override: %s\n' "$_legacy_override"
fi
}
_apply_command="/usr/bin/dell-xps13-sidecar-amps-apply"
_rebuild_boot_images() {
local output status
@@ -43,14 +21,12 @@ _rebuild_boot_images() {
}
post_install() {
_remove_legacy_override || return
_rebuild_boot_images || return
"$_apply_command" || return
printf ':: Reboot to enable the Dell XPS 13 sidecar speaker amplifiers.\n'
}
post_upgrade() {
_remove_legacy_override || return
_rebuild_boot_images || return
"$_apply_command" || return
printf ':: Reboot to apply the Dell XPS 13 sidecar amplifier update.\n'
}