そのため、ウィンドウマネージャーとしてnattyとxmonadを実行するIBM Thinkpad X31があります。キーボードはイタリア語です。私は常にアメリカ英語のキーボードマッピングを使用したいと思っています。どうすればいいですか?
XMonadと複数のキーボードレイアウトを接続する1つの方法を次に示します。
手順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を再起動します。レイアウトスイッチャーは完全に機能する必要があります。
ログイン時に 起動および設定を行うための起動ファイル がすでにある場合があります。
いくつかのキーボードレイアウトを使用するには、次の行を追加します。
# Keyboard layout switcher
setxkbmap -layout us,se -variant ,kinesis -option 'grp:alt_shift_toggle'
-layout
と-variant
は連動します。ここで、私のレイアウトはus
(バリアントなし、コンマの前に空)、およびse(kinesis)
です。たとえば、バリアントはdvorak
になります。必要ない場合は、variantを省略できます。
-option
は、レイアウトを切り替えるキーボードショートカットをここに設定します。
ウィンドウがレイアウトを記憶するために:
# Per window keyboard layout
kbdd
Xmobarを使用して現在のレイアウトを表示する場合は、これを.xmobarrc
Configに追加します。
, commands = [...
...
, Run Kbd [("se", "SE"), ("us", "US")]
]
...
, template = "...... %kbd% "
これは、複数のキーボードレイアウトをグーグルで検索して、このスレッドを見つけるためのすべての人々のためでした。キーボードレイアウトを1つだけにする場合は、これを起動スクリプトに追加します。
setxkbmap -layout us
キーボードマッピングをアメリカ英語に変更するには、setxkbmap us
コマンドを実行します。 Xmonadと統合するには、 スタートアップフックに追加 します。