Xmonad 根据键盘布局更改按键绑定

Xmonad 根据键盘布局更改按键绑定

有没有办法根据当前键盘布局在 Xmonad 中定义不同的键绑定?例如,如果我在标准美国键盘布局和 Dvorak 键盘布局之间切换,有没有办法让 mod+o 根据我当前使用的布局生成不同的应用程序?

很容易在某个地方找到一个纯文本文件来跟踪键盘布局(例如,有一个脚本,每当键盘布局发生变化时,都会将其写入文件)。然后,要确定哪种键盘布局处于活动状态,Xmonad 只需读取此文件即可。问题是,我不知道 Xmonad 如何根据此文件的内容加载不同的键绑定集。

我没有使用过 Haskell,所以请原谅我的无知。谢谢!

答案1

http://hackage.haskell.org/package/xmonad-vanessa-2.1.0.1/docs/XMonad-Util-Keyboard.html

parseKB :: IO KbLayout

上面给出了看上去的布局。

然后你只需用这个做一个条件判断,(请注意这还没有经过测试 - 只是一个粗略的想法):

example :: X ()
example = do
  x <- liftIO $ parseKB
  case x of
   "us" -> windows W.focusDown
   "dvorak" -> windows W.focusUp

相关内容