Come posso far funzionare le chiavi multimediali con i3?


8

Sono passato da Gnome a i3 su Manjaro e ho quasi finito di configurare il gestore delle finestre, i colori dei terminali e quant'altro. Dopo un po 'ho deciso di ascoltare un po' di musica e dopo un paio di minuti mi sono reso conto che i tasti del volume e di riproduzione non funzionano.

Ho una tastiera Razer Blackwidow Stealth 2014, quindi quei tasti multimediali sono effettivamente insieme ai tasti funzione. Ad esempio: Riproduci / Pausa è attivo F6e funge da tasto multimediale quando premo il Fntasto, come in Fn + F6.


Ho provato a ripulire questa domanda perché francamente circa il 90% era semplicemente sbagliato . Ora va bene, e la tua risposta lo chiarisce. Due delle cose che hai avuto la tua risposta precedente / successiva erano esattamente nella tua risposta. L'unico vero miglioramento è stato il gioco in movimento per giocare / mettere in pausa (il che non fa alcuna differenza sul fatto che funzioni o meno). Inoltre, il xevcomando era totalmente a castello. Se quello fosse l'output di xev quando premi quei tasti, la tua risposta funzionerebbe. Ritenta. Il tuo stato dovrebbe dire qualcosa XF86AudioNexte simili.
Evan Carroll,

Risposte:


9

La ricerca della risposta

Dopo un po 'di tempo in giro con i controlli, ho trovato un post sulla vecchia scheda FAQ i3: https://faq.i3wm.org/question/3747/enabling-multimedia-keys.1.html

Dice di incollare quanto segue nel file .config di i3 (qui sotto è una versione leggermente modificata, con alcune righe rimosse, che non sono rilevanti per questa particolare domanda):

# 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

E non ha funzionato neanche, tuttavia il processo di ricerca della risposta è corretto.

La vera risposta

Per me, almeno, il problema era che dopo aver copiato quelle righe, le chiavi non funzionavano. Dopo qualche altra ricerca, ho scoperto che i comandi del volume potevano essere leggermente diversi, usando amixerinvece PulseAudio pactl.

Alla fine, quelli furono lasciati così:

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

e hanno iniziato a lavorare.

I tasti di riproduzione erano un po 'più complicati. Ho dedotto che .config dice quale comando viene eseguito per eseguire l'azione. Quindi ho proceduto a provare playerctl play-pausesul mio terminale. Ovviamente non ha funzionato, perché playerctl non è stato installato . Dopo averlo installato (usando sudo pacman -S playerctl) anche quei comandi da tastiera funzionavano bene.


Per il controllo del volume, il primo modo ha funzionato per me cambiando i lavandini a 1 anziché a 0. Puoi vedere i tuoi lavandini facendo l'elenco pactl | grep sink
Ramzi C.

2

Ho scoperto che avevo bisogno di un --per separare il pactlda set-sink-...e che era più coerente da usare @DEFAULT_SINK@se si usano le cuffie.

# 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

+1 per @ DEFAULT_SINK @. Per me, i due trattini non erano richiesti, impediscono persino che questo funzioni (mxLinux qui).
Simone,

1

ho appena sostituito 0 con un esempio:

Controlli Pulse Audio

bindsym XF86AudioRaiseVolume exec - no-startup-id pactl set-sink-volume 1 + 5% #aumenta volume audio bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 1 -5% #domrease volume audio bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 1 attiva / disattiva l'audio #

per vedere quale numero è per il tuo dispositivo audio apri pavucontrol e fai clic sui dispositivi di output, quello superiore è 0 sotto quello è uno ecc

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.