Comment devenir stable Dvorak international avec des deadkeys de premier niveau dans Debian?

Il y a des moyens instables / risqués comme le fil Comment get un point avec Dvorak d'Ubuntu 16.04? pour get la fonctionnalité, mais je ne peux pas l'exécuter dans de nombreux environnements. Les Allemands ont besoin de leurs propres (a / e / u / o avec des points) comme indiqué ici , tandis que les gens nordiques (Finlande, Suède, Norvège, Danemark, …) ont besoin de touches similaires (a / o avec des points). Je pense que l'approche par keyboard à un niveau est meilleure que l'approche par keyboard à deux niveaux. Options

  1. Pour get une telle disposition de keyboard par défaut dans Debian serait génial.
  2. Pour get un package dans apt pour un tel keyboard serait bon.
  3. Peut-être une autre façon …
  4. Effectuer ces modifications manuellement comme dans le premier thread n'est pas une option en raison des risques dans différents environnements.

OS X International Dvorak dispose d'une telle fonctionnalité par défaut, qui peut être utilisée comme reference, mais aussi l'approche manuelle comme dans la première réponse du thread. Il y a un ticket ouvert dans le développement Chrome pour une telle fonctionnalité dans le fil International Dvorak avec Deadkeys ciblé dans Chromebook.

Test de la réponse de clearkimura dans Debian

  1. Sortie

     masi@masi:~/Downloads$ sudo cp dvorak_intl /usr/share/X11/xkb/symbols/dvorak_intl masi@masi:~/Downloads$ setxkbmap -verbose dvorak_intl masi@masi:~/Downloads$ setxkbmap -I ~/.xkb dvorak_intl -print | xkbcomp -I$HOME/.xkb - $DISPLAY Warning: Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols Ignoring extra symbols Warning: Key <OUTP> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <KITG> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <KIDN> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <KIUP> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <RO> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I192> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I193> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I194> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I195> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I196> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: Key <I255> not found in evdev+aliases(qwerty) keycodes Symbols ignored Warning: No symbols defined for <AB11> (keycode 97) Warning: No symbols defined for <JPCM> (keycode 103) Warning: No symbols defined for <I120> (keycode 120) Warning: No symbols defined for <AE13> (keycode 132) Warning: No symbols defined for <I149> (keycode 149) Warning: No symbols defined for <I154> (keycode 154) Warning: No symbols defined for <I168> (keycode 168) Warning: No symbols defined for <I178> (keycode 178) Warning: No symbols defined for <I183> (keycode 183) Warning: No symbols defined for <I184> (keycode 184) Warning: No symbols defined for <FK19> (keycode 197) Warning: No symbols defined for <FK24> (keycode 202) Warning: No symbols defined for <I217> (keycode 217) Warning: No symbols defined for <I219> (keycode 219) Warning: No symbols defined for <I221> (keycode 221) Warning: No symbols defined for <I222> (keycode 222) Warning: No symbols defined for <I230> (keycode 230) Warning: No symbols defined for <I247> (keycode 247) Warning: No symbols defined for <I248> (keycode 248) Warning: No symbols defined for <I249> (keycode 249) Warning: No symbols defined for <I250> (keycode 250) Warning: No symbols defined for <I251> (keycode 251) Warning: No symbols defined for <I252> (keycode 252) Warning: No symbols defined for <I253> (keycode 253) 
  2. Redémarrer

  3. Sortie: la disposition du keyboard n'est plus active
  4. Allez dans Region & Language > choisissez> searchr Dvorak> Choisissez Dvorak avec les touches mortes sur la Fig. 1
  5. Sortie: la disposition de keyboard attendue est maintenant active et peut être sélectionnée dans la barre supérieure
  6. Dans Regien & Language, placez la disposition de votre keyboard principal en haut de la Fig. 2, c'est-à-dire supprimez vos dispositions de keyboard précédentes en haut. De cette façon, vous pouvez mettre Dvorak international avec des touches mortes comme keyboard principal qui rest là aussi après le redémarrage.

Fig. 1 Paramètres de région et de langue après le changement, Fig. 2 Paramètres de région et de langue lorsque Dvorak international avec touches mortes comme disposition principale du keyboard

entrer la description de l'image ici entrer la description de l'image ici

