From f38d2d52d20fab67f6ebc2885698249c7a78d3ba Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 27 May 2024 14:13:56 +0000 Subject: [PATCH] alsa-ucm-pinephone-pmos: prefer the earpiece over the "internal speaker" --- hosts/common/programs/alsa-ucm-conf/default.nix | 4 +++- pkgs/additional/alsa-ucm-pinephone-pmos/default.nix | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hosts/common/programs/alsa-ucm-conf/default.nix b/hosts/common/programs/alsa-ucm-conf/default.nix index 7d5bb8ce..5f2bafbb 100644 --- a/hosts/common/programs/alsa-ucm-conf/default.nix +++ b/hosts/common/programs/alsa-ucm-conf/default.nix @@ -37,7 +37,9 @@ in # - headphones work # - "internal earpiece" works # - "internal speaker" is silent (maybe hardware issue) - packageUnwrapped = pkgs.alsa-ucm-pinephone-pmos; #< TODO: plumb `preferEarpiece` + packageUnwrapped = pkgs.alsa-ucm-pinephone-pmos.override { + inherit (cfg.config) preferEarpiece; + }; sandbox.enable = false; #< only provides $out/share/alsa diff --git a/pkgs/additional/alsa-ucm-pinephone-pmos/default.nix b/pkgs/additional/alsa-ucm-pinephone-pmos/default.nix index 44f64d2f..b426ba8a 100644 --- a/pkgs/additional/alsa-ucm-pinephone-pmos/default.nix +++ b/pkgs/additional/alsa-ucm-pinephone-pmos/default.nix @@ -1,7 +1,9 @@ # 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 { @@ -20,5 +22,11 @@ in alsa-ucm-conf.overrideAttrs (upstream: { 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' ''; })