如何让 i3status 从而alsamixer
不是显示音量级别Pulseaudio
?
这是我现在的音量配置:
volume master {
format = "?: %volume"
format_muted = "?: muted (%volume)"
device = "default"
mixer = "Master"
}
Run Code Online (Sandbox Code Playgroud)
根据文档,设置device
为“默认”,如果检测到 PulseAudio 将被尝试并回退到 ALSA (Linux) 或 OSS (FreeBSD/OpenBSD)。ALSA 使用什么字符串?
我试过了"alsa"
"alsamixer"
"ALSA"
,但它们不起作用。
你可以试试
device = "sysdefault"
Run Code Online (Sandbox Code Playgroud)
任何device
不是default
或不以开头的值都pulse
告诉i3status
不要使用PulseAudio并回退到alsa。然后将该值作为设备标识符直接传递给alsa,因此仅将其设置为alsa
或类似的内容将不起作用。在i3status
支持PulseAudio之前,您可以将其设置default
为让alsa使用默认设备。default
仍然是alsa设备的有效名称。但是i3status
现在尝试自动检测PulseAudio并在设备设置为(或未设置)时优先使用alsadefault
。
通过使用sysdefault
,您可以绕过alsa的自动化,i3status
同时仍然使用有效的通用设备名称。
如果systemdefault
由于某种原因使用不起作用,您可能必须使用特定的设备名称。如果你只有一张声卡,hw:0
应该可以。
device = "hw:0"
Run Code Online (Sandbox Code Playgroud)
但是在现代台式计算机上,“声卡”可能比人们想象的要多。除了“真正的”板载或专用声卡外,还有显卡(HDMI 声音)、网络摄像头、USB 耳机、蓝牙适配器等。
您可以从文件中获取系统中卡的列表/proc/asound/cards
。例如:
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xfa120000 irq 41
1 [Nvidia ]: HDA-Intel - HDA Nvidia
HDA Nvidia at 0xd3000000 irq 16
Run Code Online (Sandbox Code Playgroud)
这些然后可以与该装置名称访问hw:N
在i3status.conf
其中N
在第一列中的数字。
如果您需要更多信息来决定哪个设备号是正确的,您可以使用amixer -c N info
(amixer
可以在alsa-utils
包中找到):
% amixer -c 0 info
Card hw:0 'PCH'/'HDA Intel PCH at 0xfa120000 irq 41'
Mixer name : 'Realtek ALC262'
Components : 'HDA:10ec0262,103c1587,00100202'
Controls : 41
Simple ctrls : 20
Run Code Online (Sandbox Code Playgroud)
随着amixer -c N
你得到所有混音控制和他们的卡设置的完整列表N
。有了amixer -c N sget CONTROL
你可以检索特定的值。因此,您可以使用amixer -c N sget Master
, 来验证alsa中的输出是否i3status
与实际值匹配。
归档时间: |
|
查看次数: |
3207 次 |
最近记录: |