Ich habe also ein IBM Thinkpad X31, auf dem natty und xmonad als Fenstermanager ausgeführt werden. Die Tastatur ist italienisch. Ich möchte ständig ein amerikanisches englisches Tastatur-Mapping verwenden. Wie mache ich das?
Ich habe also ein IBM Thinkpad X31, auf dem natty und xmonad als Fenstermanager ausgeführt werden. Die Tastatur ist italienisch. Ich möchte ständig ein amerikanisches englisches Tastatur-Mapping verwenden. Wie mache ich das?
Antworten:
Hier ist eine Möglichkeit, XMonad und mehrere Tastaturlayouts zu verbinden.
Schritt 1. Erstellen Sie ein Skript, das zwischen Ihren Layouts wechselt. Nehmen wir zum Beispiel an, wir werden Englisch (USA), Italienisch und Französisch unterstützen.
/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
Testen Sie dieses Skript - führen Sie es aus und prüfen Sie, ob das Tastaturlayout zwischen den Layouts wechselt. Wenn dies der Fall ist, fahren Sie mit dem nächsten Schritt fort.
Schritt 2. Passen Sie die XMonad-Einstellungen an, um die benutzerdefinierte Schlüsselbindung zu unterstützen, mit der das Layout geändert wird.
Erstellen Sie in Ihrem Home-Verzeichnis ein Verzeichnis mit dem Namen ".xmonad" (falls nicht vorhanden).
/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")
]
Starten Sie nun XMonad neu, indem Sie Mod + q drücken. Ihr Layout-Umschalter sollte voll funktionsfähig sein.
Möglicherweise haben Sie bereits eine Startdatei, um die Dinge beim Anmelden zu starten und zu konfigurieren .
Fügen Sie die folgende Zeile hinzu, um mehrere Tastaturlayouts zu verwenden:
# Keyboard layout switcher
setxkbmap -layout us,se -variant ,kinesis -option 'grp:alt_shift_toggle'
-layout
und -variant
zusammenarbeiten. Hier sind meine Layouts us
(keine Variante, leer vor dem Komma) und se(kinesis)
. Varianten könnten dvorak
zum Beispiel sein. Sie können die Variante weglassen, wenn Sie sie nicht möchten.
-option
Legt hier die Tastenkombination zum Wechseln zwischen Layouts fest.
Damit sich Fenster an ihr Layout erinnern:
# Per window keyboard layout
kbdd
Wenn Sie xmobar verwenden und wollen das aktuelle Layout zeigen, fügen Sie diese zu Ihrer .xmobarrc
Config:
, commands = [...
...
, Run Kbd [("se", "SE"), ("us", "US")]
]
...
, template = "...... %kbd% "
Das war für alle Leute, die nach mehreren Tastaturlayouts googelten und diesen Thread fanden. Wenn Sie nur ein Tastaturlayout möchten, fügen Sie dieses Ihrem Startskript hinzu:
setxkbmap -layout us
Um Ihre Tastaturzuordnung auf amerikanisches Englisch zu ändern, führen Sie den Befehl aus setxkbmap us
. Um es in Xmonad zu integrieren, fügen Sie es dem Start-Hook hinzu .