Итак, у меня есть 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")
]
Теперь перезапустите XMonad, нажав Mod + q. Ваш переключатель раскладки должен быть полностью функциональным.
Возможно, у вас уже есть файл запуска для запуска и настройки вещей при входе в систему.
Добавьте следующую строку, чтобы использовать несколько раскладок клавиатуры:
# Keyboard layout switcher
setxkbmap -layout us,se -variant ,kinesis -option 'grp:alt_shift_toggle'
-layout
и -variant
работают вместе. Здесь мои макеты us
(без варианта, пустые перед запятой) и se(kinesis)
. Варианты могут быть dvorak
, например. Вы можете опустить вариант, если вы не хотите их.
-option
устанавливает здесь комбинацию клавиш для переключения между раскладками.
Чтобы окна запомнили свой макет:
# Per window keyboard layout
kbdd
Если вы используете xmobar и хотите показать текущий макет, добавьте его в .xmobarrc
Config:
, commands = [...
...
, Run Kbd [("se", "SE"), ("us", "US")]
]
...
, template = "...... %kbd% "
setxkbmap -layout us
Чтобы изменить раскладку клавиатуры на американский английский, вы запускаете команду setxkbmap us
. Чтобы интегрировать его с Xmonad, вы добавляете его в хук запуска .