web-dev-qa-db-fra.com

Comment faites-vous des clés de volume et des travaux clés muets dans xmonad

Je suis nouveau à Xmonad (juste l'installer hier), et puisque je n'ai jamais utilisé Haskell auparavant, j'ai trouvé une configuration un peu déroutant pour moi. J'ai eu un peu de travail de Xmobar et de Trayer, mais je ne sais pas comment puis-je créer des clés multimédia pour ajuster le volume. Quelqu'un peut-il aider avec ça?

Question supplémentaire: Comment gérez-vous votre volume à Xmonad? Utilisez-vous l'icône du plateau ou d'autres choses comme ça?

Voici ma configuration xmonad:

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.EZConfig(additionalKeys)
import System.IO

main = xmonad =<< statusBar myBar myPP toggleStrutKey myConfig

-- Command to launch the bar
myBar = "xmobar"

-- Custom PP, it determines what is written to the bar
myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" }

-- Key bindings to toggle the gap for the bar
toggleStrutKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)

myConfig = defaultConfig {
    manageHook = manageDocks <+> manageHook defaultConfig,
    layoutHook = avoidStruts $ layoutHook defaultConfig,
    modMask = mod4Mask -- Rebind Mod to windows key
    } `additionalKeys`
    [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock")
    ]
22
yasar

Voir ceci graphiques.x11.extraytypes.xf86 pour les touches souhaitées et ajoutez à votre fichier de configuration:

import Graphics.X11.ExtraTypes.XF86
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
[ ...
, ((0, xF86XK_AudioLowerVolume   ), spawn "amixer set Master 2-")
, ((0, xF86XK_AudioRaiseVolume   ), spawn "amixer set Master 2+")
, ((0, xF86XK_AudioMute          ), spawn "amixer set Master toggle")
...]
14
Richard Huang

Si vous utilisez PulseAudio, pactl doit également fonctionner.

, ((0 , xF86XK_AudioRaiseVolume), spawn "pactl set-sink-volume 0 +1.5%")
, ((0 , xF86XK_AudioLowerVolume), spawn "pactl set-sink-volume 0 -- -1.5%")
, ((0 , xF86XK_AudioMute), spawn "pactl set-sink-mute 0 toggle")
]

0 est un identifiant de puissant. pactl list short sinks montrera la liste des lavabo.

pactl stat|grep 'Default Sink' | cut -f2 -d':'

montrera l'évier par défaut actuel. Vous pouvez utiliser un nom de lavabo plutôt numérique.

Doulier Doulble -- dit que ce n'est pas l'option (comme -h), juste une valeur 'to pactl.

9
Mait

Si amixer set Master 2- ne marche pas. Essayer amixer -D Pulse set Master 2- au lieu. Également 2%- et 2%+ changera le volume de 2%, ce qui peut être plus facile à utiliser. Vous pouvez tester ces commandes dans le terminal pour les adapter à votre goût avant de les mettre dans votre fichier de configuration Xmonad.

3
Justin Raymond