无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 193923|回复: 524
打印 上一主题 下一主题

[发布] 增强 GRUB4DOS 菜单编辑功能,支持动画,支持精简字库,支持图形菜单

    [复制链接]
跳转到指定楼层
#
发表于 2015-7-9 20:57:09 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
[ 本帖最后由 2011yaya2007777 于 2023-3-29 16:11 编辑 ]\n\n

2023-03-29
  增加外部定时器应用:进度条(ProgressBar)。
  使用方式:ProgressBar [--no-box] 左上角x 左上角y x尺寸 y尺寸 颜色 模式
  颜色:24位色  0x红红绿绿蓝蓝
  模式(0-3):1.水平从左到右  2.水平从右到左  3.垂直从上到下  4.垂直从下到上
  模式(4-7):0.递增  1.递减
  x与y采用像素表示
  --no-box: 在递增模式不显示边框

2021-10-13
  增强菜单项目、项目注释以及菜单字符串的文字颜色功能。例如:
    title boot $[0xff00ff]Windows $[]10x64
2019-12-20
  1. 改进 setmenu 字符串功能,增加索引和菜单区域内居中。字符串可以使用背景色。
     setmenu --string[=iINDEX]=[X|s|m]=[-]Y=COLOR="STRING"
  iINDEX 范围是 i0-i15. 如果没有 =iINDEX 索引自动递增。
  如果水平位置是 s 则字符串在全屏居中; 如果水平位置是 m 则字符串在菜单区域内居中。  2. 动态更新日期时间增加标题,可显示中文。
     例如:“date&time日期时间:  =MMM.dd.yyyy  HH:mm:ss”
2019-9-9
  setmenu 函数增加 --keyhelp-on* --keyhelp-off 参数。  

2019-8-8
  菜单每秒动态更新日期时间。
  1. 指定日期时间格式
  setmenu --string=x=y=color="date&time=FORMAT"
  例如:“date&time=MMM.dd.yyyy  HH:mm:ss”
        “date&time=dd/MMM/yy  hh:mm:ss AP"
  2. 隐含ISO8601标准日期时间格式(yyyy-MM-dd  HH:mm:ss)
  setmenu --string=x=y=color="date&time”
  3. 清除日期时间
  setmenu --string=date&time

2019-3-25
    条件菜单项目(iftitle )支持图形菜单。
    图形菜单改进:支持背景高亮、支持图文混排。
        
    setmenu --graphic-entry=图形类型=图形菜单行数=图形菜单列数=图形宽=图形高=图形行间隙 图形文件
    图文混排时,图形与文本选中项(高亮项)的设置,是各种独立的,可以单独设置。
    如果高亮只需要通过文本实现,图形类型可设置为0x90.
    图形类型:
    位0:前景高亮    位1:前景色翻转    位2:图形加框    位3:背景高亮   位4:图文混排     位7:背景透明
    图形行间隙在图文混排模式,不能实现随意调整。如果间隙不理想,可以设置图形间隙为零。然后使用增加字符间距实现。(setmenu --font-spacing=0:n)

2018-8-21
  增加 setmenu --auto-num-all-on 参数。
  给所有标题编号。(--auto-num-on 参数仅给引导标题编号)
  注释:0x8274 00/01/02=禁止自动编号/仅给引导标题编号/给所有标题编号
        0x8275 标题编号与标题内容之间的字符。如:0x20=' '   0x2d='-'
        0x8276 返回当前标题编号。(按所有标题计)

2018-07-01
  增加 setmenu --triangle-on --triangle-off 参数,打开/关闭菜单三角形指示器。默认打开。
  增加 setmenu --middle-align 参数。菜单项目及菜单项目帮助居中。

