无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2011yaya2007777
打印 上一主题 下一主题

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

    [复制链接]
361#
发表于 2022-11-21 20:58:39 | 只看该作者
就是因为n多年前grub4dos菜单难弄,才用gfxmenu作的菜单,今日看比当年易多了,但倒计时的滚动条仍然难,给大众个实例吧
回复

使用道具 举报

362#
发表于 2022-12-4 17:29:01 | 只看该作者
按7像素每张作了90张图片,终于勉强实现了倒计时进度条,要达到平滑需要630张图片才行,
可能方法笨拙了点。
有几个问题请问下yaya:
1.进度条动画启动,加载背景图像后倒计时到点屏幕闪动一下后不能自动启动默认菜单,
  不加载背景图像有时能自动启动,不知为何?
2.能按任意键清除动画进度条吗?

菜单命令如下:(30秒播放,间隔时间怎么计算正确?实际我选择4相近些)

timeout 30
splashimage --animated=1=4=90=196=572 /efi/grub/progress_bar/01.jpg
回复

使用道具 举报

363#
发表于 2023-1-10 11:10:15 | 只看该作者
请问 GRUB4DOS 标题名称怎么在那个文件 修改
回复

使用道具 举报

364#
发表于 2023-1-13 00:13:38 | 只看该作者
楼主的项目太复杂了,能否搞一个说明书呢,多谢了
回复

使用道具 举报

365#
发表于 2023-1-28 20:53:32 | 只看该作者
本帖最后由 求道者 于 2023-1-28 21:44 编辑

所以说文字和高亮框现在只支持216色吗?
#E7EFFF和#0000CE这两种色没法显示吗?


  1. color normal=0x0f highlight=0xf9
  2. setmenu --lang=zh --keyhelp-off --triangle-off --ver-off --auto-num-on --box x=120 w=120 y=6  l=0 --font-spacing=0:10
复制代码

然后w填0能让GRUB4DOS自动适应菜单条目的宽度吗?


高亮框右侧的边缘的几乎和文字贴在一起了。
怎么调整?

回复

使用道具 举报

366#
 楼主| 发表于 2023-1-28 21:28:31 | 只看该作者
所以说文字和高亮框现在只支持216色吗?
#E7EFFF和#0000CE这两种色没法显示吗?

color normal=0xffffff highlight=0xff

w填0能让GRUB4DOS自动适应菜单条目的宽度吗?



建议颜色使用24位色,表示方法:0x红红绿绿蓝蓝

点评

[attachimg]518757[/attachimg] 基本上我想弄成这个效果。 高亮那的背景颜色不是白色是#E7EFFF。 高亮里字体颜色也不是青色是#0000CE。 这两个颜色似乎都弄不出来。  详情 回复 发表于 2023-1-28 21:49
回复

使用道具 举报

367#
发表于 2023-1-28 21:49:54 | 只看该作者
本帖最后由 求道者 于 2023-1-28 22:34 编辑
2011yaya2007777 发表于 2023-1-28 21:28
color normal=0xffffff highlight=0xff


基本上我想弄成这个效果。
高亮那的背景颜色不是白色是#E7EFFF rgb(231, 239, 255)。
高亮里字体颜色也不是青色是#0000CE rgb(0, 0, 206)。
·这两个颜色似乎都弄不出来。

-----------------------------------------------------------
高亮里用24位色,似乎是改成高亮字体的颜色了。
选框颜色在哪调整?
还是选框调不了?



还有就是高亮框右侧的边缘的几乎和文字贴在一起了。
怎么调整?

字体现在也完全没渲染是吧?
------------------------------------------------------------

高亮选框不知道怎么调整。
但是由于没有高亮选框了。
所以选框和最后一个字的间隔就无所谓了。
最终效果还蛮和谐的。
能接受?
-----------------------------------------------------------
丫丫能不能把ZSTD加到GRUB4DOS里?
解压速度和LZ4类似。
但压缩比高很多。
--------------------------------------------------------
lzma压缩字体,G4D加载会乱码?


回复

使用道具 举报

368#
 楼主| 发表于 2023-1-29 08:57:32 | 只看该作者
高亮那的背景颜色不是白色是#E7EFFF rgb(231, 239, 255)。
高亮里字体颜色也不是青色是#0000CE rgb(0, 0, 206)。

highlight=0x00e7efff000000ce    前4位是背景色,后4位是前景色

选框颜色在哪调整?

是指菜单框? border=颜色

还有就是高亮框右侧的边缘的几乎和文字贴在一起了。
怎么调整?

末尾增加一个空格

字体现在也完全没渲染是吧?

