Comment puis-je ajouter une séquence de touches de composition personnalisée?

40

Comment puis-je ajouter une séquence de touches de composition personnalisée?

Par exemple, je voudrais Compose, |, >taper le symbole.

J'ai essayé d'ajouter ce qui suit à ~/.XCompose:

# Import default rules from the system Compose file
include "%L"

# Custom definitions
<Multi_key> <bar> <greater> : "▸" U25B8 # Black right-pointing small triangle

mais la nouvelle séquence n'est utilisable nulle part sauf pour xterm.

Installer ibus-table-compose puis activer la méthode de saisie Compose dans IBus n'a pas résolu le problème. IBus a imité de nombreuses séquences de touches composées, mais pas celle que j'avais créée.

ændrük
la source
Comment tapez-vous le symbole maintenant? Vous pouvez probablement mapper la commande que vous utilisez pour taper le symbole sur des touches spécifiques de la disposition du clavier. Vous pouvez utiliser le pseudonyme exact d'une clé particulière xev. Mais bien sûr, ce n’est que ma supposition.
Nitin Venkatesh
3
Je @nitstorm dactylographié en appuyant sur Alt Gr +>, qui est une application personnalisée que je mets en ajoutant keysym U25B8à keycode 60dans ~/.xmodmaprc. Je ne demande pas comment taper; Je demande comment créer une séquence de touches de composition pour cela.
ændrük

Réponses:

7

Créez un fichier ~/.XCompose(c'est-à-dire un fichier nommé .XComposedans votre dossier "home") contenant les éléments suivants:

include "%L"   # import the default Compose file for your locale
<Multi_key> <bar> <greater>     : "▸"

Voir man 5 Composepour plus d'informations sur le format de ce fichier.

JanC
la source
2
Soigné! Existe-t-il un moyen de relire ce fichier sans redémarrer X?
Jeremy Kerr
1
Cela semble prometteur, mais mon ~/.XComposefichier ne semble avoir aucun effet, même après le redémarrage. Avez-vous obtenu cela au travail?
ændrük
@ Jeremy: Je ne suis pas sûr, mais peut-être que changer la disposition du clavier pour une autre disposition puis revenir pourrait fonctionner.
Janv
1
@ ændrük: Je semble me souvenir que Gtk / GNOME dérange bêtement avec les paramètres de la clé de composition (vous pouvez vérifier si la nouvelle combinaison de touches Compose fonctionne par exemple dans xterm pour confirmer que c'est bien le cas). Je semble me souvenir que la solution de contournement avait quelque chose à voir avec le choix d'une méthode de saisie alternative qui contourne le problème du medling; Peut-être posez-vous une nouvelle question à ce sujet, car ce n'est pas seulement utile pour cela, mais aussi l'IIRC qui fixe également les cartes Compose spécifiques aux paramètres régionaux, etc.;)
janvier
1
À partir d’ au moins 18,04 LTS, cette réponse devrait maintenant fonctionner sans qu'il soit nécessaire de modifier les méthodes de saisie.
ændrük
22
  1. Créez un fichier nommé .XComposedans votre répertoire personnel ( ~/.XCompose), qui contient:

    # import the default Compose file for your locale
    include "%L"
    
    <Multi_key> <bar> <greater>  : "▸"
    

    Voir man 5 Composepour plus d'informations sur le format de ce fichier.

  2. Ajouter ce qui suit à ~/.profile:

    export GTK_IM_MODULE="xim"
    

    Sous Ubuntu 18.04 (peut-être d’autres), vous devrez peut-être utiliser les éléments suivants:

    export GTK_IM_MODULE="gtk-im-context-simple"
    
  3. Déconnectez-vous et reconnectez-vous. Ou redémarrez X. Ou redémarrez.

dan_waterworth
la source
3
J'ai remarqué qu'avec cette solution, je ne pouvais plus utiliser Ctrl-Shift-u pour insérer des caractères Unicode par numéro; je suppose donc que cela fait passer quelque chose de plus général que le truc Gnome au truc X qui est configuré par ce fichier ~ / .XCompose. Existe-t-il également un moyen de modifier le contenu de Gnome? J'aimerais conserver cette fonctionnalité Ctrl-Maj-u.
Alfe
2
@Alfe En utilisant UIM comme suggéré au bas des forums Ubuntu: le fichier .XCompose non lu dans 11.04 GNOME fonctionne pour moi avec les paramètres par défaut dans Debian jessie / sid (voir im-config(8) pour la personnalisation). C'est-à-dire que les paramètres .XCompose fonctionnent à la fois dans les applications GTK (GNOME) et Qt (KDE), tandis que .XCompose et Ctrl + Shift + U fonctionnent tous deux dans des applications GTK (comme Eclipse).
PointedEars
Merci! Alors, venez-vous juste apt-getdu uimpaquet ou avez-vous dû configurer autre chose?
Alfe
1
J'essayais de faire fonctionner ça depuis quelque temps, mais en vain. Il serait très utile d’entendre ce que vous avez fait exactement en plus de l’installation du paquet UIM. Au moins, cela pourrait vous aider à vous assurer que votre chemin ne fonctionne pas sur Ubuntu 12.04.
Alfe
@ dan_waterford Bonjour, je viens de poser cette question ici , et je lui ai dit qu'il était "possible de le dupliquer". Cependant, j'ai essayé votre réponse et je n'ai pas réussi à la faire fonctionner. Des idées? :)
Owen_R
9

Sur Ubuntu 14.04, j'ai fait ce qui suit:

1) Installé en uimutilisant le gestionnaire de logiciels, d' autres paquets comme uim-xim, uim-gtk2, uim-gtk3et uim-qtsont installés automatiquement. Voir https://launchpad.net/ubuntu/+source/uim .

2) Définissez les variables d’environnement en ajoutant les lignes suivantes à ~/.profile. Ainsi, les séquences de touches de composition personnalisées ne s’appliquent qu’à l’utilisateur actuel:

# Restart the X-server after making alterations using:
# $ sudo restart lightdm
# It seems only GTK_IM_MODULE or QT_IM_MODULE needs to be defined.
export GTK_IM_MODULE="uim"
export QT_IM_MODULE="uim"

Le ~/.XComposefichier de l'OP devrait fonctionner après le redémarrage 1) Ubuntu ou 2) juste le serveur X en exécutant la commande suivante dans un terminal:

$ sudo restart lightdm

NB: Le redémarrage ne semble nécessaire qu'après modification du ~/.profilefichier. Les modifications ~/.XComposeprendront effet au prochain démarrage d'une application (Terminal, Gedit, etc.).

Pour vérifier si les variables d'environnement sont définies correctement, entrez la commande suivante dans votre terminal:

$ printenv | grep IM_MODULE

Merci beaucoup à:

À propos des séquences de touches de composition personnalisées:

A propos du mappage de clavier personnalisé:

Exemples de .Xcomposefichiers pour imiter les Window US Internationalclaviers:

lmeurs
la source