web-dev-qa-db-fra.com

Comment changer la disposition de mon clavier lors de l'utilisation de xmonad?

J'ai donc un IBM Thinkpad X31, exécutant natty et xmonad en tant que gestionnaire de fenêtres. Le clavier est italien. Je souhaite utiliser un mappage de clavier anglais américain, tout le temps. Comment puis-je faire cela?

7
Walead Fuss

Voici un moyen de connecter XMonad et plusieurs configurations de clavier.

Étape 1. Créez un script qui basculera entre vos mises en page. Par exemple, supposons que nous soutenons l'anglais (US), l'italien et le français.

/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

Testez ce script - exécutez-le et voyez si la disposition du clavier varie entre les présentations. Si c'est le cas, passez à l'étape suivante.

Étape 2. Personnalisez les paramètres XMonad pour prendre en charge la liaison de clé personnalisée qui changera la disposition.

Dans votre répertoire personnel, créez un répertoire nommé ".xmonad" (s'il n'existe pas).

/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")
     ]

Maintenant, redémarrez XMonad en appuyant sur Mod + q. Votre commutateur de disposition devrait être entièrement fonctionnel.

Référence: http://zuttobenkyou.wordpress.com/tag/setxkbmap/

6
orlenko

Vous avez peut-être déjà un fichier de démarrage pour lancer et configurer les choses au moment de la connexion.

Ajoutez la ligne suivante pour utiliser plusieurs dispositions de clavier:

# Keyboard layout switcher
setxkbmap -layout us,se -variant ,kinesis -option 'grp:alt_shift_toggle'

-layout et -variant travaillent ensemble. Ici, mes mises en page sont us (pas de variante, vide avant la virgule), et se(kinesis). Les variantes pourraient être dvorak, par exemple. Vous pouvez omettre une variante si vous n'en voulez pas.

-option définit ici le raccourci clavier permettant de basculer entre les présentations.

Pour que les fenêtres se souviennent de leur disposition:

# Per window keyboard layout
kbdd

Si vous utilisez xmobar et souhaitez afficher la mise en page actuelle, ajoutez-la à votre .xmobarrc Config:

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

C'était pour tout le monde googler pour plusieurs dispositions de clavier et trouver ce fil. Si vous souhaitez une seule disposition de clavier, ajoutez ceci à votre script de démarrage:

setxkbmap -layout us
3
Gauthier

Pour changer le mappage de votre clavier en anglais américain, vous exécutez la commande setxkbmap us. Pour l'intégrer à Xmonad, vous ajoutez-le au hook de démarrage .

2
Egil