nix-files/pkgs/additional/alsa-ucm-pinephone-pmos/default.nix

33 lines
1.2 KiB
Nix

# see: https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/main/device-pine64-pinephone/
# - APKBUILD and ucm/ files
{ alsa-ucm-conf
, lib
, fetchFromGitLab
, preferEarpiece ? false
}:
let
pmaports = fetchFromGitLab {
owner = "postmarketOS";
repo = "pmaports";
rev = "006256a0d001bf131963b69b24ae538e0bff4998";
hash = "sha256-AL3wxDN4V9K7eindEkDGNlBLV4vVMf9b7ny0BQwvbek=";
};
pmosAdditions = "${pmaports}/device/main/device-pine64-pinephone/ucm";
in alsa-ucm-conf.overrideAttrs (upstream: {
postInstall = (upstream.postInstall or "") + ''
install -Dm644 -t $out/share/alsa/ucm2/PinePhone \
${pmosAdditions}/HiFi.conf \
${pmosAdditions}/PinePhone.conf \
${pmosAdditions}/VoiceCall.conf
mkdir -p $out/share/alsa/ucm2/conf.d/simple-card
ln -sf $out/share/alsa/ucm2/PinePhone/PinePhone.conf \
$out/share/alsa/ucm2/conf.d/simple-card/PinePhone.conf
'' + lib.optionalString preferEarpiece ''
# decrease the priority of the internal speaker so that sounds are routed
# to the earpiece by default.
# this is just personal preference.
substituteInPlace $out/share/alsa/ucm2/PinePhone/{HiFi.conf,VoiceCall.conf} \
--replace-fail 'PlaybackPriority 300' 'PlaybackPriority 100'
'';
})