Je voudrais définir une compose
clé sur mon système (Debian Sid "Wheezy"). Je n'ai pas de Xorg (et je ne veux aucun environnement de bureau). Uniquement dans le terminal.
Je voudrais le configurer sur ma Alt-Gr
clé (à droite Alt
). J'ai essayé pendant un certain temps, mais je ne sais pas comment le configurer.
J'ai enquêté et trouvé des directions:
$ showkey
me donne le codeAlt-Gr
clé de ma clé (# 100)$ dumpkeys
et$ dumpkeys --compose-only
afficher "le contenu actuel du pilote du clavier", dans le format spécifié parkeymaps
, selon laman
page$ loadkeys
charger une table de traduction du clavier
Je suis sûr que ce n'est pas si difficile, mais je ne sais pas comment y faire face ...
console
keyboard-layout
cedbeu
la source
la source
Réponses:
Sur les systèmes Debian et Ubuntu plus récents, vos paramètres de clavier sont placés
/etc/default/keyboard
et partagés entre X et la console. Il suffit de couriret sélectionnez
Compose key:
Right Alt (AltGr)
sur l'écran approprié.Vous pouvez également mettre
XKBOPTIONS=compose:ralt
en place/etc/default/keyboard
et exécuterLes systèmes plus anciens ont une clé Composer sur la console par défaut. Dans la
us
mise en page, appuyer simultanément sur les deuxAlt touches agit comme Compose. 1Par exemple: Alt+ AltGr, ", A=> Ä
Si vous préférez AltGrseulement être Compose, vous devez changer
dans votre carte de clavier active pour
La façon la plus simple de procéder consiste à effectuer les modifications ci-dessus dans
/lib/kbd/keymaps/i386/include/linux-with-alt-and-altgr.inc
.Une meilleure façon est de créer un nouveau fichier appelé
/lib/kbd/keymaps/i386/include/altgr-is-compose.inc
avec la ligne ci-dessus, de créer un nouveau clavier qui l'inclut et de le définir sur votre clavier par défaut.la source
dpkg-reconfigure
assistant demande en effet une clé de composition, mais il dit qu'elle ne fonctionne pas en "mode Unicode" (?). En outre, lorsqu'il n'est pas dans ce mode, il indique que la période Ctrl + fonctionne comme une touche de composition. Mais je ne réussis pas non plus à le faire fonctionner.unicode_start
. Pour moi, ça marche toujours, pourvu que je courssetupcon
commedpkg-reconfigure
dit.setupcon
dans mon terminal X (urxvt
), il est dit "Nous ne sommes pas sur la console, la console n'est pas configurée". Seshowkey
plaint également "Impossible d'obtenir un descripteur de fichier sur la console". Danstty
, ces deux travaux, maisshowkey
dit (la première chose) que "le mode kb était UNICODE", c'est peut-être bien pourquoi cela ne fonctionne pas. Mais, la période Control + fonctionnetty
. OK, ça a du sens maintenant.X
? Vous devez exécutersetupcon
sur la console virtuelle Linux, par exemple Ctrl + Alt + F1.console-setup
plupart des séquences de composition ne soient pas prises en charge par défaut. Vous pouvez courirdumpkeys --compose-only
pour voir lesquels. Vous devriez pouvoir modifier leconsole-setup
script init pour ajouter des règles de composition supplémentaires là où il s'exécuteloadkeys
."composer" sur la console permet de taper deux caractères mais d'en sortir un troisième.
le problème est que les définitions de composition utilisent des octets , à la fois comme deux entrées (c'est-à-dire que vous ne pouvez pas définir la composition en termes de clés tapées mais uniquement en termes de symboles typés) et pour la sortie.
pour le faire fonctionner en UTF-8, qui est multi-octets (1 à 4 octets, au moins), il faudrait de grands changements dans la façon dont l'entrée de la console est gérée, et remplacer le simple tableau de caractères actuellement utilisé par quelque chose de plus complexe. Il semble qu'il n'y ait pas de plans pour le faire (le consensus parmi les développeurs de noyau est que la console devrait rester une console, quelque chose de simple, uniquement utilisée pour le dernier ressort; si vous avez réellement besoin d'unicode, vous aurez probablement aussi besoin de bidi, de mise en forme, etc.) il est préférable d'exécuter un terminal graphique (un xterm plein écran sur X11; mais il existe d'autres possibilités).
Donc, en effet, cela ne fonctionne pas, et ne fonctionnera pas, avec des caractères multi-octets sur la console. MAIS, cela fonctionne toujours si vous limitez les définitions de composition en ASCII ordinaire.
Et j'ai également découvert que cela fonctionne également si la sortie est en iso-8859-1 (qui correspond aux valeurs unicode jusqu'à 0x00ff); pour cela, vous pouvez mettre dans un script de démarrage une ligne:
et mettez dans ce fichier les définitions de composition que vous souhaitez (faites attention à enregistrer le fichier dans le codage ISO-8859-1 et utilisez des caractères plus grands que 0x7f en sortie uniquement) la syntaxe d'un tel fichier est très simple, des lignes comme celle-ci:
par exemple:
l'apostrophe doit être échappée.
l'effet des clés diacritiques mortes est également défini dans ce fichier; pour dead_acute + a vous définissez une ligne comme:
dead_grave utilise backtick (`), dead_diaeresis utilise doublequote ("), dead_circumflex utilise circumflex (^) et dead_tilde utilise tilde (~).
la source
compose 'a' 'a' to 'å'
encompose 'o' 'a' to U+00E5
, sinonloadkeys
plaint d'une erreur de syntaxe.iconv -f utf-8 -t utf-8 filename
s'il n'y a pas d'erreurs, c'est en utf-8echo $?
au moins, et aucune sortie versstderr
. En outre,file
me dit que c'est UTF-8, donc cela a du sens.