Bon j'ai réussi à faire (presque) ce que je voulais... mais il y a bel et bien un bug, ou alors la fonctionnalité que je veux (pourtant logique non ?) n'existe plus.
J'ai mis les paramètres :
GRUB_HIDDEN_TIMEOUT=3
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=60
Je génère le grub avec
sudo update-grub
Ensuite
sudo chmod 744 /boot/grub/grub.cfg
sudo gedit /boot/grub/grub.cfg
Là on rajoute dans la section :
### END /etc/grub.d/30_os-prober ###
Qui est vide à partir du moment où on a plusieurs O.S. (comme son nom l'indique, c'est une section qui sonde les O.S.)
### END /etc/grub.d/30_os-prober ###
if [ ${timeout} != -1 ]; then
if sleep --verbose --interruptible 3 ; then
set timeout=0
fi
fi
Là on a alors (presque) le comportement attendu.
Le PC
- déroule son BIOS
- affiche Grub loading...
- affiche le décompte : 3, 2, 1, 0
Si on ne fait rien, il boot la ligne par défaut.
Si on fait ESC avant la fin du décompte, il affiche le menu.
Le (presque) vient du fait que logiquement on veut un menu sans timeout puisqu'on a expressément appuyé sur ESC c'est qu'on veut choisir quelque chose. Or le "sans timeout" se traduit par -1, mais vu le test ci-dessus, si on met -1 au timeout, le compteur n'est plus du tout affiché.
Mais bon, en mettant 60 sec, on a quand même largement le temps de choisir, et au pire ça boot le système par défaut après une minute.
Maintenant je vais chercher comment faire ça "propre" sans que ce soit effacé à chaque update-grub.
... et ensuite j'irai mettre un mot sur Launchpad, car au moins la documentation est fausse ou incomplète, au pire il y un bug, ou il manque une fonctionnalité importante.