我是 Xmonad 的新手(昨天刚安装),因为我以前从未使用过 haskell,所以我发现配置对我来说有点混乱。我得到了一些 xmobar 和托盘的工作,但我不知道如何让多媒体键来调节音量。任何人都可以帮忙吗?
附加问题:您如何在 xmonad 中管理您的卷。你使用托盘图标或其他类似的东西吗?
这是我的 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")
]
Run Code Online (Sandbox Code Playgroud)
小智 27
使用“xev”并点击多媒体键来发现他们的名字。一种可能是“XF86XK_AudioMute”。然后查看'/usr/include/X11/XF86keysym.h'的内容并查找名称。在我的系统上,“XF86XK_AudioMute”是“0x1008FF12”。
删除您将在配置文件中放置密钥的位置。它可能看起来像这样:
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.EZConfig(additionalKeys)
import System.IO
Run Code Online (Sandbox Code Playgroud)
-切-
} `additionalKeys`
[ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock"),
((0 , 0x1008FF11), spawn "amixer -q sset Master 2%-"),
((0 , 0x1008FF13), spawn "amixer -q sset Master 2%+"),
((0 , 0x1008FF12), spawn "amixer set Master toggle")
]
Run Code Online (Sandbox Code Playgroud)
“混合器”将设置您的音量。替换 mod4Mask 的“0”允许您在不按住 mod 键的情况下点击多媒体键。
小智 18
请参阅此Graphics.X11.ExtraTypes.XF86以获取所需的键并将其添加到配置文件中:
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")
...]
Run Code Online (Sandbox Code Playgroud)
Mai*_*ait 10
如果您使用的是pulseaudio,pactl
也应该可以使用。
, ((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")
]
Run Code Online (Sandbox Code Playgroud)
0
是接收器 ID。pactl list short sinks
将显示接收器列表。
pactl stat|grep 'Default Sink' | cut -f2 -d':'
Run Code Online (Sandbox Code Playgroud)
将显示当前的默认接收器。您可以使用接收器名称代替数字 ID。
Double dash--
告诉 '这不是选项(如 -h),只是值'到pactl
.
归档时间: |
|
查看次数: |
17924 次 |
最近记录: |