没有。也可以做图形菜单,自己设计背景、字体、字形。

高亮选框不知道怎么调整。

上面已经回答。我喜欢高亮字符没有背景色,而前景色要明显区别于未选菜单项。第二张图差别太小。
高亮选择 highlight=0xce 挺好,你可以试一试

能不能把ZSTD加到GRUB4DOS里?

不熟悉,感觉意义不是太大。

lzma压缩字体,G4D加载会乱码?

没有测试过。目前使用gz压缩。

点评

猜到了,但后续都加空格就很繁琐。 没有选择框的风格似乎也挺不错。 就放弃了。  详情 回复 发表于 2023-1-29 12:14
linux下用lzma压了字体,还真就乱码了。 在现在这阶段gzip确实不是最好的选择,但g4d扩展麻烦确实是这样的。 与其修补g4d,不如魔改grub2,起码grub2的文件系统的支持主线自己就弄完了,所有主流压缩算法也支持,  详情 回复 发表于 2023-1-29 11:06
回复

使用道具 举报

369#
发表于 2023-1-29 11:06:41 来自手机 | 只看该作者
本帖最后由 求道者 于 2023-1-29 11:15 编辑
2011yaya2007777 发表于 2023-1-29 08:57
highlight=0x00e7efff000000ce    前4位是背景色,后4位是前景色




linux下用lzma压了字体,还真就乱码了。
在现在这阶段gzip确实不是最好的选择,但g4d扩展麻烦确实是这样的。
与其修补g4d,不如魔改grub2,起码grub2的文件系统的支持主线自己就弄完了,所有主流压缩算法也支持,主题也有现成的,就是没有磁盘仿真,UD支持啥的,还有些U启bug延续自grub1就应该没被主线修复,不支持批处理。
bash的语法不是特别好。
用lua会好点吧。
毕竟正经的脚本语言。
bash我个人的体验来说,体验不太行。
不能调用API,对数组支持也不好。
换到grub2,传统模式下的状态都会好很多,磁盘碎片,内存支持之类的。
他们的汇编环境也更新了。
grub4dos,没必要继续开发了。

点评

linux下lzma压缩好像要开什么“记录文件原始大小”之类的选项,记不清了。 ----- 我的grub2分支是有ud支持的。zstd压缩支持也移植过,不过没推送到我的github上。 zstd确实不错。  详情 回复 发表于 2023-1-29 11:16
回复

使用道具 举报

370#
发表于 2023-1-29 11:16:58 | 只看该作者
求道者 发表于 2023-1-29 11:06
linux下用lzma压了字体,还真就乱码了。
在现在这阶段gzip确实不是最好的选择,但g4d扩展麻烦确实是这样 ...

linux下lzma压缩好像要开什么“记录文件原始大小”之类的选项,记不清了。
-----
我的grub2分支是有ud支持的。zstd压缩支持也移植过,不过没推送到我的github上。
zstd确实不错。

点评

g4d用的lzma必须要求记录文件原始大小。好像当年采用lzma时说的一个意义就是文件大小在开头,很方便。zstd感觉可能确实加一下比较好,(如果像我这样用来启动linux/windows/pe三合一的人多的话),zstd似乎现在linux  详情 回复 发表于 2023-1-29 12:08
老实说,我觉得主线自己就应该放弃现有的类bash语法,随便找个现代点的脚本语言解析器,grub2又没有为其开发的脚本只有些乱七八糟的配置文件。 重写配置没什么包袱。 为其开发的mod,又是调用的API,完全不存在什  详情 回复 发表于 2023-1-29 11:24
回复

使用道具 举报

371#
 楼主| 发表于 2023-1-29 11:22:06 来自手机 | 只看该作者
按说g4d支持gzip,lzma,lz4。可是怎么不支持安装字库?如果字库已经压缩成gzip,那就不能再继续压缩成lzma了吧。

点评

我从文泉驿点阵宋转出的hex,还没压缩 。 我待会试试wintoflash说的参数。  详情 回复 发表于 2023-1-29 11:35
回复

使用道具 举报

372#
发表于 2023-1-29 11:24:41 来自手机 | 只看该作者
本帖最后由 求道者 于 2023-1-29 11:29 编辑
wintoflash 发表于 2023-1-29 11:16
linux下lzma压缩好像要开什么“记录文件原始大小”之类的选项,记不清了。
-----
我的grub2分支是有ud ...


