ordinarykuma的blog

關掉藍牙耳機的絕對音量

  我使用藍牙耳機好一段時間了,我一直很困惑,為何電腦的音量調節可以直接調整我的耳機盒的音量,而手機不會?原來這是「絕對音量」!絕對音量實際上就是同步電腦和硬體的音量。但我覺得不方便,因為耳機盒的音量調節不是足夠精緻,而且接上手機我就需要另外設定耳機盒的音量,我們來簡單設定一下。

手機啟用絕對音量

  1. 打開「開發者選項」

  2. 關掉「停用絕對音量(Disable absolute volume)」,如此一來就可以啟用絕對音量,手機設定的音量會同步到耳機盒的音量設定。

  我有一些理由想要關掉電腦的絕對音量,其中之一是因為我會用的一些軟體會需要關掉開發者選項,就例如文化幣、悠遊卡、openpoint,其次是我本來就不是很喜歡絕對音量,我想要更加精細調節音量大小。

關掉電腦的絕對音量

  我要先講我的電腦環境如下:

- Debian Testing(forky)

- Linux 7.1.8+deb14.1-amd64

- GNOME 50.3

  1. 檢查wireplumber版本
wireplumber --version

我的輸出如下

wireplumber
Compiled with libwireplumber 0.5.15
Linked with libwireplumber 0.5.15
  1. 檢查pipewire版本
pipewire --version

我的輸出如下

pipewire
Compiled with libpipewire 1.6.8
Linked with libpipewire 1.6.8

  得知以上版本後,我們修改設定。我們只修改當前用戶的設定值,不修改系統全局設定。請確保確保你同時使用 Pipewire 和 WirePlumber(0.5以上),若是其他組合,可能要另外尋找教學。

  1. 建立目錄

如果你的WirePlumber小於0.5

mkdir -p ~/.config/wireplumber/bluetooth.lua.d/

如果你的WirePlumber是0.5以上

mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
  1. 複製現成的設定檔。

如果你的WirePlumber小於0.5

cp /usr/share/wireplumber/bluetooth.lua.d/50-bluez-config.lua ~/.config/wireplumber/bluetooth.lua.d/

如果你的WirePlumber是0.5以上,則跳過。

  1. 編輯設定檔

如果你的WirePlumber小於0.5,將「--["bluez5.enable-hw-volume"] = true,」改成「["bluez5.enable-hw-volume"] = false,」

nano ~/.config/wireplumber/bluetooth.lua.d/50-bluez-config.lua

如果你的WirePlumber是0.5以上

nano ~/.config/wireplumber/wireplumber.conf.d/80-bluez-properties.conf

改成

 monitor.bluez.properties = {
   bluez5.enable-hw-volume = false
 }
  1. 重啟pipewire和WirePlumber(只針對當前使用者,不要添加sudo)
systemctl --user restart wireplumber
systemctl --user restart pipewire

倘若你不幸加了sudo,會得到

xjd@XJD:~$ sudo systemctl --user restart wireplumber
sudo systemctl --user restart pipewire
[sudo] password for xjd: 
Failed to connect to user scope bus via local transport: 
$DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider 
using --machine=<user>@.host --user to connect to bus of other user)
Failed to connect to user scope bus via local transport: 
$DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider 
using --machine=<user>@.host --user to connect to bus of other user)

我的碎碎念

  在查詢資料的過程中,發現不同版本的WirePlumber竟然有對應不同的設定檔,這在Reddit論壇有設定失效的相關討論,因此我決定附上兩種版本的修改方法。

參考

#Linux