无忧启动论坛

标题: 求教grub2命令如何让每个菜单选项增加倒计时? [打印本页]

作者: ones    时间: 2019-9-14 21:07
标题: 求教grub2命令如何让每个菜单选项增加倒计时?
本帖最后由 ones 于 2019-9-14 21:10 编辑

我有一个平板电脑,装了一个凤凰OS和一个win8系统,是双系统,默认用grub2启动,grub2里有两个菜单选项
第一项是android,第二项是win8,默认设置timeout是3秒,default是0,如果不操作,默认启动第一项android,如果有操作,3秒倒计时就停止了

因为是双系统启动,有时我想选择启动win8,但是平板不能像电脑那样带键盘鼠标操作,平板只能用音量键和电源键操作,我发现在grub2下用音量键是可以像键盘上下键那样操作选择菜单项的,但是电源键却没反应,不能操作,不能确认回车,所以我想给每个菜单项增加倒计时,用音量键选择要启动的系统项,然后倒计时两三秒钟就启动所选择的那个系统
对grub各种命令编程不熟悉,哪位大侠给指点一下,谢谢。



set timeout=3
set default=0

menuentry 'Phoenix OS' --class android-x86 {
        search --set=root --file /efi/PhoenixOS/kernel
        linux /efi/PhoenixOS/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/PhoenixOS vga=788
        initrd /efi/PhoenixOS/initrd.img
}

menuentry 'Windows' --unrestricted {
    if [ 'pc' == $grub_platform ] ; then
        if search --file --set /bootmgr ; then
            chainloader +1
        elif search --file --set /ntldr ; then
            chainloader +1
        fi
    elif [ 'efi' == $grub_platform ] ; then
        if search --file --set /EFI/Microsoft/Boot/bootmgfw.efi ; then
            chainloader /EFI/Microsoft/Boot/bootmgfw.efi
        fi
    fi
}

作者: 江南一根葱    时间: 2019-9-14 21:17
本帖最后由 江南一根葱 于 2019-9-14 21:21 编辑

我能想到的是把音量键设置成热键,按了后直接执行你写的脚本一模一样的另一个脚本,但那个脚本default=2的
热键再到另另一个脚本,然后这个脚本是default=3的

不过我不知道音量键的键值。。
作者: ones    时间: 2019-9-15 19:31
江南一根葱 发表于 2019-9-14 21:17
我能想到的是把音量键设置成热键,按了后直接执行你写的脚本一模一样的另一个脚本,但那个脚本default=2的
...

音量键,上下两键,一个只能上,一个只能下,而且不能循坏,下键按到最下面的菜单项就不能按了,缺少一个确认键来启动菜单项,所以想用倒计时执行的方式来代替确认键,set default和set timeout命令不知道能不能重复使用写入到各菜单项里边?
作者: 江南一根葱    时间: 2019-9-15 19:49
ones 发表于 2019-9-15 19:31
音量键,上下两键,一个只能上,一个只能下,而且不能循坏,下键按到最下面的菜单项就不能按了,缺少一个 ...

想办法得到“下”键的键值就可以做到,的
作者: ones    时间: 2019-9-15 20:38
江南一根葱 发表于 2019-9-15 19:49
想办法得到“下”键的键值就可以做到,的

grub2启动,默认高亮的是第一个菜单项,比如1是android,2是Windows,默认是android启动,按音量下键,可以选择第二个Windows,如果要改一个确认键或者回车键,那只能改音量上键,在安卓下,装一个keytest软件,想必能得到按键的键值,以前改机顶盒红外遥控器键值是玩过,得到键值后,grub2怎么改呢?如果可以,何不把电源键的键值拿过来改呢?
作者: 江南一根葱    时间: 2019-9-15 20:48
本帖最后由 江南一根葱 于 2019-9-15 20:50 编辑
ones 发表于 2019-9-15 20:38
grub2启动,默认高亮的是第一个菜单项,比如1是android,2是Windows,默认是android启动,按音量下键,可 ...


比如弄个热键菜单,你android.sh菜单里面内容加上热键命令

hiddenentry "windows" --hotkey=音量下键值 {
configfile $prefix/windows.sh
}

然后windows.sh的默认第一个是windows的,,在菜单加上热键命令
hiddenentry "android" --hotkey=音量下键值 {
configfile $prefix/android.sh
}

不就windows和andriod来回变成第一选项了,
作者: 江南一根葱    时间: 2019-9-15 20:53
ones 发表于 2019-9-15 20:38
grub2启动,默认高亮的是第一个菜单项,比如1是android,2是Windows,默认是android启动,按音量下键,可 ...

https://github.com/aIive/builds/ ... c3c2466201ec6b97322
貌似用这个鸡啊油b 2才支持hiddenentry
不过热键我不知道咋整
作者: ones    时间: 2019-9-16 10:11
本帖最后由 ones 于 2019-9-16 17:44 编辑
江南一根葱 发表于 2019-9-15 20:53
https://github.com/aIive/builds/ ... c3c2466201ec6b97322
貌似用这个鸡啊油b 2 ...


--hotkey:该选项为该菜单项关联一个热键,也就是快捷键,关联热键后只要按下该键就会选中该菜单。热键只能是字母键、backspace键、tab键或del键。

在网上找到这么句话,热键好像不支持方向键,我还是先去试试再说

在安卓终端命令行下用getevent命令,获取到音量按键代码是0072和0073,电源键按键代码是0074,这个应该是16进制的代码,没法用




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3