老实说,我觉得主线自己就应该放弃现有的类bash语法,随便找个现代点的脚本语言解析器,grub2又没有为其开发的脚本只有些乱七八糟的配置文件。
重写配置没什么包袱。
为其开发的mod,又是调用的API,完全不存在什么兼容性问题。
而且我认为mod在脚本语言中就作为类库导入就行,执行文件只认可.efi,有些.efi支持参数传入,现在grub2还不支持。
而且最好全面函数化。
所有命令调用全是用的函数的方式。
就像现在的autohotkey2做了所有命令的函数化。

点评

我当然支持。早就想把这个傻逼bash解析器删了。 我的grub2分支是支持lua的,以前还尝试移植过python。 个人觉得lua/micropython都行。 grub2的gfxmenu主题系统我也不喜欢。我去年试过移植lvgl,后来太监了。 htt  详情 回复 发表于 2023-1-29 11:29
回复

使用道具 举报

373#
发表于 2023-1-29 11:29:44 | 只看该作者
求道者 发表于 2023-1-29 11:24
老实说,我觉得主线自己就应该放弃现有的类bash语法,随便找个现代点的脚本语言解析器,grub2又没有为其 ...

我当然支持。早就想把这个傻逼bash解析器删了。
我的grub2分支是支持lua的,以前还尝试移植过python。
个人觉得lua/micropython都行。
grub2的gfxmenu主题系统我也不喜欢。我去年试过移植lvgl,后来太监了。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=431866

点评

导入图形库固然是不错,但grub2现有的主题不是天文数字?用户能复用这些主题的话,可以省很多事。  详情 回复 发表于 2023-1-29 11:37
现在grub2不也不支持函数吗? 现代脚本语言最显著的特征就是支持函数了吧。 c++不是还有对象吗?  详情 回复 发表于 2023-1-29 11:33
类bash连bash都没完全支持就很可笑。  详情 回复 发表于 2023-1-29 11:30
回复

使用道具 举报

374#
发表于 2023-1-29 11:30:26 来自手机 | 只看该作者
wintoflash 发表于 2023-1-29 11:29
我当然支持。早就想把这个傻逼bash解析器删了。
我的grub2分支是支持lua的,以前还尝试移植过python。
...

类bash连bash都没完全支持就很可笑。
回复

使用道具 举报

375#
发表于 2023-1-29 11:33:02 来自手机 | 只看该作者
wintoflash 发表于 2023-1-29 11:29
我当然支持。早就想把这个傻逼bash解析器删了。
我的grub2分支是支持lua的,以前还尝试移植过python。
...

现在grub2不也不支持函数吗?
现代脚本语言最显著的特征就是支持函数了吧。
c++不是还有对象吗?

点评

grub2那个傻逼bash也支持函数啊。 https://github.com/supergrub/supergrub/blob/master/menus/sgd/autoiso.cfg  详情 回复 发表于 2023-1-29 11:39
回复

使用道具 举报

376#
发表于 2023-1-29 11:35:03 来自手机 | 只看该作者
2011yaya2007777 发表于 2023-1-29 11:22
按说g4d支持gzip,lzma,lz4。可是怎么不支持安装字库?如果字库已经压缩成gzip,那就不能再继续压缩成lzma ...


我从文泉驿点阵宋转出的hex,还没压缩 。
我待会试试wintoflash氏说的参数。
回复

使用道具 举报

377#
发表于 2023-1-29 11:37:35 来自手机 | 只看该作者
wintoflash 发表于 2023-1-29 11:29
我当然支持。早就想把这个傻逼bash解析器删了。
我的grub2分支是支持lua的,以前还尝试移植过python。
...

导入图形库固然是不错,但grub2现有的主题不是天文数字?用户能复用这些主题的话,可以省很多事。

点评

想顺便支持鼠标/触摸屏。 gfxmenu那一套东西太僵硬了,而且bug太多。  详情 回复 发表于 2023-1-29 11:41
回复

使用道具 举报

378#
发表于 2023-1-29 11:39:11 | 只看该作者
求道者 发表于 2023-1-29 11:33
现在grub2不也不支持函数吗?
现代脚本语言最显著的特征就是支持函数了吧。
c++不是还有对象吗?

grub2那个类bash也支持函数啊。
https://github.com/supergrub/sup ... nus/sgd/autoiso.cfg

点评

grub2能搞的东西太少了。 高级功能我几乎没用过。 他这个语法和资源匮乏度。 就把人劝退。 我对GRUB2的了解仅限于模组多。  详情 回复 发表于 2023-1-29 11:53
回复

使用道具 举报

379#
发表于 2023-1-29 11:41:07 | 只看该作者
求道者 发表于 2023-1-29 11:37
导入图形库固然是不错,但grub2现有的主题不是天文数字?用户能复用这些主题的话,可以省很多事。

