Re: Fancy menu for GRUB EFI
Cool menus, but I can't seem to get it to work on my setup. Where is grub64.efi looking for the fonts and themes? On the same partition, relative to any particular directory, or something else?
Re: Fancy menu for GRUB EFI
Placed in the OSX partition root /
Code:
/boot/
grub64.efi
grub.cfg
Nice first screen, promises great stuff, then getting lost.
Gets the initial graphical boot screen, then 'c' gets nice black window and shell prompt sh:grub>
(with painfully slow response).
No success so far trying to edit menuentry for actual boot, dont know why.
e.g. could not use 'configfile /grub2.cfg' to get sub-menu.
Do we need to read about classes?
Missing commaands in the demo grub64.efi include 'echo' 'read' 'videotest' so selections from first screen fail on these.
Will try more later.
Re: Fancy menu for GRUB EFI
Quote:
Originally Posted by
pxwpxw
Placed in the OSX partition root /
Code:
/boot/
grub64.efi
grub.cfg
Nice first screen, promises great stuff, then getting lost.
Gets the initial graphical boot screen, then 'c' gets nice black window and shell prompt sh:grub>
(with painfully slow response).
No success so far trying to edit menuentry for actual boot, dont know why.
e.g. could not use 'configfile /grub2.cfg' to get sub-menu.
Do we need to read about classes?
Missing commaands in the demo grub64.efi include 'echo' read' 'videotest' so selections from first screen fail on these.
Will try more later.
There are still problem with colin's patch, it's not quite optimized and the screen needs to be redrawn a lot. I plans to rework the menu system soon, this is just a demo of what the fancy menu looks like.
1 Attachment(s)
Re: Fancy menu for GRUB EFI
The new graphic menu system is almost done now, you can use menuentry to add boot items, for example, grub.cfg could be like this:
menuentry "AAA" {
set root=(hd0,1)
chainloader +1
}
menuentry "BBB" --class ubuntu {
true
}
. /menu/menu_efi.cfg
You can also use config file format, which allows you to construct sub menu as well:
menu
{
Linux
{
command = "linuz .. \n initrd .."
}
"Sub Menu"
{
Halt
{
class = "Other"
command = "halt"
}
Reboot
{
command = "reboot"
}
}
}
Save this to a file like my_menu.txt, then use merge_config to append it to the menu list:
merge_config /my_menu.txt
The menu.cfg file appends a Tools menu, it contains the following tools:
Toggle Mode
Switch between text and graphic mode
Terminal
Open a terminal window, ESC to quit
Change Theme
Change menu theme
Layout Demo
Run the layout demo, ESC to quit
Halt
shutdown
Reboot
reboot
The resource file is at:
http://grub4dos.sourceforge.net/menu.zip
4 Attachment(s)
Re: Fancy menu for GRUB EFI
After editing several files to get a working gfx menu I liked, looking good, all OS booting ok. The background picture makes it necessary to tweak terminal background and some other colours. Lots of options to understand.
Terminal is good, still missing history and tab completion, also paging option (like efi shell -b on individual command). Other multiple terminal configurations work well (not popup).
Screen 1920x1200.
Not tried on text screen, default is too small, refit efi shell can change text mode to max native resolution (mode command), but IDK why one would need to use text mode on Apple.
Attached pictures and detail on edited files.
This was grub.cfg
Code:
. /menu/pxw1x.cfg
. /menu/menu_efi.cfg
1 Attachment(s)
Re: Fancy menu for GRUB EFI
Update:
TAB completion for term.
Support key mapping, for example, you can map F5 to ctrl-x using this:
mapkey {
f5 = ctrl-x
}
Support user defined hotkey, for example, in the demo:
onkey {
c = "menu_popup term_window"
e = "menu_popup edit_window edit.text=command"
f7 = "menu_popup layout_test"
f8 = menu_toggle_mode
f9 = halt
f10 = reboot
}
c open a terminal window, e open a edit box to edit the current
command, use ctrl-x to save it. f7 runs the layout demo test, f8
toggle between text and graphic mode, f9 shutdown, f10 reboot.
Optimize screen update algorithm, the menu should run more smoothly.
The demo file at http://grub4dos.sourceforge.net/menu.zip is updated.
Re: Fancy menu for GRUB EFI
Quote:
Originally Posted by
bean123
Update:
TAB completion for term.
Support key mapping, for example, you can map F5 to ctrl-x using this:
mapkey {
f5 = ctrl-x
}
Support user defined hotkey, for example, in the demo:
onkey {
c = "menu_popup term_window"
e = "menu_popup edit_window edit.text=command"
f7 = "menu_popup layout_test"
f8 = menu_toggle_mode
f9 = halt
f10 = reboot
}
c open a terminal window, e open a edit box to edit the current
command, use ctrl-x to save it. f7 runs the layout demo test, f8
toggle between text and graphic mode, f9 shutdown, f10 reboot.
Optimize screen update algorithm, the menu should run more smoothly.
The demo file at
http://grub4dos.sourceforge.net/menu.zip is updated.
All good so far on IMAC81, aluminium keyboard,
Terminal TAB completion is great.
(history?).
All works well with all the keys in mapkey, onkey (right from the startup screen), still to checkout editing boot command. (just using your menu and grub64.efi).
terminal scroll back buffer seems to be about 140 lines, seems to also need paging option for long output.
All this with no significant increase in grub64.efi size.
Re: Fancy menu for GRUB EFI
Quote:
Originally Posted by
pxwpxw
terminal scroll back buffer seems to be about 140 lines, seems to also need paging option for long output.
This can be configured via max_lines property, for example:
term_window {
panel {
class = frame
width = 100%
height = 100%
term {
width=100%
height=100%
max_lines=500
}
}
}
You can also set max_lines=0 to indicate infinite history, when output gets too long, use clear command to reset screen.
If max_lines is not set, default value 100 would be used.
Re: Fancy menu for GRUB EFI
Yes max_lines works nicely. gfx terminal is very fast now, but text terminal wins for debuggiing - try set debug=all with command line boot linux /vmlinuz (debian lenny).