# [XkbLayout] Des touches en grêve dans X ! (résolu)

## Magic Banana

J'ai besoin de votre aide...

Je suis sous gentoo depuis maintenant un an et ai actuellement un noyau 2.6.14-r2.

Hier j'ai fait une mise a jour profonde de mon systeme. Cette mise a jour incluait notamment xorg-x11 dont j'ai maintenant la version 6.8.2-r6. Il est possible que j'ai mal configure un des fichiers avec etc-update. Ensuite j'ai change ma variable KEYMAPdans le fichier /etc/conf.d/keymaps pour la mettre a "fr-latin9" (jusqu'alors j'utilisaIs "fr-latin1").

Le probeme c'est que maintenant j'ai des touches qui ne fonctionnent tout simplement plus ! C'est a dire que les touches qui fonctionnent fonctionne de facon coherente avec la disosition fr-ltin9 mais, par exemple, les touches "shift" (pour faire une majuscule) ne fait rien. De même je n'ai plus les caracteres accentues (comme vous pouvez le constater dans ce post, je m'en excuse), les nombres, le point d'interogation, etc. En fait ces caracteres ne sont meme pas affiches lorsque mon systeme m'ecrit quelque chose en francais dans une console (dans ma session graphique).

J'ai essaye avec un session en lignes de commande pure (sans demarrer X) et la tout va bien ! Je suis donc arrive a la conclusion que c'est un probleme lie a X Window.

Bien sur j'ai essaye de revenir a fr-latin1 et l'ai aussi essaye de definir KEYMAP a "fr". Dans les deux cas même symptômes qu'avec fr-latin9 : ce qui fonctionne fonctionne en accord avec la disposition choisie mais certaines touches ne fonctionnent pas... mais pas forcement les mêmes ! Ainsi avec KEYMAP="fr" je peux utiliser les touches "shift".

Mes autres tentatives de resolution du probleme int ete de re-emerge(r) kbd et xorg-x11, de recompiler mon noyau avec les langues supportees en modules et non integrees, de fixer l'option XkbLayout (dans xorg.conf) a "fr-latin9" a la place de "fr"... mais rien n'y fait.

Je suis a cours d'idees. Si vous avez la moindre petite suggestion je la veux ! Si vous voulez des precisions a propos du contenu de mes fichiers de configuration (je crois avoir tout ecris ici mais bon...) je vous les donnerai. Merci d'avance.Last edited by Magic Banana on Sat Dec 17, 2005 12:13 am; edited 5 times in total

----------

## yoyo

Bonjour "Magic Banana",

Tout d'abord, peux-tu lire ce qui est écrit dans ce thread et modifier ton titre afin qu'il respecte ce qui a été défini par les membres de ce forum (dont tu fais maintenet parti   :Wink:   ) dans ce thread (section 3/3) : https://forums.gentoo.org/viewtopic-t-69179.html.  Merci.

Ensuite, peux-tu poster la section Section "InputDevice" --> Identifier "Keyboard" de ton xorg.conf ??

Normalement, tu devrais avoir à peu près ça : 

```
Section "InputDevice"

    Identifier "Keyboard0"

    Driver "kbd"

    Option "XkbModel" "pc105"

    Option "XkbLayout" "fr-latin9"

EndSection
```

Enfin, que donne la commande "locale" dans un terminal ??

----------

## Magic Banana

J'essaie de respecter les consignes sur le format du titre mais pour l'instant j'ai du mal  faire un crochet ! Desole...

Voici la section concernant mon clavier dans /etc/X11/xorg.conf :

```
Section "InputDevice"

    Identifier "Keyboard1"

    Driver "kbd"

    Option "XkbModel" "pc105"

    Option "XkbLayout" "fr"

EndSection
```

J'ai essaye de mettre "fr-latin9" pour l'option "XkbLayout"... en vain. Je n'ai qu'un seul clavier et je ne sais pas pourquoi son identifiant est "Keyboard1" mais c'est correct je pense puisque dans la section "ServerLayout"  j'ai :

```

    InputDevice "Keyboard1" "CoreKeyboard"
```

Je suppose que c'est dû au fait que mon xorg.conf a ete genere par fglrxconfig.

Pour ce qui est de la commande locale, voici ce qu'elle renvoit :

```
LANG=fr_FR

LC_CTYPE="fr_FR"

LC_NUMERIC="fr_FR"

LC_TIME="fr_FR"

LC_COLLATE="fr_FR"

LC_MONETARY="fr_FR"

LC_MESSAGES="fr_FR"

LC_PAPER="fr_FR"

LC_NAME="fr_FR"

LC_ADDRESS="fr_FR"

LC_TELEPHONE="fr_FR"

LC_MEASUREMENT="fr_FR"

LC_IDENTIFICATION="fr_FR"

LC_ALL=fr_FR
```

Bref, tout paraît normal...

----------

## yoyo

En effet, tout cela me semble correct ...   :Confused: 

Peut-être est-ce la mise à jour du paquet "sys-apps/kbd" qui est responsable de ce problème ...

Essaie de le re-emerger pour voir : "emerge -1 kbd".

EDIT : tu as bien le USEflag "nls" activé ("emerge -vp kbd")??

EDIT2 : arf, tu as déja re-emerger kbd ...

----------

## Magic Banana

J'ai bien nls dans ma variable USE. J'ai deja re-emerge(r) kbd et ai maintenant la version 1.12-r5 de cette application. Mais quel est le fichier de configuration qui lui est associe ? Peut-être que c'est de ce côte la qu'il faut que je cherche...

Autre chose que j'ai oublie de vous mentionner : au lancement de /etc/init.d/keymaps la console m'affiche des choses qui me paraissent bizzares. Voyez par vous même :

```
 * Loading key mappings ...

assuming iso-8859-1 cedilla

assuming iso-8859-1 acute

assuming iso-8859-1 diaeresis

assuming iso-8859-1 brokenbar

assuming iso-8859-1 threequarters

assuming iso-8859-1 currency

assuming iso-8859-1 onehalf

assuming iso-8859-1 onequarter

assuming iso-8859-1 currency                     [ ok ]

 * Setting terminal encoding to UTF-8 ...        [ ok ]

 * Setting user font ...                         [ ok ]
```

Une idee sur comment remedier a ce probleme ?

----------

## yoyo

Peut-être un début de piste : tu as passé ton système en utf8 récemment ??

Il y a une aberration entre tes locales (fr_FR) et le "Setting terminal encoding to UTF-8 ...        [ ok ]" qui laisse suggérer que tes terminaux sont en utf8 mais pas ton système.   :Shocked: 

Ou que ton système tente de passer en utf8 alors que tes locales ne sont pas ajustées correctement; enfin bref, regarde de ce côté.

EDIT : est-ce que tu as le USEflag "userlocales" activé et si oui quel est le contenu de ton "/etc/locales.build" ??

----------

## Magic Banana

J'ai essaye d'enlever du noyau le support pour l'UTF8 mais ca n'a rien change a mon probleme et, bizzarement, le lancement de keymaps donne toujours la ligne :

```

 * Setting terminal encoding to UTF-8 ...        [ ok ] 
```

J'ai verifie sur un howto a propos de la localisation du systeme en francais et apparemment il faut inclure le support pour l'UTF8. Je me suis aussi rendu compte que mon option NLS par defaut n'etait pas celle preconisee sur ce meme howto. Je suis donc passe a iso8859-15 (j'avais iso8859-1) mais ca ne change rien non plus.

Pour ce qui est du USE flag userlocales, il n'est pas active. Il devrait ?

----------

## yoyo

Il est en effet judicieux de garder le support de l'UTF8 dans le noyau. Et la différence entre iso8859-1 et iso8859-15, c'est juste le support du caractère "" il me semble.

Pour la ligne au démarrage, amha c'est dans le fichier "/etc/rc.conf" que ça se passe. Tu as du mettre UNICODE="yes". Repasse-le à "no" si tu n'utilise pas les locales utf8.

Pour ce qui est du USE flag userlocales il permet simplement lors de la compilation de glibc de ne construire que les locales voulues, ce qui peut réduire sensiblement le temps de compilation et la taille de glibc. Mais s'il n'est pas spécifié, alors toutes les locales sont sensées être supportées par la glibc (donc c'est bon pour toi).

Pour ce qui est de ton problème, j'ai l'impression qu'on est complètement à côté ... Je n'arrive pas à voir d'où cela peut venir. Essaie en déplaçant ton fichier xorg.conf en en générant un nouveau.

----------

## Magic Banana

J'ai suivi la documentation gentoo sur l'UTF8 pour essayer d'avoir de l'unicode en bonne et due forme... mais ca ne change rien a mon probleme.

En laissant tout tel quel (c'est a dire avec des locales UTF8) et en passant UNICODE a "no", le probleme reste entier. Peut-etre qu'il faudrait que je remette des locales ASCII mais, franchement, apres avoir suivi la documentation il me plairait d'avoir de l'unicode. Et puis j'ai tendance a penser que la verite est ailleurs... En effet, d'apres ce que me renvoie le script keymaps c'est la console qui utilise l'UTF8 et il se trouve qu'en session console pure, fr-latin9 est utilisee correctement.

En revanche j'ai recupere ce que me renvoit startx et l'origine de mon mal doit si trouver. En effet, voila entre autre (je n'ai pas trouve comment obtenir les message de la console directement dans un fichier et les recopie donc a la main) ce qui est renvoye :

```
(...)

(WW) fglrx: No Matching Device section for instance (BusID PCI:2:0:1) found

(EE) Couldn't open compiled keymap file /usr/lib/X11/xkb/compiled/server-0.xkm

(EE) Couldn't load XKB keymap, falling back to pre-XKB keymap

Couldn't init font path element /usr/share/fonts/local/, removing from list!

(...)
```

Personellement je ne sais pas trop quoi faire de ces informations mais je suis sur qu'il y en a ici qui sont a meme de m'aider ! Merci d'avance.

----------

## boozo

'alute

 *Magic Banana wrote:*   

> (EE) Couldn't open compiled keymap file /usr/lib/X11/xkb/compiled/server-0.xkm
> 
> 

 

bon ne me demande pas pourquoi... je n'en sais fichtre rien   :Shocked: 

d'autant plus que d'après le /usr/lib/X11/xkb/compiled/readme :

```
The X server uses this directory to store the compiled version of the

current keymap and/or any scratch keymaps used by clients.  The X server

or some other tool might destroy or replace the files in this directory,

so it is not a safe place to store compiled keymaps for long periods of

time.  The default keymap for any server is usually stored in:

     X<num>-default.xkm

where <num> is the display number of the server in question, which makes

it possible for several servers *on the same host* to share the same

directory.

Unless the X server is modified, sharing this directory between servers on

different hosts could cause problems.

```

mais apparamment la commande :

```
xkbcomp -xkm
```

 devrait générer ce fichier (man xkbcomp pour plus de détails)

après d'ici à savoir quelle est la cause exacte du pb et si celà le règlera ?!    :Rolling Eyes: 

[Edit] tiens viens de trouver un post avec la m^ technique qui semble marcher   :Wink: 

----------

## Magic Banana

Plutôt que de d'utiliser xkbcomp j'ai utilisé la méthode plus radicale décrite dans le post que tu m'as donné (et qui m'avait échappé) :

```
rm -r /usr/X11R6/lib/X11/xkb

emerge xorg-x11

```

En fait, pour être franc, j'ai essayé xkbcomp mais je n'ai pas trop compris quoi faire avec le .xkm généré (j'ai essayé de le copier en tant que /usr/lib/X11/xkb/compiled/server-0.xkm mais il était supprimé au redémarrage).

Toujours est-il que j'ai à nouveau toutes mes touches... mais ce n'est pas du fr-latin9 ! J'ai droit au lancement d'une application (peu importe laquelle du moment qu'elle est graphique) au message suivant :

```

Warning: locale not supported by Xlib, locale set to C
```

Je suis un peu têtu mais je vais essayer d'avoir le KEYMAP de mon choix, non mais ! Si vous avez des idées sur comment m'y prendre...

----------

## Magic Banana

Quelqu'un a déjà réussi à avoir une locale fr_FR@euro.UTF-8 ou je me lance dans une aventure inexplorée ? Parce que sur le web je ne trouve dans les howtos qui explique comment avoir fr_FR@euro ou fr_FR.UTF-8.

A moins que le fr_FR.UTF-8 est déjà la touche euro ?

----------

## boozo

bon déjà un bon point   :Laughing:  ...suis revenu à l'état basal *private joke*

sinon un simple

```
export LANG=fr_FR.UTF-8@euro
```

ne fonctionne pas ?!  :Confused: 

----------

## Magic Banana

Je sais maintenant pourquoi fr_FR@euro.UTF-8 n'est jamais présentée dans les howtos... C'est parce que cette disposition :

1) n'est manifestement pas supportée par Xlib

2) est inutile...

En effet, fr_FR.UTF-8 gère la touche euro. En tout cas elle le gère chez moi ! Donc voilà, j'utilise simplement cette locale (sans oublier de configurer correctement le noyau, c'est à dire en particulier sans oublier de choisir UTF8 comme Default NLS Option dans File System/Native Language Support) et j'ai choisi KEYMAP="fr-latin9" et en mettant ceci dans la Section "InputDevice" de /etc/X11/xorg.conf :

```

Option "XkbLayout" "fr-latin9"
```

Merci pour votre aide !

----------

## Magic Banana

Vous ne pensez pas que fr-latin9 devrait être indiquée comme choix privélégié dans http://www.gentoo.org/doc/fr/guide-localization.xml (en particulier pour l'option XkbLayout de /etc/X11/xorg.conf où seul la disposition fr est proposée) ?

Autre chose : Quelqu'un a réussi à avoir la touche euro sous Emacs ? Le guide dit :

 *Quote:*   

> Pour utiliser le symbole Euro dans (X)Emacs, ajoutez les lignes suivantes à .Xdefaults :
> 
> ```
> Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15
> ```
> ...

 

Où est ce fichier .Xdefault ? J'ai essayé d'en créer un nouveau dans mon home mais ça ne fonctionne pas.

----------