想顺便支持鼠标/触摸屏。
gfxmenu那一套东西太僵硬了,而且bug太多。

点评

我就猜到你想用图形库写GUI,但这不应该第一阶段该做的东西。 gfxmenu他是主题模块,易用就够了。 开发好不好用就没所谓。 而且这显然不是第一阶段该做的工作。  详情 回复 发表于 2023-1-29 11:47
回复

使用道具 举报

380#
发表于 2023-1-29 11:47:22 来自手机 | 只看该作者
本帖最后由 求道者 于 2023-1-29 11:51 编辑
wintoflash 发表于 2023-1-29 11:41
想顺便支持鼠标/触摸屏。
gfxmenu那一套东西太僵硬了,而且bug太多。

我就猜到你想用图形库写GUI。
gfxmenu他是主题模块,易用就够了。
开发好不好用就没所谓。
脚本引擎移植工作量本身就巨大,现在还移植一个图形库,而且这显然不是第一阶段该做的工作。
况且能在脚本里用调用函数写GUI不是更易用吗?

点评

gfxmenu也是可以和图形库共存的,将来等到lvgl成熟了,可以解析主题之后直接送给lvgl绘制就行。 gfxmenu的主要问题还是它绘制图像的部分有很多bug,不能稳定复现,也不好调试。 这个的优先级确实不高。  详情 回复 发表于 2023-1-29 11:53
回复

使用道具 举报

381#
发表于 2023-1-29 11:53:47 | 只看该作者
求道者 发表于 2023-1-29 11:47
我就猜到你想用图形库写GUI。
gfxmenu他是主题模块,易用就够了。
开发好不好用就没所谓。

gfxmenu也是可以和图形库共存的,将来等到lvgl成熟了,可以解析主题之后直接送给lvgl绘制就行。
gfxmenu的主要问题还是它绘制图像的部分有很多bug,不能稳定复现,也不好调试。
这个的优先级确实不高。

点评

直接重构GFXMENU嘛,反正新的图形库移植了,怎能不试试? 但这显然没啥优先度。 G4D的特性与兼容手段移植,和脚本引擎移植才是第一阶段该做的工作。  详情 回复 发表于 2023-1-29 11:56
回复

使用道具 举报

382#
发表于 2023-1-29 11:53:50 | 只看该作者
wintoflash 发表于 2023-1-29 11:39
grub2那个类bash也支持函数啊。
https://github.com/supergrub/sup ... nus/sgd/autoiso.cfg

grub2能搞的东西太少了。
高级功能我几乎没用过。
他这个语法和资源匮乏度。
就把人劝退。
我对GRUB2的了解仅限于模组多。
回复

使用道具 举报

383#
发表于 2023-1-29 11:56:24 | 只看该作者
本帖最后由 求道者 于 2023-1-29 11:58 编辑
wintoflash 发表于 2023-1-29 11:53
gfxmenu也是可以和图形库共存的,将来等到lvgl成熟了,可以解析主题之后直接送给lvgl绘制就行。
gfxmenu ...

直接重构GFXMENU嘛,反正新的图形库移植了,怎能不试试?
但这显然没啥优先度。
G4D的特性与兼容手段移植,和脚本引擎移植才是第一阶段该做的工作。
最好是让主线接受这些想法。
连脚本都不支持。
谈什么易用性?
可以说是完全没搞头。

点评

主线是不接受这些想法的。以前bean移植过lua,进了主线。后来官方又把lua从主线里面删了,弄得bean很不高兴。 你所说的g4d的特性,也就是bios下的map吧,这个超出了我的能力。 其他我没看出有啥特别的。  详情 回复 发表于 2023-1-29 12:23
回复

使用道具 举报

384#
发表于 2023-1-29 12:08:07 | 只看该作者
本帖最后由 sunsea 于 2023-1-29 12:15 编辑
wintoflash 发表于 2023-1-29 11:16
linux下lzma压缩好像要开什么“记录文件原始大小”之类的选项,记不清了。
-----
我的grub2分支是有ud ...

g4d用的lzma必须要求记录文件原始大小。好像当年采用lzma时说的一个意义就是文件大小在开头,很方便。zstd感觉可能确实加一下比较好,(如果像我这样用来启动linux/windows/pe三合一的人多的话),zstd似乎现在linux用的很多了,initrd镜像啥的都用zstd压缩了。(虽然可以改配置改回gzip,所以说如果开发者嫌烦什么的不加也行)。

我翻了一下man lzma,似乎没找到加什么参数记录原始文件长度。可能得再找找。


话说uefi下应该不存在实模式下内存限制导致尽可能砍代码的问题吧?

