web-dev-qa-db-fra.com

Définir de manière permanente les options de disposition du clavier avec setxkbmap dans gnome / Unity

Ubuntu 13.101 (et peut-être un gnome en amont) introduit bug très gênant : appuyer sur le raccourci clavier pour faire en sorte que le focus disparaisse du focus sur une fenêtre système, puis sur la fenêtre où le raccourci a été actionné. Certaines applications ont des actions liées au changement de focus, par exemple Twitter (dans un navigateur) ferme le champ de saisie du texte de réponse en cas de perte de focus, etc. Le sélecteur de clavier natif d'ubbuntu ne me convient donc pas, jusqu'à ce qu'il soit corrigé.

X a un mécanisme de commutation intégré, et il est bien meilleur, en plus de ne pas impliquer de commutation de focus, il commute immédiatement (le sélecteur de gnome est parfois aussi en retard).

Comment puis-je configurer les options xkbmap pour que les paramètres restent après le redémarrage et ne soient pas réinitialisés par Gnome?

Ce que j'ai essayé

D'abord, exécutez simplement setxkbmap:

setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt"

Mais cela ne fonctionne que:

  1. Pour la session en cours
  2. Jusqu'à ce que Gnome le remplace (par exemple, si vous touchez quelque chose dans org.gnome.desktop.input-sources de gconf, les triggers sont réinitialisés).

Deuxièmement, ajouter des options xkb à la configuration Xorg:

Une autre option consiste à ajouter ce qui suit à xorg config:

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us,ru"
        Option "XkbModel" "pc105"
        Option "XkbVariant" "pc105"
        Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection

Xorg comprend que lors du démarrage:

[    33.791] (**) Option "xkb_rules" "evdev"
[    33.791] (**) Option "xkb_model" "pc105"
[    33.791] (**) Option "xkb_layout" "us,ru"
[    33.791] (**) Option "xkb_variant" "pc105"
[    33.791] (**) Option "xkb_options" "grp:rctrl_toggle,grp_led:scroll"

Mais le changement de configuration est toujours réinitialisé plus tard, probablement par gnome.

Troisièmement, gconf

enter image description here

J'ai xkb-options et sources définis dans org.gnome.desktop.input-sources, mais Gnome définit toujours xkb sur une seule disposition en anglais:

$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     us
options:    grp_led:scroll
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete+ledscroll(group_lock)
symbols:    pc+us+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete+ledscroll(group_lock)"    };
    xkb_symbols   { include "pc+us+inet(evdev)" };
    xkb_geometry  { include "pc(pc105)" };
};

Quatrièmement, une autre option dans gconf

enter image description here

La définition de org.gnome.settings-daemon.peripherals.keyboard ne fonctionne pas non plus pour moi. Rien ne change.

Upd 1 : Il y a discussion recommande de supprimer /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so. Au moins, cela corrige certaines réinitialisations de xkbmap (c'est-à-dire après le verrouillage de l'écran).

1 J'utilise 14.04, mais le problème de perte de focus n'est toujours pas résolu. ( Rapport non confirmé dans le Gnome en amont )

27
kolen

Pour empêcher gnome de réinitialiser les paramètres du clavier dans X i, utilisez cette commande:

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

Cela fonctionne pour moi.

18
Iasha102

Je suis devenu fou comme ça, mais avec Ubuntu 14.04 (LTS), Xubuntu, xfce 4.12 et xkbd (de xfce goodies). Ctrl + Espace pour changer la disposition du clavier a fonctionné, mais Alt + Shift n'a pas fonctionné (touches modificateur uniquement).

Enfin réussi à faire fonctionner les choses-

1. Run ibus-setup (Keyboard Input Methods application).
2. Goto Advanced tab.
3. Check 'Use system keyboard layout'.
4. Click 'Close'

5. Run xfce4-keyboard-settings (Keyboard application).
6. Goto Layout tab.
7. Uncheck 'Use system defaults'
8. Select 'Keyboard model' (typically 'Generic 105-key (Intl) PC' will do)
9. Set 'Change layout option' to your required switching keys combination (typically Alt+Shift will do).
10. Add languages to 'Keyboard layout'.
11. Click 'Close'.
12. Restart the computer

Vous avez terminé! Utilisez Alt + Maj pour changer la disposition du clavier.

5
Oron Port

Je viens de lire cet article sur les écrans de verrouillage, ce qui peut être lié. Selon l'article, le verrouillage d'écran a pour conséquence de bloquer les périphériques d'entrée et de manipuler les paramètres régionaux. On dirait que vous avez quelques options:

  1. Arrêtez de verrouiller l'écran, cela inclut probablement l'écran de bienvenue qui remplit une fonction similaire
  2. Utiliser différents outils de gestion de l'alimentation
  3. Arrêtez d'utiliser ibus pour l'im-commutation (peut-être FCITX?)
  4. Créez un point d'ancrage pour les événements de déverrouillage d'écran comme décrit ici .

Il existe une discussion intéressante sur ce sujet et sur les événements connexes qui peut être trouvée sur la liste de diffusion ubuntu-dev: https://lists.ubuntu.com/archives/ubuntu-devel/2013-November/037768.html

2
Hawk

Solution de contournement par utilisateur wof dans le suivi des bugs Ubuntu, pour Ubuntu 14.10 à l'aide de gxkb :

https://bugs.launchpad.net/gnome-settings-daemon/+bug/1244090/comments/39

cette solution de contournement a fonctionné pour Ubuntu 14.10:

  • dans Paramètres-> Entrée de texte, supprimez toutes les sources d'entrée, ne laissez que l'anglais
  • installer gxkb (sélecteur de disposition): Sudo apt-get install gxkb
  • ajouter gxkb aux applications de démarrage via gnome-Tweak-tool
  • configurer les raccourcis clavier gxkb dans ~/.config/gxkb (la valeur par défaut est alt_shift, mais elle ne fonctionne pas avec 14.10. ctrl_shift fonctionne correctement)

p.s. nouvelle version de gxkb a appindicator pour Ubuntu. peut être installé via ppa: zen-root/gxkb-stable

1
kolen

D'abord, exécutez simplement setxkbmap:

setxkbmap -layout "us, ru" setxkbmap -option "grp: caps_toggle, grp_led: faire défiler, composer: ralt"

Mais cela ne fonctionne que:

For current session
Until Gnome will overwrite it (for example touching something in gconf's org.gnome.desktop.input-sources triggers reset).

En ce qui concerne Gnome, "le réinitialiser", je ne le sais pas. Je sais comment vous pouvez rester à chaque redémarrage car je devais faire exactement le même type de chose pour ma souris Logitech. Il a plusieurs boutons que je voulais remapper d'une certaine manière et je devais avoir cet ensemble au redémarrage.

Donc, ce que vous faites pour cela est de créer un fichier texte. Puis dans ce type de fichier texte:

#!/bin/bash

et juste en dessous de celui mis dans vos commandes. Comme exemple ma souris ressemble à ceci:

#!/bin/bash
xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 8 9 6 7 10 11 12 13 14 15 16

ensuite, vous sauvegarderez cela sous le nom de votre choix et vous le déplacerez dans un endroit comme votre répertoire personnel. il doit rester "pour toujours".

ensuite, ouvrez simplement vos applications de démarrage et ajoutez le fichier à votre démarrage sans que vous ayez à vous soucier de sa durabilité. vous pourrez redémarrer votre ordinateur, car vos paramètres reviendront dans le fichier que vous venez d'ajouter.

0
David