Как изменить раскладку клавиатуры при использовании xmonad?

Итак, у меня есть IBM Thinkpad X31, на котором запущены natty и xmonad в качестве менеджера окон. Клавиатура итальянская. Я хочу использовать раскладку клавиатуры на американском английском все время. Как мне это сделать?

7
задан 28 April 2011 в 16:01

3 ответа

Вот один из способов подключения 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. Ваш переключатель раскладки должен быть полностью функциональным.

Ссылка: http://zuttobenkyou.wordpress.com/tag/setxkbmap/

0
ответ дан 28 April 2011 в 16:01

Возможно, у вас уже есть файл запуска для запуска и настройки вещей при входе в систему.

Добавьте следующую строку, чтобы использовать несколько раскладок клавиатуры:

# 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% "

[ 1118] Это было для всех людей, которые искали несколько раскладок клавиатуры и находили эту тему. Если вы хотите использовать только одну раскладку клавиатуры, добавьте ее в сценарий запуска:

setxkbmap -layout us
0
ответ дан 28 April 2011 в 16:01

Чтобы изменить раскладку клавиатуры на американский английский, вы запускаете команду setxkbmap us. Чтобы интегрировать его с Xmonad, вы добавляете его в хук запуска .

0
ответ дан 28 April 2011 в 16:01

Другие вопросы по тегам:

Похожие вопросы: