i3status alsa 混合器

i3status alsa 混合器

如何让 i3status 显示音量级别而alsamixer不是Pulseaudio

这是我现在的卷配置:

volume master {
        format = "♪: %volume"
        format_muted = "♪: muted (%volume)"
        device = "default"
        mixer = "Master"
}

根据文档,设置device为“默认”,如果检测到,将尝试 PulseAudio,并将回退到 ALSA (Linux) 或 OSS (FreeBSD/OpenBSD)。ALSA 使用什么字符串?

我已经尝试过了"alsa" "alsamixer" "ALSA",但它们不起作用。

答案1

你可以试试

device = "sysdefault"

解释

任何值device不是default或不以pulse告诉i3status不要使用脉冲音频并回落到阿尔萨。然后将该值直接传递给阿尔萨作为设备标识符,因此仅将其设置为alsa或类似的值将不起作用。之前i3status支持过脉冲音频你可以将其设置default阿尔萨使用默认设备。default仍然是一个有效的名称阿尔萨设备。但i3status现在尝试自动检测脉冲音频并优先使用它阿尔萨,当设备设置为default(或取消设置)时。

通过使用sysdefault,您可以绕过自动操作,i3status同时仍然使用有效的通用设备名称阿尔萨

故障排除

如果systemdefault由于某种原因无法使用,您可能必须使用特定的设备名称。如果您只有一张声​​卡,hw:0应该可以工作。

device = "hw:0"

但在现代台式计算机上,“声卡”的数量可能比人们想象的要多。除了“真正的”板载或专用声卡之外,还有显卡(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

hw:N然后可以使用中的设备名称来访问这些设备i3status.conf,其中N是第一列中的数字。

如果您需要更多信息来确定哪个设备编号是正确的,您可以使用amixer -c N infoamixer可以在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

您将amixer -c N获得所有混音器控件及其卡设置的完整列表N。您amixer -c N sget CONTROL可以使用它检索特定值。因此,您可以使用amixer -c N sget Master, 来验证 的输出是否i3status与中的实际值匹配阿尔萨

相关内容