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

Faehndrich Philippe phfaehndrich at bluewin.ch
Tue Nov 11 10:25:31 CET 2008


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):

==================================================
/etc/X11/xim: Checking whether an input method should be started.
/etc/X11/xim: user environment variable LANG=fr_CH.UTF-8
sourcing /etc/sysconfig/language to get the value of INPUT_METHOD
INPUT_METHOD is not set or empty (no user selected input method).
Trying to start a default input method for the locale fr_CH.UTF-8 ...
Checking for a default input method in /etc/X11/xim.d/fr/
sourcing /etc/X11/xim.d/fr/50-scim ...
Smart Common Input Method 1.4.7

Launching a SCIM daemon with Socket FrontEnd...
Loading simple Config module ...
Creating backend ...
Loading socket FrontEnd module ...
Starting SCIM as daemon ...
Launching a SCIM process with x11...
Loading socket Config module ...
Creating backend ...
Loading x11 FrontEnd module ...
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é...
Unknown splash state: initial
startkde: Starting up...
kbuildsycoca running...
QObject::connect: No such signal Kicker::settingsChanged(SettingsCategory)
QObject::connect:  (sender name:   'kicker')
QObject::connect:  (receiver name: 'animtt')
WARNING: please edit ~/.scim/global and change /DefaultConfigModule to kconfig
kbuildsycoca4 running...
WARNING: please edit ~/.scim/global and change /DefaultConfigModule to kconfig
akode: Guessed format: xiph
WARNING: please edit ~/.scim/global and change /DefaultConfigModule to kconfig
KNotify::playTimeout
KNotify::playTimeout
KNotify::playTimeout
KNotify::playTimeout
KNotify::playTimeout
KNotify::playTimeout
KNotify::playTimeout
X Error: BadWindow (invalid Window parameter) 3
  Major opcode:  19
  Minor opcode:  0
  Resource id:  0x1400008
KNotify::playTimeout
WeaverThreadLogger: thread (ID: 1) suspended.
WeaverThreadLogger: thread (ID: 2) suspended.
WeaverThreadLogger: thread (ID: 3) suspended.
WeaverThreadLogger: thread (ID: 4) suspended.
WARNING: please edit ~/.scim/global and change /DefaultConfigModule to kconfig
kio_http_cache_cleaner: Already running! (kio_http_cache_cleaner-2)
kbuildsycoca running...
==================================================

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).

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.

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.

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



More information about the gull mailing list