Système d'exploitation: Debian 8.7
Matériel: Asus Zenbook UX303UB, HP 2002 ordinateur portable
Gestionnaire de windows: Gnome 3.14

J'ai essayé il y a longtime pour faire le package pour une disposition de keyboard personnalisée. Voici l'option que je pourrais find à ce moment-là:

  1. Modifier la layout d'origine (ex: /usr/share/X11/xkb/symbols/us )

    Problèmes:

    • Il a été écrasé sur xkb-data mise à jour des xkb-data . Le nom du package peut différer d'une dissortingbution à l'autre.
    • Mauvaise idée de créer un packageage debian qui écrase un autre file de package.
  2. Ajouter une nouvelle layout avec un nom différent xy comme dans ce post

    Problèmes:

    • Les mêmes problèmes de la méthode précédente mais avec le file de déclaration de layout: /usr/share/X11/xkb/rules/evdev.xml qui doivent être modifiés. AFAIK, le server Xorg ne prend pas en charge le chargement dynamic pour les nouvelles mises en page.

Les methods ci-dessus se basent sur XIM (méthode d'input Standard X), un système existant. Je reorderais d'utiliser une méthode d'input moderne qui prend en charge les plug-ins (design modulaire) comme IBus ou SCIM.

Je ne l'ai pas essayé mais je m'attends à ce que ibus-table soit le moyen le plus simple d'aller comme expliqué dans ce post . Le file ajouté pourrait être emballé et installé séparément comme la plupart des moteurs et mises en page IBus, IBus prend soin de les charger.

Mettre à jour:

Eh bien, cette réponse sur AskUbuntu mentionne une façon plus propre de modifier le package en amont. Voici les instructions minimales pour rebuild le package

  1. Activer le code source du référentiel
  2. Télécharger les dependencies de construction

     sudo apt build-dep xkb-data 
  3. Télécharger la source

     mkdir sandbox cd sandbox apt source xkb-data 
  4. Créer un nouveau patch quilt après le guide d'empackageage Ubuntu

     cd xkeyboard-config*/ quilt new username_custom_layout.diff quilt add symbols/us 

    Faites votre modification nécessaire sur les symbols/us alors

     quilt refresh 
  5. Construire le package source et binary non signé

     debuild -us -uc 

Cette réponse explique comment installer la disposition du keyboard étendu international Dvorak trouvée dans cet article par Arjen van Kol . L'installation et la configuration étaient assez simples en utilisant XKB.

Comment installer une nouvelle layout

Téléchargez le file de layout dvorak_intl partir de l'article lié. Ensuite, copyz le file en tant que superuser dans le directory cible /usr/share/X11/xkb/symbols/ .

 $ sudo cp dvorak_intl /usr/share/X11/xkb/symbols/dvorak_intl 

Pas besoin de changer d'autorisation. Pour les users curieux, utilisez la command stat pour vérifier la permission; L'autorisation par défaut est 644 .

 $ ls -l /usr/share/X11/xkb/symbols/dvorak_intl -rw-r--r-- 1 root root 2989 May 14 17:32 /usr/share/X11/xkb/symbols/dvorak_intl $ stat -c '%a %n' /usr/share/X11/xkb/symbols/dvorak_intl 644 /usr/share/X11/xkb/symbols/dvorak_intl 

Comment définir une nouvelle layout

Avant d'apporter des modifications, exécutez setxkbmap -query pour vérifier la layout actuelle au cas où nous souhaitons annuler les modifications ultérieurement. La plupart des users utiliseront la disposition du keyboard anglais américain par défaut.

 $ setxkbmap -query rules: evdev model: pc105 layout: us <-- current layout 

Maintenant, exécutez la command setxkbmap pour définir la nouvelle disposition du keyboard. L'option -verbose été ajoutée pour voir la sortie, qui sinon ne montrera rien.

 $ setxkbmap -verbose dvorak_intl Warning! Multiple definitions of keyboard layout Using command line, ignoring X server Trying to build keymap using the following components: keycodes: evdev+aliases(qwerty) types: complete compat: complete symbols: pc+dvorak_intl+inet(evdev) geometry: pc(pc105) 

L'user peut exécuter à nouveau setxkbmap -query pour vérifier les modifications apscopes et affichées dans la colonne de layout.

 $ setxkbmap -query rules: evdev model: pc105 layout: dvorak_intl <-- new layout 

Testez une nouvelle layout

Les changements sont rendus effectifs immédiatement; Pas besoin de se déconnecter ou de recharger le server X du tout. Ouvrez un éditeur de text, puis appuyez sur chaque touche de quatre rangées sur le keyboard pour voir la sortie.

Clés de premier et deuxième niveaux (sans et avec Maj ):

 `1234567890[] ~!@#$%^&*(){} ´,.pyfgcrl/=\ ¨<>PYFGCRL?+| aoeuidhtns- AOEUIDHTNS_ ;qjkxbmwvz :QJKXBMWVZ 

Touches de troisième et quasortingème niveaux (avec AltGr et Shift + AltGr ):

  ¡ ♯ []{} ´¸… č «»¶   ¿ å°əŭ ß— Å Ŭ ¯ ĸ× 

Je ne sais pas s'il y a des keys manquantes pour les troisième et quasortingème niveaux pour la disposition du keyboard, par exemple dvorak_intl , puisque je n'ai pas l'habitude de taper à ces niveaux.

Rendez-le persistant

La command setxkbmap seule est effective uniquement pour la session en cours. Cependant, il est possible d'append la command suivante aux applications de démarrage dans l'environnement de bureau respectif.

 setxkbmap LAYOUTNAME 

Pour que le LAYOUTNAME soit configuré à chaque fois que l'user se connecte au système et que la session de bureau est démarrée. setxkbmap -query et setxkbmap -query , puis ouvrez Terminal et exécutez setxkbmap -query pour vérifier que la nouvelle disposition du keyboard a été appliquée pour chaque session.

Chargement de la configuration locale dans un système autre que Debian

Si la mise à niveau du système écrase le file de configuration dans /usr/share/X11/xkb/symbols , l'user peut déplacer le file de configuration de la structure ailleurs que dans le directory Home.

 $ mkdir -p ~/.xkb/symbols $ cp /usr/share/X11/xkb/symbols/dvorak_intl ~/.xkb/symbols $ sudo rm -i /usr/share/X11/xkb/symbols/dvorak_intl 

Puis chargez la configuration de la layout à partir de là, en utilisant la command avec l'option -I . Cela fonctionne de la même façon.

 $ setxkbmap -I ~/.xkb dvorak_intl $ setxkbmap -query rules: evdev model: pc105 layout: dvorak_intl 

Ainsi, au lieu de setxkbmap LAYOUTNAME , ajoutez setxkbmap -I ~/.xkb LAYOUTNAME à l'application de démarrage dans l'environnement de bureau respectif pour charger la configuration du keyboard pour chaque session.

La discordance dans Debian

Si la command renvoie le message "Erreur lors du chargement de la nouvelle description du keyboard" (comme décrit par cet ancien message sur Unix.SE ), utilisez plutôt la command suivante.

 $ setxkbmap -I ~/.xkb dvorak_intl -print | xkbcomp -I$HOME/.xkb - $DISPLAY Warning: Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols Ignoring extra symbols Warning: Key <OUTP> not found in evdev+aliases(qwerty) keycodes Symbols ignored ... Warning: No symbols defined for <I253> (keycode 253) 

Étrangement, la dernière command renvoie de nombreux messages d'avertissement qui peuvent être liés à mon model de keyboard étranger (variante de disposition du keyboard japonais OADG 109A). En outre, les modifications ne seront pas reflétées dans setxkbmap -query mais fonctionnent comme prévu lors de la saisie.

Testé à l'aide de setxkbmap 1.3.0 dans Xubuntu 14.04 (Xfce 4.10), Debian Xfce 8 (Xfce 4.10) et Debian 8.7 Gnome 3.14.

Avertissement

Cette réponse est destinée à montrer comment utiliser XKB pour installer et définir la nouvelle disposition du keyboard. L'instruction originale a été trouvée dans le référentiel ouvrier / xorg , qui mentionnait à la fois le path hérité et le path actuel (pour Ubuntu 10.04, GNOME 2.30 à l'époque). Cependant, l'instruction a été testée pour un environnement non GNOME, par exemple Xfce.

Les instructions datées fournies dans le file dvorak_intl étaient probablement destinées aux anciennes versions de GNOME et ne sont plus valables pour les dissortingbutions modernes que nous utilisons aujourd'hui. Alors que le path hérité est trouvé dans /etc/X11/xkb/symbols/ , le path actuel se trouve dans /usr/share/X11/xkb/symbols/ .

La touche AltGr fait reference à la touche de composition. Il n'est pas assigné par défaut (au less dans Xfce) ou généralement Alt Alt , selon la dissortingbution Linux utilisée. Alors que j'ai activé la touche Composer pour afficher les touches de troisième et quasortingème niveaux, la configuration de la touche de composition n'est pas affichée ci-dessus.

Exemple d'une disposition de keyboard personnalisée Dvorak appelée Dvorak International Extended qui a les caractéristiques demandées ici et complétées pour Windows et Linux (code ici ) dans la disposition du keyboard étendu international post Dvorak – Ajout d'une prise en charge internationale du keyboard simplifié Dvorak .

Fig. 1 Conception de la disposition du keyboard Extended de Dvorak International, Fig. 2 Recherche de Dvorak dans les parameters du keyboard Debian après les changements de Section Installation tentative dans Debian 8.7 , Fig.

entrer la description de l'image ici entrer la description de l'image ici entrer la description de l'image ici

Tentative d'installation dans Debian 8.7

J'ai réussi à compléter les deux premières étapes par les instructions d'installation, mais à défaut de voir l'effet de l'ajout de la disposition du keyboard là-bas

  1. [done] Copiez ce file dans votre directory /etc/X11/xkb/symbols/pc . Vous pouvez avoir besoin de privilèges root pour le faire.

     sudo mkdir -p /etc/X11/xkb/symbols/pc sudo cp dvorak_int /etc/X11/xkb/symbols/pc/ 
  2. Ajoutez la ligne suivante à /etc/X11/xkb/rules/xfree86.lst : dvorak_intl Dvorak international extended

      sudo touch /etc/X11/xkb/rules/xfree86.lst sudo echo `dvorak_intl Dvorak international extended` >> /etc/X11/xkb/rules/xfree86.lst 
  3. Cependant, je ne peux pas terminer la troisième étape

     // In order to make the keyboard layout available in GNOME, // you should also modify /etc/X11/xkb/rules/xfree86.xml // accordingly (this is an XML file and the format is mostly // self-explanatory). 

    La command apt search XF86Config ne returnne rien car mon système n'a pas le file /etc/X11/xkb/rules/xfree86.xml . Il y a une faute de frappe dans les instructions (Merci, clearkimura)! Rechercher le nom de file et le modifier avec les éléments suivants, mais je ne suis toujours pas sûr de ce qu'il faut remplir exactement – nom de file du file ou dvorak-intl-extended (mon nom personnalisé)

     masi@masi:~$ dpkg --search xfree86.xml xkb-data: /usr/share/X11/xkb/rules/xfree86.xml masi@masi:~$ sudo vim /usr/share/X11/xkb/rules/xfree86.xml 

    Ajout dans /usr/share/X11/xkb/rules/xfree86.xml

      <variant> <configItem> <name>dvorak-intl-extended</name> <description>English (Dvorak, international extended with dead keys)</description> </configItem> </variant> <variant> 

    Je redémarre le système mais les sorties infructueuses dans le menu Language Keyboard de la figure 2 et la figure 3.

    Peut-être, quelque chose ne va pas avec mes permissions

      masi@masi:~$ sudo ls -la /etc/X11/xkb/symbols/pc/ total 12 drwxr-xr-x 2 root root 4096 May 13 20:35 . drwxr-xr-x 3 root root 4096 May 12 16:25 .. -rw-r--r-- 1 root root 2989 May 12 16:26 dvorak_intl 

    Les permissions de directory devraient être bonnes

     masi@masi:~$ ls -la /etc/ | grep X11 drwxr-xr-x 10 root root 4096 Sep 8 2016 X11 masi@masi:~$ ls -la /etc/X11/ | grep xkb drwxr-xr-x 4 root root 4096 May 12 16:25 xkb masi@masi:~$ ls -la /etc/X11/xkb/ | grep symbols drwxr-xr-x 3 root root 4096 May 12 16:25 symbols masi@masi:~$ ls -la /etc/X11/xkb/symbols/ | grep pc drwxr-xr-x 2 root root 4096 May 13 20:35 pc 

Quelle devrait être la permission de la nouvelle disposition du keyboard?

Système d'exploitation: Debian 8.7