7 Clavier
Un conseil, avoir un autre ordinateur connecté à l'ibook pour faire
les essais, c'est toujours désagreable de se retrouver avec un clavier
inutilisable et de devoir faire un reboot hard (bouton on/off pendant
5s). J'ai trouvé la config clavier particulièrement pénible, et visiblement
la config clavier console influence la config clavier pour X...
7.1 Configuration du noyau
Première précaution à prendre, s'assurer que le driver clavier génère
les scancodes (ou les keycodes, j'y ai jamais rien
compris) linux, plutot que ceux dits ``ADB'' : si il y'a un
``fichier'' /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes, alors il
faut s'assurer qu'il contient "1". Sinon faire :
echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
Et pour que ce soit remis à 1 à chaque reboot, rajouter :
dev/mac_hid/keyboard_sends_linux_keycodes=1
Dans /etc/sysctl.conf. Attention, dans ce cas, il faudra que les
scripts d'initialisation rechargent les scancodes après que ce fichier
ait été traité (par /etc/init.d/procfs.sh) ; pour ça, rajouter le
script /etc/init.d/rekeymap.sh suivant :
#!/bin/sh
/bin/loadkeys /etc/console/boottime.kmap.gz
Puis faire :
chmod 755 /etc/init.d/rekeymap.sh
update-rc.d start rekeymap.sh 60 S .
Autre solution (alternative à tout ce qui precede), compiler le noyau
sans CONFIG_MAC_ADBKEYCODES (menu ``Macintosh
device drivers'').
7.2 Config en console et sous X
Faire la manip suivante (inspirée de celle décrite par David
Mentré dans
http://www.linux-france.org/macintosh/clavier_rpm3.html) :
-
récupérer ftp://ftp.linux-france.org/pub/macintosh/kbd-mac-fr.tar.gz
- clavier sous X
-
recopier fr_new dans /usr/X11R6/lib/X11/xkb/symbols/macintosh/
- dans /etc/X11/XF86Config-4, les options pour la config du
clavier sont :
Option "XkbRules" "xfree86"
Option "XkbModel" "macintosh"
Option "XkbLayout" "fr_new"
Option "XkbOptions" "ctrl:nocaps"
IMPORTANT : veiller a ce que XkbDisable ne soit pas activée !
- Le nouveau layout sera pris au prochain redémarrage ou
après avoir tué le serveur X (Ctrl-Option-Del ou /etc/init.d/gdm restart).
- clavier console
-
recopier mac-fr-ext_new.kmap.gz dans /usr/share/keymaps/mac/
- faire install-keymap /usr/share/keymaps/mac/mac-fr-ext_new.kmap.gz
- le nouveau clavier est utilisé par la console.
Le clavier devrait se comporter convenablement. En console :
-
le '|' se tape avec option-<
- changer de console, c'est commande-fn-F1..F7 (F7=serveur X)
Sous X :
-
le '|' c'est shift-option-l
- switcher vers une console, c'est... compliqué (gymnastique des
doigts) : commande-ctrl-fn-F1..F7 (ou shift-ctrl-option-fn-F1..F7 si on a une config sans l'option ctrl:nocaps)
- tuer le serveur X : commande-ctrl-del (ou shift-ctrl-option-del pour une config sans ctrl:nocaps)
En console et sous X :
-
pour changer la luminosité de l'ecran, c'est avec F1/F2
- les touches de fonction, c'est avec fn-F1..F12
- les accolades c'est avec option-( et ), et les
crochets avec shift-option-( et ).
- le '' c'est option-shift-/
- le tilde, c'est shift-option-n
À partir de maintenant on devrait pouvoir relancer X sans surprise, et
constater avec émerveillement que glxgears fait du 1200 fps en
16bpp (beaucoup moins en 24bpp), et que tuxracer marche a
merveille (environ 45fps en 16bpp, un peu plus de 10 en 24bpp) !
7.3 Touches spéciales Apple pour le son et l'eject du CD
Par défaut, seules les touches spéciales de réglage de la luminosité
sont accessibles (F1/F2), pas les touches de volume ni celle
d'eject du CD. Il y'a plusieurs manières de s'en sortir pour en
profiter. Pour ma part, je me contente de la première méthode
ci-dessous (ikeyd), qui marche très bien.
7.3.1 Debian stable : ikeyd
C'est un petit démon dispo par défaut avec la debian, et qui
scrute /dev/input/event à la recherche des touches frappées : ça
court-circuite donc à la fois X et la console, et ça permet de gérer
le son directement (via /dev/mixer), et le cd aussi
(/dev/cdrom avec un umount préalable si besoin). Pour
l'installer, un simple :
apt-get install ikeyd
suffit. C'est plus réactif que pbbuttonsd (voir section
7.3.4), et ça ne fait juste que gérer les touches
``spéciales'' contrairement à pbbuttonsd qui fait plein d'autres
choses très bien supportées par ailleurs, comme remplacer pmud,
gérer le rétro-éclairage...
7.3.2 Debian testing/unstable : pbbuttonsd
En testing/unstable, préférer utiliser pbbuttonsd qui s'occupe
également de remplacer avantageusement pmud pour la gestion de
la mise en veille. Voir la section 19.1.1.
7.3.3 Raccourcis clavier sous X
On peut aussi définir un raccourci du style Ctrl-fn-F3/F4/F5/F12
dans son gestionnaire de fenêtres (sawfish) pour faire quasiment
la même chose, au prix d'une combinaison de touches un peu plus
compliquée : il suffit de définir un raccourci clavier de type Run shell command dans sawfish pour ces combinaisons, avec
respecitivement /usr/local/bin/beep 0 (voir script /usr/local/bin/beep que je fournis), /usr/local/bin/beep -10,
/usr/local/bin/beep +10 et eject comme commandes
associées.
Il y a une troisième solution, un peu usine à gaz celle-ci, car elle
permet en plus de remplacer pmud (section 9) : le
logiciel pbbuttonsd (http://www.cymes.de/members/joker/),
à récupérer, compiler et installer à la main.
Le fichier de config pbbuttonsd.conf installé par défaut
redéfinit en profondeur le mapping des touches de fonction pour qu'on
n'ait pas à taper fn quand on veut accéder aux touches de
fonction, et ce mapping reste sous MacOS X : en conséquence, avec ce
fichier de configuration de base, il faut maintenant taper fn
quand on veut accéder aux fonctionnalités luminosité/volume/eject,
même sous MacOS X. Pour revenir au comportement ``normal'' (ie
fn-F1..F12 pour accéder aux touches de fonction, F1/F2/F3/F4/F5/F12 direct pour accéder aux fonctionnalités de
luminosité/volume/eject), modifier l'option kbdmode du pbbuttonsd.conf pour préciser fkeyslast. Je n'ai pas résussi
à faire fonctionner la touche F12 (eject du CD), même en
repositionnant correctement son scancode à 108 (au lieu de 69 par
défaut). Et au final je n'utilise pas pbbuttonsd parce que je
trouve que son temps de réaction à l'appui des touches de volume est
plus lent qu'en utilisant ikeyd ou en définissant un raccourci à
la mano dans le window manager (cf ci-dessus).
7.4 Bug X debian unstable semaine du 20/02/2004
Voir le bug debian #234113 : X cherche la map fr_new dans un
sous-répertoire pc au lieu de tenir compte du fichier
XF86Config-4 qui indique d'utiliser un sous-répertoire macintosh. Bref, une fois X lancé, la touche alt n'est plus
prise en compte, plus moyen de taper un |, ~, ..., et
évidemment plus moyen de revenir en console... En attendant que ce
soir réparé, une fois dans une xterm, faire setxkbmap
fr_new et voilà.