使用 xmonad 时如何更改键盘布局?

Wal*_*uss 9 keyboard 11.04 xmonad layout

所以我有一个 IBM Thinkpad X31,运行 natty 和 xmonad 作为窗口管理器。键盘是意大利语。我希望一直使用美式英语键盘映射。我该怎么做呢?

orl*_*nko 8

这是连接 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
Run Code Online (Sandbox Code Playgroud)

测试此脚本 - 运行它并查看键盘布局是否在布局之间循环。如果是,请继续下一步。

步骤 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")
     ]
Run Code Online (Sandbox Code Playgroud)

现在,按 Mod+q 重新启动 XMonad。您的布局切换器应该功能齐全。

参考:http: //zuttobenkyou.wordpress.com/tag/setxkbmap/


Gau*_*ier 5

您可能已经有一个启动文件来在登录时启动和配置事物

添加以下行以使用多种键盘布局:

# Keyboard layout switcher
setxkbmap -layout us,se -variant ,kinesis -option 'grp:alt_shift_toggle'
Run Code Online (Sandbox Code Playgroud)

-layout-variant共同努力。这里我的布局是us(无变体,逗号前为空)和se(kinesis). dvorak例如,变体可以是。如果您不需要变体,可以省略它们。

-option在此设置在布局之间切换的键盘快捷键。

让窗口记住它们的布局:

# Per window keyboard layout
kbdd
Run Code Online (Sandbox Code Playgroud)

如果您使用 xmobar 并希望显示当前布局,请将其添加到您的.xmobarrc配置中:

, commands = [...
...
, Run Kbd [("se", "SE"), ("us", "US")]
]
...
, template = "...... %kbd% "
Run Code Online (Sandbox Code Playgroud)

这适用于所有在谷歌上搜索多种键盘布局并找到此线程的人。如果您只需要一种键盘布局,请将其添加到启动脚本中:

setxkbmap -layout us
Run Code Online (Sandbox Code Playgroud)


Egi*_*gil 2

要将键盘映射更改为美式英语,请运行命令setxkbmap us。要将其与 Xmonad 集成,请将其添加到启动挂钩中