Master
重要な要約:ルートはALSAの制御にアクセスできません。
私の質問
キーボードで音量を調節できません
私が下した診断
journalctl -f
エラーを明らかにするamixer: Unable to find simple control 'Master', 0
amixer
端末で実行するとうまくいった。
これは権限の問題だと思われます。
私の環境
- 私のacpidボリュームを下げるプロファイルは次のとおりです。
events=button/volumedown
action=amixer set Master
私はArch LinuxとWindowsをデュアルブートします。
以前はxfceを使用していましたが、気分に応じて削除してdwm / lxdeに切り替えました。
私はBluetoothをサポートするためにPulseAudioを使用しています。
今まで試したこと
doasを使う(sudoのような)
- まったく同じエラーです。ただし、その前に(私のユーザー名はvinceです)
journalctl -f
という行があります。root ran command amixer set Master 5- as vince from /
- まったく同じエラーです。ただし、その前に(私のユーザー名はvinceです)
使用
pactl
- 同じ質問
ソリューションを通じて何を得たいですか?
Master
コントロールへのルートアクセスを提供します。sudo
ORは実際には複数のユーザーには拡張されないため、依存したくありません。doas
(ただし、一時的な解決策として使用できます。)コンソールと
X
すべてのユーザーに機能する必要はありませんが、それが機能する場合は好みます。
(答えがこれらすべてを満足していなくても大丈夫です。ただボリュームキーを使いたいです)
答え1
私はBluetoothをサポートするためにPulseAudioを使用しています。
pacmd
Pulseaudioを実行している場合は、ボリューム設定に(またはスクリプト経由で)Pulseaudio APIを使用してくださいpactl
。
Pulseaudioにはこの「デフォルト」コントロールが含まれていますが、Pulseaudioボリューム設定にマッピングされているALSAの互換性レイヤーがあります。
また読んでくださいシステム全体ユーザー固有のPulseaudioを備えたPulseaudio。後者はデフォルト設定なので、Pulseaudioを起動したログインユーザー以外のユーザーは、ルートを含むPulseaudioにアクセスできません。
したがって、あなたの問題はALSAの問題ではありません。 ALSAでは、あなただけが普遍的な「マスター」制御を持つことはできません(ほとんどの場合にもかかわらず)。サウンドカード実際に一つがあります。これへのルートアクセスはALSAでのみ問題になりません。
答え2
この問題を正常に解決しました。疑ったように、root
パルスオーディオのため、ユーザーの受信機にアクセスできません。 @dirktの回答のため、ここで強調表示されたpulseaudioの解決策が見つかりました。pactl は i3 の root ではなくユーザー空間で動作します。。
を使用していたのでに追加しなければなりませんdoas
でした。次に、acpid設定ファイルを次のように編集しました。setenv {XDG_RUNTIME_DIR=/run/user/1000}
doas.conf
event=button/volumedown
action=doas -u vince pactl set-sink-volume @DEFAULT_SINK@ -5%%
より良い解決策は、@dikrtの答えからわかるように、システム全体のパルスオーディオを使用することですが、これは私が今までに持っていた解決策です。