2018-06-12
  1. 增加 beep 函数,播放音乐。(issues #175)(issues #176)
  beep [--start|--mid|--end] [--play=N] [--nowait] 频率 持续时间 ...
  频率: Hz    持续时间: ms     最大 126 音符.
  N:播放次数 0-255。0是停止播放,255是连续播放(按任何键停止播放)。
  当音节很多时,可以用不同的行书写。使用 [--start|--mid|--end] 指定.
  例1: 警报
  beep --play=10 400 20 500 20 600 20 700 20 800 20 900 20 1000 20 1100 20 1200 20 1300 20 1400 20 1500 20 1600 20
  例2: 茉莉花
  title beep
  !BAT
  beep --start 330 600 330 300 392 300 440 300 522 300 522 300 440 300 392 600 393 300 440 300 392 1200
  beep --mid 392 600 392 600 392 600 330 300 392 300 440 600 440 600 392 1200
  beep --mid 330 600 293 300 330 300 392 600 330 300 293 300 261 600 261 300 293 300 261 1200
  beep --mid 330 300 293 300 261 300 330 300 293 900 330 300 392 600 440 300 522 300 392 1200
  beep --mid 293 600 330 300 392 300 293 300 330 300 261 300 220 300 196 1200
  beep --end --play=255 --nowait 220 600 220 300 261 300 293 900 330 300 261 300 293 300 261 300 220 300 196 1800
  2. 改善图像透明背景的算法。
  3. 修改 grub_memmove 函数,提高运算速度。
  4. 修正 map 函数中碎片映射的错误。

2018-04-23  在菜单项首行增加 !BAT 可按批处理方式书写与执行,使用批处理的功能。比如:goto :label

2018-03-15  增强 setmenu --string 函数功能
   --string=[X]=[-]Y=COLOR="STRING"
   没有X, 表示水平居中.
   -Y表示从菜单底部计数.  -0就是最后一行.

2017-12-05  增强颜色赋值功能。修正color及echo帮助信息。
  1. 按目标分配颜色,顺序不能乱(未选菜单 被选菜单 帮助 标题)。颜色可用占位符n替换。
    例: color black/cyan yellow/cyan red/cyan light-green/cyan    字符颜色/背景颜色,使用符号颜色。
    例: color 0x30 0x3e 0x34 0x3a    高位背景色,低位字符颜色,8位数字。
    例: color 0x888800000000 0x888800ffff00 0x888800880000 0x88880000ff00    64位数字。
    例: color 0x30    其余同NORMAL。在命令行上使用,改变控制台颜色。
    例: color 0x30 0xe n 0xa    背景色取自NORMAL。使用占位符n。
  2. 可以给指定目标赋颜色,NORMAL应当在首位。
    例: color normal=0x888800000000    其余目标颜色同NORMAL。
    例: color normal=0x4444440000ffff helptext=0xc highlight=0xd heading=0xe border=0xa    背景色同NORMAL。
    例: color standard=0xFFFFFF    改变控制台颜色。
  3. 改变字符串的颜色
    例: echo $[0xCD]字符串    改变字符串的颜色(8或64位数字)。C=背景色,D=字符颜色。
    例: echo $[]字符串        字符串使用系统标准颜色。
  4. 具体颜色可在命令行查看。
    例: echo -h-rrggbb
    例: echo -rrggbb

2017-11-28  修正 setmenu 函数,并且增加下列参数:
  1. --draw-box=[索引]=[起始x]=[起始y]=[水平长度]=[垂直长度]=[线宽]=[颜色]
          划线或画框。其中:索引=1-16;颜色=24色;线宽=1-255;尺寸单位是像素。
          --draw-box=[索引]  清除指定的线或框。
          --draw-box=        清除所有的线或框。
  2. --string=  清除所有的字符串。

2016-04-04
  支持动画菜单
  setmenu --graphic-entry=类型=菜单行数=菜单列数=图形宽(像素)=图形高(像素)=菜单行间距(像素)  菜单项0的路径文件名
  类型: 位0:高亮指定颜色    位1:高亮颜色翻转    位2:高亮显示线框    位7:背景透明(最好使用黑色背景)
  文件名: *n.??? 格式    n=00-99
  高亮颜色由 color HIGHLIGHT=0xrrggbb 指定。
  字符可以使用任意字型、字高、颜色,可以辅以图标。

2016-03-25
  菜单字符可以使用不同字型。
  例如:"七" 使用不同字型,将 .hex 文件中的 unicode 码 “4e03” 修改为 “0080”,  
            将菜单中的 "七" 修改为 “\X0080”。

2016-03-15
  1.增加动画控制热键 F2:播放/停止。
  2.增加动画控制位 0x835b,位0:0/1=停止/播放。
  3.增加精简字库模式:--simp=起始0,终止0,...,起始3,终止3
    内置字库应当包含 DotSize=[font_h],['simp']
    中文可以使用 --simp=
    例如:font --font-high=24 --simp= /24_24.hex
             DotSize=24,simp
    不使用热键:              可以加载 32*32 unifont 全字库
    使用热键:                 可以加载 24*24 unifont 全字库
    使用精简字库:           可以加载 46*46 汉字全字库
    使用精简字库及热键: 可以加载 40*40 汉字全字库
  4.不再支持 bin 格式字库。

2016-02-26  
加载透明背景的图像    splashimage [--offset=[type]=[x]=[y]] FILE
类型[type]:bit 7: 透明背景

2016-02-21
  1.增加图像背景色设置方法。    splashimage --fill-color=[0xrrggbb]
    作用之一,作为小图像的背景。
    作用之二,直接作为菜单的背景(即不加载图像背景)。此时只设置字体的前景色即可。
  2.增加动画菜单。    splashimage --animated=[type]=[delay]=[last_num]=[x]=[y] START_FILE
    类型[type]:bit 0-3: 播放次数    bit 4: 永远重复    bit 7: 透明背景
                      type=00: 禁止播放
                播放n次:序列图像各显示n次,时间独占。可作为启动前导、序幕。
                永远重复:序列图像无限循环,时间与菜单共享。可作为菜单里的动画。
                背景透明:即抠像。要求4角像素为背景色。
                                背景色最好为白色或黑色,这样可以去除一些灰色杂波。若是彩色背景,则应当非常干净。
                提醒:请以16进制方式输入。否则易错。
    延迟[delay]:序列图像之间的延迟。单位是滴答,即1/18.2秒。
    序列数[last_num]:序列图像总数(2位数,从1开始计数)。
    偏移[x]、[y]:图像偏移,单位像素。
    起始文件名[START_FILE]命名规则:*n.???   n: 1-9 或 01-99 或 001-999。
   
附演示动画,把它复制到.img或者.iso文件。希望大家展示自己创作的动画菜单。

2012-02-14
setmenu函数增加参数:
--highlight-short   高亮菜单项背景色仅限于文字(默认)
--highlight-full      高亮菜单项背景色整行显示(有人偏爱老旧模式)


今天上传的版本,可以增强 GRUB4DOS 菜单的编辑功能。
1.支持每像素16位彩色模式(64K 5:6:5)。
2.支持 jpg(jpeg,jpe)图像格式。
3.在 vbe 模式,使用 echo -rrggbb 可以显示 216 种彩色样本。
4.使用 echo -v 可以显示版本、内存信息。
5.增加 setmenu 函数,增强图形菜单编辑功能。参数:
  --ver-on --ver-off 版本信息打开/关闭。默认打开;
  --lang=en --lang=zh 菜单帮助信息中英文切换。默认英文;
  --auto-num-off --auto-num-on 关闭/打开菜单自动编号。默认关闭;
  --left-align --right-align 菜单左对齐/右对齐。默认左对齐。
  --font-spacing=[font]:[line] 设置字符间距/行间距。单位:像素。默认0。应当位于下面的参数之前;
  --string=[x]=[y]=[color]=["string“] 字符串位置、颜色与内容,可用于标题,说明,帮助等。单位:列,行,24位色彩;
    注:如果省略颜色,位于菜单框以上按标题颜色,位于菜单框以下按帮助颜色;
          字符串头尾要加英文双引号;
          列数=图像水平像素/(字符宽+字符间距)   字符宽=8;
          行数=图像垂直像素/(字符高+行间距)      字符高=10;
  --help=[x]=[w]=[y] 帮助位置。单位:列,行;
    注:x=0 由边框确定(默认);w=0 水平居中;
  --keyhelp=[y_offset]=[color] 按键帮助位置,颜色。单位:列,行,24位色彩;
    注:y_offset=0,项目与按键帮助位于同一区域,项目帮助可以覆盖按键帮助(默认);
          y_offset != 0,按键帮助到项目帮助的行偏移,项目帮助与按键帮助共存;
          y_offset<=4,项目帮助的显示行数;
          color=0 默认 “color helptext";
  --box x=[x] y=[y] w=[w] h=[h] l=[l] 菜单项标题起始列,起始行,每行最大字符数,最大菜单项数,菜单框线条宽度(像素);
    注:w=0 表示水平居中。此时 w 应当在 x 之后;
       l=0 表示不显示菜单框;
  --u 恢复菜单原始状态;
  --timeout=[x]=[y]=[color] 倒计时位置、颜色。单位:列,行,24位色彩.
    注:x=y=0 默认位于选中项目的尾部;
          color=0 默认 "color highlight"。
6.在 font 函数增加参数:
    font [--font-high=24] [--simp=] 文件名
    例子:  font /my.hex
                font --font-high=24 --simp=  /24.hex
  内置字库,如果不是 16*16 字体,头部需声明:DotSize=24,simp

高亮颜色.jpg (146.48 KB, 下载次数: 707)

高亮颜色.jpg

颜色翻转.jpg (111.65 KB, 下载次数: 671)

颜色翻转.jpg

高亮线框.jpg (72.47 KB, 下载次数: 680)

高亮线框.jpg

图文混排.jpg (178.35 KB, 下载次数: 645)

图文混排.jpg

背景高亮.jpg (192.25 KB, 下载次数: 650)

背景高亮.jpg

动画演示.rar

1.49 MB, 下载次数: 2258, 下载积分: 无忧币 -2

点评

能否搞一个说明书啊!这个项目太复杂了  发表于 2022-6-28 08:13
"unifont 全字库"是什么?是UniFonts吗?  发表于 2016-3-16 06:47
"unifont 全字库"是什么?是UniFonts吗?  发表于 2016-3-16 06:46
"unifont 全字库"是什么?是UniFonts吗?  发表于 2016-3-16 06:46

评分

参与人数 7无忧币 +35 收起 理由
zhczf + 5 赞一个!
879792799 + 5 好厉害!
ccccc5321c + 2 很给力!
2011cwj6958 + 5
mountainbear + 8 赞一个!
+ 5
oldking + 5 很给力!

查看全部评分

507#
发表于 前天 10:56 | 只看该作者
谢谢分享
回复

使用道具 举报

506#
 楼主| 发表于 2025-4-24 18:20:11 | 只看该作者
关于显示“日期和时间”的问题

"date&time=dd.MM.yyyy"     //这是显示:日.月.年      你的等号前有空格,是错误的

"date&time=dd.MM.yyyy  HH:mm:ss"     //这是显示:日.月.年  时.分.秒     你提供的菜单永远不会显示"时.分.秒"。
回复

使用道具 举报

505#
 楼主| 发表于 2025-4-24 18:13:06 | 只看该作者
我显示出当前系统时间是固定不变的,时间并没有变化的,想要显示的时间变化,不知那里出问题了。

把菜单发上来,才能知道所以然。
回复

使用道具 举报

504#
发表于 2025-4-24 17:21:53 | 只看该作者
hhh333 发表于 2021-4-8 16:55
经过测试setmenu
1、自动编号功能只在当前菜单有效,不能传递到子菜单;
2、日期时间显示在g4d中14秒才跳 ...

我显示出当前系统时间是固定不变的,时间并没有变化的,想要显示的时间变化,不知那里出问题了。
回复

使用道具 举报

503#
发表于 2025-3-17 20:42:49 | 只看该作者
hello
there is a menu.lst with the following content:
  1. default 0
  2. color yellow/black light-blue/light-gray black/light-gray black/light-gray

  3. setmenu --ver-off --string=0=0=0x666666="$[0x666666]Reanimator by Shoorup4eg" --string=61=0=0xFFFF00="date&time =dd.MM.yyyy"

  4. title  > Continue system startup                                         \n \n                           Normal start.
  5. root (hd0,0)
  6. chainloader +1
  7. title \n \n
  8. clear
  9. title  > Reboot                                                          \n \n                                Reboot system.
  10. reboot
  11. title  > ShutDown                                                        \n \n                               ShutDown system.
  12. halt
复制代码

question about displaying "date&time"
in g4d exactly what is specified is displayed - only the day, without time
in g4e it is displayed in ISO8601 format.
how to fix the menu.lst in g4e?

你好
有一个 menu.lst,内容如下:

关于显示“日期和时间”的问题
在 g4d 中,显示的正是指定的内容 - 仅显示日期,不显示时间
在 g4e 中,显示为 ISO8601 格式。
如何修复 g4e 中的 menu.lst?
回复

使用道具 举报

502#
发表于 2025-1-6 16:57:52 | 只看该作者
rulyua 发表于 2025-1-6 15:51
嗨,大家好!
抱歉英语 - 有谁可以将带有主题的 grub4dos 上传到 github 吗?
Hāi, dàjiā hǎo!

您是想要 setmenu 命令吗?它是 grub4dos 内建的命令。

最新版的 grub4dos 应该有这条命令。
回复

使用道具 举报

501#
发表于 2025-1-6 15:51:28 | 只看该作者
嗨,大家好!
抱歉英语 - 有谁可以将带有主题的 grub4dos 上传到 github 吗?
Hāi, dàjiā hǎo!
Bàoqiàn yīngyǔ - yǒu shéi kěyǐ jiāng dài yǒu zhǔtí de grub4dos shàngchuán dào github ma?

点评

您是想要 setmenu 命令吗?它是 grub4dos 内建的命令。 最新版的 grub4dos 应该有这条命令。  详情 回复 发表于 2025-1-6 16:57
回复

使用道具 举报

500#
发表于 2025-1-6 15:50:16 | 只看该作者
hi guys!
sorry for english  - does anyone could upload grub4dos with thema to github?
回复

使用道具 举报

499#
发表于 2024-12-17 20:58:44 | 只看该作者
其实也够用了
回复

使用道具 举报

498#
发表于 2024-12-17 16:59:32 | 只看该作者
感谢分享
回复

使用道具 举报

497#
发表于 2024-12-17 16:53:39 | 只看该作者
呃呃呃
回复

使用道具 举报

496#
发表于 2024-11-2 13:27:35 | 只看该作者
大写的服
回复

使用道具 举报

495#
发表于 2024-10-17 17:23:00 | 只看该作者
回复

使用道具 举报

494#
发表于 2024-10-7 11:21:53 | 只看该作者
官网下载报错403啦
回复

使用道具 举报

493#
发表于 2024-9-8 15:04:38 | 只看该作者
感谢分享
回复

使用道具 举报

492#
发表于 2024-7-24 16:39:24 | 只看该作者
太赞了
回复

使用道具 举报

491#
发表于 2024-7-7 23:11:55 | 只看该作者
谢谢楼主的分享
回复

使用道具 举报

490#
发表于 2024-7-5 15:32:18 | 只看该作者
学习!
回复

使用道具 举报

489#
发表于 2024-7-5 14:18:29 | 只看该作者
rbwrbw 发表于 2024-7-5 10:51
太能折腾了,发个成品直接写盘多好,只给了框架

开发者开发出来的东西,你不喜欢。你当然可以等着某个高人进行二次开发,开发出你想要的。

但 setmenu 是同时支持 BIOS 和 UEFI 两个体系的 grub4dos 的。

学会这条命令,你可以通吃 g4d 和 g4e,应该说,味道很香吧?

萝卜白菜,各有所爱。你要是不爱,那就是没有缘分,这是上天安排的,没办法。
回复

使用道具 举报

488#
发表于 2024-7-5 10:51:20 | 只看该作者
太能折腾了,发个成品直接写盘多好,只给了框架

点评

开发者开发出来的东西,你不喜欢。你当然可以等着某个高人进行二次开发,开发出你想要的。 但 setmenu 是同时支持 BIOS 和 UEFI 两个体系的 grub4dos 的。 学会这条命令,你可以通吃 g4d 和 g4e,应该说,味道  详情 回复 发表于 2024-7-5 14:18
回复

使用道具 举报

487#
发表于 2024-7-3 17:00:40 | 只看该作者
有太多的人被旧的文档误导,继续使用 gfxmenu 菜单方式。
我猜,其原因就在于,本帖被淹没,没能被大家看到!


建议管理员、版主尽快把这个帖子置顶!
建议管理员、版主尽快把这个帖子置顶!
建议管理员、版主尽快把这个帖子置顶!
回复

使用道具 举报

486#
发表于 2024-5-1 21:34:26 | 只看该作者
行不行
回复

使用道具 举报

485#
发表于 2024-4-26 13:54:22 | 只看该作者
各位大大好,请教一下问题:
我用hiddenmenu命令隐藏了菜单,然后提示字符“Press any key to enter the menu...”可以自定义吗?提示字符见下面图片。

如果可以,要怎么做呢?
回复

使用道具 举报

484#
 楼主| 发表于 2024-3-19 21:04:42 来自手机 | 只看该作者
在命令行执行:help color
回复

使用道具 举报

483#
发表于 2024-3-19 19:40:04 | 只看该作者
问一下大哥,线框的颜色怎么改啊
回复

使用道具 举报

482#
 楼主| 发表于 2023-10-6 12:59:03 来自手机 | 只看该作者
本帖最后由 2011yaya2007777 于 2023-10-6 13:00 编辑
请教,在菜单中我该如何得知目前屏幕是4:3还是16:9


背景图不仅有长宽比,还有尺寸!这就要求你预想设置屏幕分辨率。如果是你自己的电脑,可以预先查看一下支持的分辨率。如果是通用菜单,那要考虑使用比较常见的分辨率。最早是640*480,后来是800*600。现在好像大部分支持1280*768。这样就准备一张背景图就可以了。也可以预先判断一下,不是预先设定的分辨率,就不加载背景图。还有一个问题,就是考虑字体大小的问题。分辨率高,16*16字体太小了。
回复

使用道具 举报

481#
发表于 2023-10-5 21:56:31 | 只看该作者
请教,在菜单中我该如何得知目前屏幕是4:3还是16:9,进而使用不同的图片当作背景,谢谢。
回复

使用道具 举报

480#
 楼主| 发表于 2023-10-3 11:49:45 来自手机 | 只看该作者
不要加载到内存,试一试
回复

使用道具 举报

479#
发表于 2023-10-3 11:44:05 | 只看该作者
2011yaya2007777 发表于 2023-9-21 15:42
在主菜单里设置:
从子菜单返回主菜单,不想二次加载背景图        calc *0x8312&2 > nul ||  splashi ...

受主板限制 BOOT.WIM 大于1G后 LEGACY就不能正常启动了(会报内存不足,无法创建RAMDISK设备),而UEFI方式并无此限制,大大有没有办法可以解决这个1G的问题
回复

使用道具 举报

478#
发表于 2023-9-30 03:13:20 | 只看该作者
本帖最后由 oluolio 于 2024-1-14 23:05 编辑

.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-6-20 16:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表