Xmonad 多子图组合键
Xmonad multiple submap key combos
This answer 描述了如何在 Xmonad 中创建组合键绑定。
使用 additionalKeys
我将我的键绑定作为列表添加到我的 XConfig 配置中:
...
-- Does NOT work
, ((myModMask, xK_a), submap . M.fromList $
[ ((0, xK_l), submap . M.fromList $
[ ((0, xK_1), spawn "xbacklight -set 10" ) ])
])
-- Does work
, ((myModMask, xK_d), submap . M.fromList $
[ ((0, xK_l), submap . M.fromList $
[ ((0, xK_2), spawn "xbacklight -set 20" ) ])
])
-- Does work
, ((myModMask, xK_a), submap . M.fromList $
[ ((0, xK_l), submap . M.fromList $
[ ((0, xK_5), spawn "xbacklight -set 50" ) ])
])
...
但似乎只有最后定义的那些以相同键开头的组合有效(这里第一个以 "a" 开头的组合似乎被最后一个覆盖)。
与链接答案中示例的不同之处仅在于组合以 modkey+key 绑定开始,而不仅仅是一个键。
这可能是什么问题?
我相当确定您不能拥有具有相同键绑定的键映射列表条目 - (myModMask, xK_a)
。在这种情况下,最后一个条目会覆盖前一个条目。
但是您可以合并这两个条目:
((myModMask, xK_a), submap . M.fromList $
[ ((0, xK_l), submap . M.fromList $
[
((0, xK_1), spawn "xbacklight -set 10" )
, ((0, xK_5), spawn "xbacklight -set 50" )
]
)
]
)
您可能还想尝试 EZConfig
,它会根据 Emacs 中的绑定字符串为您制作子图。例如:
import XMonad.Util.EZConfig
myKeymap :: [(String, X ())]
myKeymap =
[ ("M-; s m", namedScratchpadAction myScratchpads "mongod" )
, ("M-; s a m", namedScratchpadAction myScratchpads "mongod2" )
, ("M-; s z", namedScratchpadAction myScratchpads "zk" )
, ("M-; s k", namedScratchpadAction myScratchpads "kafka" )
-- ... and so on ...
将其与 additionalKeys
一起使用,参见 https://hackage.haskell.org/package/xmonad-contrib-0.13/docs/XMonad-Util-EZConfig.html
This answer 描述了如何在 Xmonad 中创建组合键绑定。
使用 additionalKeys
我将我的键绑定作为列表添加到我的 XConfig 配置中:
...
-- Does NOT work
, ((myModMask, xK_a), submap . M.fromList $
[ ((0, xK_l), submap . M.fromList $
[ ((0, xK_1), spawn "xbacklight -set 10" ) ])
])
-- Does work
, ((myModMask, xK_d), submap . M.fromList $
[ ((0, xK_l), submap . M.fromList $
[ ((0, xK_2), spawn "xbacklight -set 20" ) ])
])
-- Does work
, ((myModMask, xK_a), submap . M.fromList $
[ ((0, xK_l), submap . M.fromList $
[ ((0, xK_5), spawn "xbacklight -set 50" ) ])
])
...
但似乎只有最后定义的那些以相同键开头的组合有效(这里第一个以 "a" 开头的组合似乎被最后一个覆盖)。
与链接答案中示例的不同之处仅在于组合以 modkey+key 绑定开始,而不仅仅是一个键。
这可能是什么问题?
我相当确定您不能拥有具有相同键绑定的键映射列表条目 - (myModMask, xK_a)
。在这种情况下,最后一个条目会覆盖前一个条目。
但是您可以合并这两个条目:
((myModMask, xK_a), submap . M.fromList $
[ ((0, xK_l), submap . M.fromList $
[
((0, xK_1), spawn "xbacklight -set 10" )
, ((0, xK_5), spawn "xbacklight -set 50" )
]
)
]
)
您可能还想尝试 EZConfig
,它会根据 Emacs 中的绑定字符串为您制作子图。例如:
import XMonad.Util.EZConfig
myKeymap :: [(String, X ())]
myKeymap =
[ ("M-; s m", namedScratchpadAction myScratchpads "mongod" )
, ("M-; s a m", namedScratchpadAction myScratchpads "mongod2" )
, ("M-; s z", namedScratchpadAction myScratchpads "zk" )
, ("M-; s k", namedScratchpadAction myScratchpads "kafka" )
-- ... and so on ...
将其与 additionalKeys
一起使用,参见 https://hackage.haskell.org/package/xmonad-contrib-0.13/docs/XMonad-Util-EZConfig.html