SallyLe 15/09/2009 à 21:20
Il faut éditer /etc/inittab. Est-ce que Ctrl-Alt-Suppr redémarre le PC ?
N.B. a priori il ne marche pas sous X, il faut faire Ctrl-Alt-Backspace pour quitter X puis Ctrl-Alt-Suppr (enfin Ctrl-Alt-F1 ou n'importe quoi qui te repasse en console marche, je crois : c'est juste que X intercepte les signaux clavier)
Si Ctrl-Alt-Suppr ne marche pas, édite inittab pour trouver ou ajouter une ligne qui ressemble à
ca:12345:ctrlaltdel:<commande>
<commande> peut être ce que tu veux et sera exécuté par init (donc en root) dès que les trois touches sont pressées en mode console (X11 a son propre gestionnaire de clavier donc il intercepte). Typiquement ça sera /sbin/shutdown -r now ou quelque chose comme ça.
Init t'autorise un autre raccourci clavier en plus de Ctrl-Alt-Suppr, le keyboard request, mais il s'agit d'un code caractère particulier et il faut qu'il soit dans la table du clavier (l'endroit où se trouve ledit fichier varie *énormément* c'est absolument pas standard, mais ça peut être genre dans /lib/kbd/keymaps, ou apparemment sur mon PC actuel dans /etc/console, et ça va a priori être un fichier .map.gz).
Tu peux utiliser ce raccourci pour faire autre chose. Pour cela il suffit d'ajouter dans inittab une ligne de la forme :
kb:12345:kbrequest:<commande>
(N.B. : les deux lettres du début n'ont aucune importance (il faut juste que ça soit unique dans la inittab), c'est kbrequest/ctrlaltdel qui le sont, et 12345 indique dans quels runlevels le raccourci est actif. « man inittab » pour plus d'infos.)
Maintenant comment savoir/choisir à quelle combinaison de touches correspond le keyboard request ? eh bien il s'agit de la combinaison qui est associée dans la table du clavier au "caractère" KeyboardSignal. Il me semble qu'en général par défaut il n'y en a pas, il faut l'ajouter. Perso j'utilise Ctrl-Alt-Fin, je trouve ça pratique.
Donc il faut que tu commences par déterminer où est le fichier de table de clavier qui est chargé au démarrage, si tu ne le sais pas déjà. Ensuite tu édites ce fichier, tu vois si quelque chose correspond déjà à KeyboardSignal et sinon tu mets ce que tu veux (par exemple "control alt keycode ** = KeyboardSignal", où ** est le keycode de la touche fin, déterminé en cherchant où on voit "End" dans le fichier ^^).
Pour ce qui est de l'action associée au bouton d'alimentation, je ne sais pas trop comment ça marche, parce que sur mon portable ça fait ce que je veux par défaut (un halt) donc je ne me suis jamais soucié de le modifier. Ça doit sans doute dépendre du bios à un niveau ou un autre, et ça n'est pas défini dans l'inittab en tout cas)