[gull] Démarrage d'une session KDE — précisions

Leopoldo Ghielmetti leopoldo.ghielmetti at a3.epfl.ch
Tue Nov 11 12:49:11 CET 2008


Il giorno mar, 11/11/2008 alle 10.25 +0100, Faehndrich Philippe ha
scritto:
> Le lundi 10 novembre 2008 à 17:30, Sebastien Chassot a écrit:
> > C'est plutôt dans .Xclients ( rtfm : xinit) qu'il faudrait mettre ça
> > non? A l'origine c'est ce fichier qui était utiliser pour tout ce qui
> > est lancement d'application X. 
> > .Xclients est exécuté s'il existe dans $HOME. Un pour chaque utilisateur
> > quoi.
> 
> .Xclients n'est pas exécuté chez moi, mais si j'ai bien compris la man 
> page, .xinitrc remplit exactement la même fonction. Ou bien je me trompe 
> là-dessus?
> 
> Voici ce que je trouve dans .xsession-errors (après avoir rebooté la machine 
> et m'être connecté comme utilisateur):
...
> GTK Panel of SCIM 1.4.7
> 
> Starting SCIM as daemon ...
> SCIM has been successfully launched.
> /etc/X11/xim.d/fr/50-scim started sucessfully
> Warning:          Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
>                   Ignoring extra symbols
> Warning:          No symbols defined for <SYRQ> (keycode 92)
> Warning:          No symbols defined for <II5D> (keycode 93)
> .....
> .....
> Warning:          No symbols defined for <I7E> (keycode 254)
> Warning:          No symbols defined for <I7F> (keycode 255)
> Hello, processing /home/phil/.xinitrc ...
> Juste avant le chargement de mon clavier préféré...
> Warning:          Type "ONE_LEVEL" has 1 levels, but <RWIN> has 2 symbols
>                   Ignoring extra symbols
> Warning:          Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
>                   Ignoring extra symbols
> Juste après le chargement de mon clavier préféré...
...
> Les trois lignes "Hello...", "Juste avant..." et "Juste après..." sont des 
> marqueurs que j'ai placés dans .xinitrc avec "echo".
> 
> Ce que je comprends, c'est que "xim" fait appel à "scim" (récemment installé, 
> sur conseil de Leo; je l'ai simplement installé avec le gestionnaire de 
> packages de SuSE, sans examiner particulièrement la config).

Le conseil d'installer scim était pour essayer de définir un clavier qui
pouvait te convenir. Il semblerait que ce n'est pas la solution. Essaye
de l'enlever de nouveau ou au moins de l'exclure au démarrage.
Malheureusement vu qu'il y a plusieurs gestionnaires de clavier il faut
procéder par tentatives avant de trouver exactement ce qu'il faut
configurer.

> xim ou scim charge un clavier (plusieurs lignes de "warnings" sautées, 
> concernant des touches définies dans les fichiers de config et inexistantes 
> sur le clavier physique).
> 
> Ensuite, mon .xinitrc charge avec xkbcomp le clavier que je souhaite. Je ne 
> pense pas que les deux "Warning" concernant RALT et RWIN empêchent le 
> chargement du clavier. En tout cas, ils n'empêchent rien quand je charge le 
> clavier à la main, depuis une konsole. Et de toute façon, ils sont pour un 
> part "hérités" des claviers d'origine (l'avertissement sur RALT est aussi 
> présent lors du chargement du premier clavier par xim ou scim). 
> 
> Mon clavier à moi ne fait que définir (pour le moment):
> 
> ==================================================
> xkb_keymap {
>         xkb_keycodes  { 
> include "xfree86+aliases(qwertz)"                                               };
>         xkb_types     { 
> include "complete"                                                              };
>         xkb_compat    { 
> include "complete+ledscroll(group_lock)"                                        };
>         xkb_symbols   { include "pc+ch(fr)+gr(polytonic):2+level3
> (win_switch)+group(shifts_toggle)"
>                 key <AE04> { symbols[Group1] = [ 4, ccedilla, 
> Ccedilla ]                };
>                 key <AD06> { symbols[Group2] = [ Greek_zeta, 
> Greek_ZETA ]               };
>                 key <AD09> { symbols[Group1] = [ o, O, oe, 
> OE ]                         };
>                 key <AB01> { symbols[Group2] = [ Greek_upsilon, 
> Greek_UPSILON ]         };
>                 key <AB06> { symbols[Group1] = [ n, N, 
> emdash]                          };
>                                                                                                         };
>         xkb_geometry  { include "pc(pc105)"     };
> };
> ==================================================
> 
> Ce que je soupçonne, c'est qu'entre le chargement de mon clavier personnalisé 
> (à une trentaine de lignes de la fin de .xsession_errors) et la fin du 
> processus de connexion, un autre clavier est à nouveau chargé qui "recouvre" 
> le mien.

C'est possible. Avec xim, scim et je ne sais pas quoi encore il se peut
qu'il y a plusieurs mappes qui sont utilisées et ceci confond le système
(et nous par la même occasion).

> Je ne vois guère que startkde qui pourrait appeler d'autres scripts qui 
> pourraient, etc. Mais je ne sais pas au juste ce que font kbuildsycoca, 
> kbuildsycoca4 ou akode. Il y a peut-être aussi d'autres scripts qui 
> interviennent et ne laissent pas de trace dans .xsession_errors.

Depuis une rapide recherche sur google il semble qu'il est utilisé pour
reconstruire la configuration du KDE.
Il est donc aussi possible que la reconfiguration du clavier se fasse à
ce moment là.

> Dans le script startkde, je ne vois rien qui concerne directement le clavier 
> (je ne trouve pas les chaînes kdb, keyboard ou xkb). Il y a bien un appel à 
> kcminit, dont je ne sais pas exactement ce qu'il fait.
> 
> De même, l'existence chez moi d'un fichier .Xkbmap n'arrange rien. Je me base 
> sur le fichier /etc/X11/Xkbmap, qui dit exactement:
> // Ce fichier ne sert qu'au lancement de xkb au lieu de xmodmap.
> // Il doit simplement exister à cet emplacement et ne pas être vide.
> // Quelques lignes de commentaires font parfaitement l'affaire.
> // Si ce fichier existe et est d'une taille supérieure à zéro,
> // "/etc/X11/xinit/xinitrc.common" ira chercher "$HOME/.Xkbmap",
> // qu'on peut créer au départ avec "setxkbmap -print > $HOME/.Xkbmap".
> 
> Or mon fichier clavier correspond bien (avec mes variantes personnelles) à la 
> syntaxe du fichier généré par setxkbmap -print.
> 
> Bref, j'en suis là: .xinitrc est bel et bien exécuté au moment du login et  
> charge bel et bien mon clavier (et ça m'a l'air d'être le bon endroit pour 
> lancer une commande xkbcomp), mais à la fin du processus, je dois quand même 
> charger mon clavier à la main.
> 
> Philippe

ciao, Leo





More information about the gull mailing list