55 votes

Deux claviers sur un seul ordinateur. Lorsque j'écris avec A, je veux une disposition de clavier américaine, lorsque j'utilise B, je veux du suédois. Est-ce possible ?

J'ai un ordinateur portable avec lequel j'utilise un clavier externe. Lorsque je tape sur le clavier externe, je veux utiliser une disposition de clavier américaine, puisque c'est le type de clavier externe que je possède. En revanche, lorsque je tape à l'aide du clavier intégré, j'aimerais utiliser une disposition suédoise.

Est-ce possible ? Et comment dois-je m'y prendre ?

Je pose la question ici car je pense que c'est ici que l'on trouvera le plus d'expertise sur Linux.

43voto

corstar Points 21

Tout d'abord, vous devez trouver l'ID du périphérique du clavier à modifier :

$ xinput -list | grep -i key
 Virtual core keyboard                     id=3    [master keyboard (2)]
     Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
     Power Button                              id=6    [slave  keyboard (3)]
     Power Button                              id=7    [slave  keyboard (3)]
     LITEON Technology USB Keyboard            id=9    [slave  keyboard (3)]
     LITEON Technology USB Keyboard            id=10   [slave  keyboard (3)]

Modifiez ensuite la mise en page à l'aide de setxkbmap :

$ setxkbmap -device 9 dvorak

Certaines versions de setxkbmap nécessitent un argument '-layout' :

$ setxkbmap -device 9 -layout dvorak

10voto

gbarry Points 3813

Je peux affirmer que ce que vous voulez faire est effectivement possible. J'ai réalisé le scénario spécifié en commençant par

sudo cat /dev/input/event(0,1,2..)

tout en tapant sur chaque clavier pour s'assurer qu'ils étaient reconnus comme des dispositifs distincts. Ensuite, j'ai simplement procédé par essai et erreur, en expérimentant avec

setxkbmap -device (1-x) us .

J'ai découvert que setxkbmap -device 1 us a configuré les deux (tous les) claviers, tandis que setxkbmap -device 6 us n'a affecté que le secondaire. Le fait qu'ils étaient tous deux connectés via PS/2 est peut-être pertinent.

Bien sûr, il n'est pas garanti que cela fonctionne pour vous, et ce n'est même pas une réponse correcte, mais cela confirme que c'est tout à fait possible. Je ne sais pas selon quel schéma les claviers individuels sont nommés. /dev/input mais je suis sûr que les noms peuvent être spécifiés dans udev, ce qui permet de mettre le code d'accès approprié. setxkbmap dans /etc/rc.local ou similaire.

10voto

zanegray Points 201

Bien que cette question date d'un peu plus d'un an, j'ai pensé partager ma solution car aucune des autres réponses n'a abordé la question de savoir comment faire pour que cela fonctionne au démarrage.

Ma situation : J'ai un clavier Happy Hacking qui se branche via usb et dont les touches sont déplacées (contrôle de l'emplacement du verrouillage des majuscules, etc). Je l'utilise la plupart du temps, mais parfois j'aimerais utiliser le clavier standard de mon ordinateur portable ou un autre clavier usb. Pour ces claviers, j'ai créé une disposition de clavier personnalisée.

L'astuce est que la disposition du clavier personnalisé ne doit pas être appliquée au clavier Happy Hacking.

Solution : J'ai créé un fichier de configuration Xorg comme tel :

$ cat /etc/X11/xorg.conf.d/30-keyboard.conf 
Section "InputClass"
        Identifier "Happily Hacked Keyboard"
        MatchDevicePath "/dev/input/event*"
        MatchIsKeyboard "on"
        Driver "evdev"

        Option "XkbLayout" "us"
        Option "XkbVariant" "hhk"
EndSection

Section "InputClass"
        Identifier "Happy Hacking Keyboard"
        MatchIsKeyboard "on"
        MatchVendor "Topre_Corporation"
        Driver "evdev"

        Option "XkbLayout" "us"
        Option "XkbVariant" "basic"
EndSection

La première partie dit essentiellement que pour tout clavier standard, il faut appliquer la disposition habituelle avec la variante personnalisée. La deuxième partie dit que pour le clavier hacking heureux, utilisez la disposition us avec la variante de base.

Vous pouvez faire correspondre les appareils en fonction d'un grand nombre de paramètres : Doc. xorg

5voto

Tommy McGuire Points 146

Cela pourrait être possible, à en juger par l'argument -device de setxkbmap :

       -device device
               Specifies the numeric device id of the input device to be
               updated with the new keyboard layout. If not specified, the
               core keyboard device of the X server is updated.

Naturellement, je ne dispose pas d'un deuxième clavier pour l'essayer pour le moment.

-Un utilisateur de Dvorak

1voto

Mank Points 416

Je ne pense pas que vous puissiez le faire exactement comme vous le souhaitez. Il y a deux options que je connais :

1) Vous pouvez faire en sorte que la commutation se fasse par un simple clic de souris ou une simple pression sur une touche.

Avec Ubuntu / GNOME :

Clic de souris

Dans Ubuntu / Gnome, une fois que vous avez configuré vos dispositions d'entrée, allez à un endroit vide sur votre panneau, faites un clic droit et cliquez sur "Ajouter au panneau". Sélectionnez "Keyboard Indicator" pour l'ajouter au panneau. Cela devrait faire apparaître un tout petit bout de texte indiquant votre disposition de clavier et vous pouvez cliquer dessus pour changer.

Raccourci clavier

Système -> Préférences -> Clavier -> Dispositions -> Options de mise en page

Il y a une option "Touche(s) pour changer la disposition". Vous pouvez la définir sur Alt+Shift, ce qui ne devrait pas perturber les raccourcis clavier normaux.

Je suppose qu'il existe un moyen KDE de le faire également.

2) L'autre alternative est http://en.wikipedia.org/wiki/Xneur Mais je ne suis pas sûr que cela soit disponible pour le suédois et il se peut que cela ne soit pas possible pour les langues qui ont des constructions similaires à l'anglais.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X