私はGnomeからManjaroのi3に移動しました。ウィンドウマネージャー、端末の色などの設定はほぼ完了です。しばらくして、音楽を聴くことに決めました。数分後、音量キーと再生キーが機能しないことに気付きました。
私はRazer Blackwidow Stealth 2014キーボードを持っているので、これらのメディアキーは実際にはファンクションキーと一緒になっています。例:再生/一時停止がオン F6、それを押したときにメディアキーとして機能します Fn のようなキー Fn + F6。
コントロールをいじくり回して、古いi3の投稿を見つけましたFAQ board: https://faq.i3wm.org/question/3747/enabling -multimedia-keys.1.html
次のコードをi3の.configファイルに貼り付けると表示されています(以下は、若干変更されたバージョンで、この特定の質問には関係のないいくつかの行が削除されています):
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
# Sreen brightness controls
bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness
# Media player controls
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioPause exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
そして、それもうまくいきませんでしたが、答えを見つけるプロセスは正しいです。
少なくとも私にとっては、これらの行をコピーした後、キーが機能しないという問題がありました。さらに調査した結果、ボリュームコマンドが少し異なる可能性があることがわかりました。PulseAudioのamixer
の代わりにpactl
を使用します。
最後に、それらはこのように残されました:
# Media volume controls
bindsym XF86AudioMute exec amixer sset 'Master' toggle
bindsym XF86AudioLowerVolume exec amixer sset 'Master' 5%-
bindsym XF86AudioRaiseVolume exec amixer sset 'Master' 5%+
そして彼らは働き始めた。
再生キーはもう少しトリッキーでした。私は.configがアクションを実行するために実行されるcommandを指示していると推定しました。次に、端末でplayerctl play-pause
を試してみました。もちろん、playerctlがインストールされていなかったため、機能しませんでした。インストール後(Sudo pacman -S playerctl
を使用)、これらのキーボードコマンドも問題なく動作しました。
私は0を1つの例で置き換えました:
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 1 + 5%#音量を上げるbindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 1 -5%#音量を下げるbindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 1 toggle#音を消す
オーディオデバイスの番号を確認するには、pavucontrolを開き、出力デバイスをクリックします。
pactl
を--
から分離するにはset-sink-...
が必要であり、ヘッドフォンを使用する場合は@DEFAULT_SINK@
を使用するほうが一貫していることがわかりました。
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl -- set-sink-volume @DEFAULT_SINK@ +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl -- set-sink-volume @DEFAULT_SINK@ -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl -- set-sink-mute @DEFAULT_SINK@ toggle # mute sound