Bagaimana saya bisa membuat kunci media berfungsi dengan i3?

8

Saya telah pindah dari Gnome ke i3 di Manjaro, dan saya hampir selesai dengan mengkonfigurasi window manager, dan warna terminal dan yang lainnya. Setelah beberapa waktu saya hanya memutuskan untuk mendengarkan musik, dan setelah beberapa menit saya menyadari bahwa tombol volume dan tombol pemutaran tidak berfungsi.

Saya memiliki keyboard Razer Blackwidow Stealth 2014, jadi tombol media tersebut sebenarnya bersama dengan tombol Function. Misalnya: Mainkan / Jeda aktif F6, dan berfungsi sebagai tombol media saat saya menekan Fntombol, seperti di Fn + F6.

Renato Oliveira
sumber
Saya mencoba untuk membersihkan pertanyaan ini karena terus terang sekitar 90% dari itu salah . Sekarang tidak apa-apa, dan jawaban Anda sudah jelas. Dua dari hal-hal yang Anda miliki jawabannya, prev / next persis ada di jawaban Anda. Satu-satunya peningkatan nyata dalam bergerak play to play / pause (yang tidak membuat perbedaan apakah itu berfungsi atau tidak). Apalagi xevperintahnya benar-benar susun. Jika itu adalah output dari xev ketika Anda menekan tombol-tombol itu, jawaban Anda akan berhasil. Coba lagi. Negara Anda harus mengatakan sesuatu XF86AudioNextdan sejenisnya.
Evan Carroll

Jawaban:

9

Mencari jawabannya

Setelah beberapa waktu bermain-main dengan kontrol, saya telah menemukan posting di papan FAQ i3 lama: https://faq.i3wm.org/question/3747/enabling-multimedia-keys.1.html

Dikatakan untuk menempelkan yang berikut ini ke file .config i3 (di bawah ini adalah versi yang sedikit dimodifikasi, dengan beberapa baris dihapus, yang tidak relevan dengan pertanyaan khusus ini):

# 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

Dan itu juga tidak berhasil, namun proses menemukan jawabannya sudah benar.

Jawaban sebenarnya

Bagi saya, paling tidak, masalahnya adalah setelah menyalin garis-garis itu, kunci tidak akan berfungsi. Setelah beberapa penelitian lebih lanjut, saya menemukan bahwa perintah volume bisa sedikit berbeda, menggunakan amixerbukan PulseAudio pactl.

Pada akhirnya, mereka dibiarkan seperti ini:

# Media volume controls
bindsym XF86AudioMute exec amixer sset 'Master' toggle
bindsym XF86AudioLowerVolume exec amixer sset 'Master' 5%-
bindsym XF86AudioRaiseVolume exec amixer sset 'Master' 5%+

dan mereka mulai bekerja.

Tombol playback sedikit lebih rumit. Saya menyimpulkan bahwa .config memberitahu perintah mana yang dieksekusi untuk melakukan tindakan. Kemudian saya melanjutkan untuk mencoba playerctl play-pauseterminal saya. Tentu saja itu tidak berhasil, karena playerctl tidak diinstal . Setelah menginstalnya (menggunakan sudo pacman -S playerctl) perintah-perintah keyboard itu bekerja dengan baik juga.

Renato Oliveira
sumber
Untuk kontrol volume, cara pertama bekerja untuk saya dengan mengubah wastafel menjadi 1, bukan 0. Anda dapat melihat wastafel dengan melakukan daftar pactl | grep sink
Ramzi C.
2

Saya menemukan bahwa saya perlu --untuk memisahkan pactldari set-sink-...dan bahwa itu lebih konsisten untuk digunakan @DEFAULT_SINK@jika Anda menggunakan headphone.

# 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
Luke Murray
sumber
+1 untuk @ DEFAULT_SINK @. Bagi saya, dua garis tidak diperlukan, mereka bahkan mencegah ini berfungsi (mxLinux di sini).
Simon
1

saya baru saja mengganti 0 dengan satu contoh:

Kontrol Audio Pulsa

bindsym XF86AudioRaiseVolume exec --tidak-startup-id pactl set-sink-volume 1 + 5% #meningkatkan volume suara exec --no-startup-id pactl set-sink-mute 1 toggle # mute suara

untuk melihat nomor untuk perangkat audio Anda, buka pavucontrol dan klik perangkat keluaran, yang teratas adalah 0 di bawah itu adalah satu dll

tolong kawan
sumber