点评

没这选项  详情 回复 发表于 2023-1-30 20:18
看到 sunsea 版主提到这个问题,我得解释一下。在解释之前,首先说明,下面这个解释并不重要,因为无论怎么解释,其结果都是要 “砍代码”,只不过 “砍代码” 的原因,不是由实模式造成的,而是因 grub1 缺乏内存  详情 回复 发表于 2023-1-29 13:58
uefi下不存在这个问题。  详情 回复 发表于 2023-1-29 12:24
UEFI下可能zstd的实现可能都要重新写。 但grub2有现成的。  详情 回复 发表于 2023-1-29 12:09
回复

使用道具 举报

385#
发表于 2023-1-29 12:09:36 | 只看该作者
本帖最后由 求道者 于 2023-1-29 12:11 编辑
sunsea 发表于 2023-1-29 12:08
g4d用的lzma必须要求记录文件原始大小。好像当年采用lzma时说的一个意义就是文件大小在开头,很方便。zst ...

UEFI下可能zstd的实现可能都要重新写。
但grub2有现成的。

不如说grub2有一堆现成的新特性。
但缺少对旧事物兼容。

点评

大概是用习惯了,我感觉现有g4d这样比grub2舒服很多,命令也比较精简。  详情 回复 发表于 2023-1-29 12:15
回复

使用道具 举报

386#
发表于 2023-1-29 12:14:21 | 只看该作者
本帖最后由 求道者 于 2023-1-29 12:22 编辑
2011yaya2007777 发表于 2023-1-29 08:57
highlight=0x00e7efff000000ce    前4位是背景色,后4位是前景色
末尾增加一个空格

猜到了,但后续都加空格就很繁琐。
没有选择框的风格似乎也挺不错。
就放弃了。
上面已经回答。我喜欢高亮字符没有背景色,而前景色要明显区别于未选菜单项。第二张图差别太小。
高亮选择 highlight=0xce 挺好,你可以试一试


从鹿身上取了个色。
应该是这样。
原图也是对比度并不高。
深蓝色和淡蓝色。


回复

使用道具 举报

387#
发表于 2023-1-29 12:15:57 | 只看该作者
求道者 发表于 2023-1-29 12:09
UEFI下可能zstd的实现可能都要重新写。
但grub2有现成的。

大概是用习惯了,我感觉现有g4d这样比grub2舒服很多,命令也比较精简。

点评

所以说不止复杂点的语法。 dos系跳转就是goto。 编程 上也不推荐goto。 现代语言都用if。 可读性好些。 而且更不容易犯错。 我不喜欢DOS语法。  详情 回复 发表于 2023-1-29 12:25
回复

使用道具 举报

388#
发表于 2023-1-29 12:23:48 | 只看该作者
求道者 发表于 2023-1-29 11:56
直接重构GFXMENU嘛,反正新的图形库移植了,怎能不试试?
但这显然没啥优先度。
G4D的特性与兼容手段移 ...

主线是不接受这些想法的。以前bean移植过lua,进了主线。后来官方又把lua从主线里面删了,弄得bean很不高兴。
你所说的g4d的特性,也就是bios下的map吧,这个超出了我的能力。
其他我没看出有啥特别的。

点评

从保守的角度来讲。 这种破坏性的更新,那是不可能会出现在小更新里的。 怕不是下个大版本才有可能。  详情 回复 发表于 2023-1-29 12:28
回复

使用道具 举报

389#
发表于 2023-1-29 12:24:33 | 只看该作者
sunsea 发表于 2023-1-29 12:08
g4d用的lzma必须要求记录文件原始大小。好像当年采用lzma时说的一个意义就是文件大小在开头,很方便。zst ...

uefi下不存在这个问题。

点评

那就挺好。  详情 回复 发表于 2023-1-29 12:29
回复

使用道具 举报

390#
发表于 2023-1-29 12:25:32 | 只看该作者
sunsea 发表于 2023-1-29 12:15
大概是用习惯了,我感觉现有g4d这样比grub2舒服很多,命令也比较精简。

所以说不能用复杂点的语法。
dos系跳转就是goto。
编程上也不推荐goto。

现代语言都用if。
可读性好些。
而且更不容易犯错。
我不喜欢DOS语法。

点评

我个人感觉还行。反正这个环境也不能要求太高,以短小精悍为主,cmd系语法挺够用的。有更多需求那就是外部命令了。不能拿正经编程要求脚本。不过正经搞起来lua什么的确实还行,但我估计开发者没这个精力。  详情 回复 发表于 2023-1-29 12:29
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-28 04:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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