Si un programme utilisant le mode K_RAW
du clavier se termine sans
remettre le calvier en mode K_XLATE
, alors il est très difficile de
faire quoi que ce soit - même Ctrl-Alt-Del. Cependant il est parfois
possible d'éviter d'appuyer sur Reset (et même souhaitable: vos
utilisateurs risquent de ne pas apprécier qu'on leur tue leur Nethack,
et surtout il est possible d'endommager le système de fichiers).
Les solutions simples consistent à se loger à partir d'un autre
terminal ou une autre machine et faire kbd_mode -a
.
La procédure suivante suppose que X ne tourne pas, que l'écran est en
mode texte, que vous êtes à un prompt shell, que Ctrl-C est le
caractère d'interruption et que vous n'avez pas un clavier trop
exotique (i.e. la touche `=' est 2 touches à droite de `0').
1ère étape: Lancer X. Appuyez sur la combinaison 2-F12-= : appuyez sur 2 puis F12 (sans lâcher 2) et puis = (sans lâcher les deux autres), le tout assez rapidement! Ça lance X. (Explication: si l'appui sur une touche produit le keycode K, alors son relâchement produit K+128. Votre shell risque de na pas apprécier ces caractères, donc on évite de les lui envoyer en ne lâchant pas les touches. `2' produit un ˆC qui annule tout ce qui a été tapé avant. F12 produit un X et `=' le code entrée. Et tout ça vite fait avant que la répétition des touches ne commence...)
Votre écran est alors probablement gris, puisqu'aucun .xinitrc
n'a été spécifié. Cependant Ctrl-Alt-Fn marche, et vous pouvez appeler
une autre console. (Ctrl-Alt-Backspace marche aussi, mais ça restaure
l'état initial du clavier qui justement n'est pas bon.)
2ème étape: Programmer le changement de mode du clavier.
(Par exemple, avec sleep 5; kbd_mode -a
.)
3ème étape: Quitter X. Alt-Fx (souvent Alt-F7) retourne sous X, ensuite Ctrl-Alt-Backspace tue X. Dans les 5 secondes le clavier redevient utilisable.
Si vous voulez vous préparer pour cette occasion, faites de
\215A\301
(3 symboles) un alias de kbd_mode -a
.
Désormais, l'appui sur F7 en mode RAW remettra tout en ordre.
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre