web-dev-qa-db-fra.com

Comment faire fonctionner les clés multimédias avec i3?

Je suis passé de Gnome à i3 sur Manjaro, et j'ai presque fini de configurer le gestionnaire de fenêtres, les couleurs des terminaux et ainsi de suite. Après un certain temps, j'ai décidé d'écouter de la musique et après quelques minutes, j'ai réalisé que les touches de volume et les touches de lecture ne fonctionnaient pas.

J'ai un clavier Razer Blackwidow Stealth 2014, donc ces touches multimédias sont en fait avec les touches de fonction. Par exemple: Play/Pause est activé F6, et il agit comme une clé multimédia lorsque j'appuie sur la touche Fn clé, comme dans Fn + F6.

8
Renato Oliveira

La recherche de la réponse

Après un certain temps à jouer avec les contrôles, j'ai trouvé un message sur l'ancien i3 FAQ board: https://faq.i3wm.org/question/3747/enabling -multimedia-keys.1.html

Il dit de coller ce qui suit dans le fichier .config d'i3 (ci-dessous est une version légèrement modifiée, avec quelques lignes supprimées, qui ne sont pas pertinentes pour cette question particulière):

# 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

Et cela n'a pas fonctionné non plus, mais le processus de recherche de la réponse est correct.

La vraie réponse

Pour moi, au moins, le problème était qu'après avoir copié ces lignes, les clés ne fonctionneraient pas. Après quelques recherches supplémentaires, j'ai découvert que les commandes de volume pouvaient être un peu différentes, en utilisant amixer au lieu de pactl de PulseAudio.

À la fin, ceux-ci ont été laissés comme ceci:

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

et ils ont commencé à travailler.

Les touches de lecture étaient un peu plus compliquées. J'ai déduit que le .config indique quelle commande est exécutée pour effectuer l'action. J'ai ensuite essayé playerctl play-pause sur mon terminal. Bien sûr, cela n'a pas fonctionné, car playerctl n'était pas installé . Après l'avoir installé (en utilisant Sudo pacman -S playerctl) ces commandes clavier fonctionnaient très bien aussi.

9
Renato Oliveira

je viens de remplacer 0 par un exemple:

Commandes Pulse Audio

bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 1 + 5% #augmentation du volume sonore bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 1 -5% #diminution du volume sonore bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 1 bascule # son muet

pour voir quel est le numéro de votre périphérique audio, ouvrez pavucontrol et cliquez sur les périphériques de sortie, celui du haut est 0 sous celui-ci, etc.

1
help dude

J'ai trouvé que j'avais besoin d'un -- pour séparer le pactl du set-sink-... et qu'il était plus cohérent d'utiliser @DEFAULT_SINK@ si vous utilisez un casque.

# 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
Luke Murray