如何在使用xmonad时更改键盘布局?
所以我有一个IBM Thinkpad X31,运行natty和xmonad作为窗口管理器。 键盘是意大利语。 我希望一直使用美式英语键盘映射。 我该怎么做呢?
这是连接XMonad和多个键盘布局的一种方法。
步骤1.创建一个将在布局之间切换的脚本。 例如,假设我们将支持英语(美国),意大利语和法语。
/home/you/bin/layout_switch.sh
:
#!/bin/zsh # LICENSE: PUBLIC DOMAIN # switch between my layouts # If an explicit layout is provided as an argument, use it. Otherwise, select the next layout from # the set [us, it, fr]. if [[ -n "$1" ]]; then setxkbmap $1 else layout=$(setxkbmap -query | awk 'END{print $2}') case $layout in us) setxkbmap it ;; it) setxkbmap fr ;; *) setxkbmap us ;; esac fi
测试此脚本 – 运行它并查看键盘布局是否在布局之间循环。 如果是,请继续执行下一步。
步骤2.自定义XMonad设置以支持将切换布局的自定义键绑定。
在您的主目录中,创建名为“.xmonad”的目录(如果它不存在)。
/home/you/.xmonad/xmonad.hs
:
import XMonad import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Util.Run(spawnPipe) import XMonad.Util.EZConfig(additionalKeys) import System.IO main = do xmonad $ defaultConfig { terminal = "gnome-terminal" } `additionalKeys` [ (( mod1Mask , xK_Escape), spawn "/home/you/bin/layout_switch.sh") ]
现在,按Mod + q重新启动XMonad。 您的布局切换器应该function齐全。
参考:http: //zuttobenkyou.wordpress.com/tag/setxkbmap/
要将键盘映射更改为美式英语,请运行命令setxkbmap us
。 要将它与Xmonad集成, 请将其添加到启动挂钩 。
您可能已经有一个启动文件可以在登录时启动和配置 。
添加以下行以使用多个键盘布局:
# Keyboard layout switcher setxkbmap -layout us,se -variant ,kinesis -option 'grp:alt_shift_toggle'
-layout
和-layout
一起工作。 在这里,我的布局是us
(没有变体,在逗号之前为空)和se(kinesis)
。 例如,变体可能是dvorak
。 如果您不想要它们,可以省略变体。
-option
在此处设置用于在布局之间切换的键盘快捷键。
让Windows记住他们的布局:
# Per window keyboard layout kbdd
如果您使用xmobar并想要显示当前布局,请将其添加到.xmobarrc
配置中:
, commands = [... ... , Run Kbd [("se", "SE"), ("us", "US")] ] ... , template = "...... %kbd% "
这是为所有人搜索多个键盘布局和找到这个线程。 如果只需要一个键盘布局,请将其添加到启动脚本中:
setxkbmap -layout us