Ventoy Theme Plugin

What do you feel when you first see Ventoy ? Not so pretty right? Now you can customize your own theme!
Ventoy is based on grub2, so all grub2 themes can be used on Ventoy.
This website collects many beautiful grub themes GRUB Themes - Gnome-look.org

  • Json Configuration

A theme object is defined to describe the theme configuration in /ventoy/ventoy.json.
It should be noted that, you don't need to configure every option, you can also configure only some or one of them.

{
    "theme": {
        "file": "/ventoy/theme/blur/theme.txt",
        "gfxmode": "1920x1080",
        "display_mode": "GUI",
        "serial_param": "--unit=0 --speed=9600",
        "ventoy_left": "5%",
        "ventoy_top": "95%",
        "ventoy_color": "#0000ff",
        "fonts": [
            "/ventoy/theme/blur/Hack-12.pf2",
            "/ventoy/theme/blur/Hack-14.pf2",
            "/ventoy/theme/blur/Hack-16.pf2"
        ]
    }
}

Key Type Description
file STRING/STRING ARRAY The theme.txt file path. It can be a single string or a string array. For example:
"file": [
    "/ventoy/theme1/theme.txt",
    "/ventoy/theme2/theme.txt",
    "/ventoy/theme3/theme.txt",
    "/ventoy/theme4/theme.txt"
]
When you use a string array, Ventoy will randomly select one of them at boot time.
gfxmode STRING Optional, the gfxmode for grub2, default is "1024x768"
display_mode STRING Optional, the menu display mode, GUI CLI serial serial_console default is GUI
"GUI" or "CLI" corresponding to the GUI mode and TEXT mode respectively. On very few machines Ventoy's menu can't be shown or the cursor moves extremely slow. In this case you can set the default mode to "CLI".
However, both "GUI" and "CLI" need a VGA device, if your machine only has serial, you can use serial
Also you can use serial_console if you have both serial and VGA device.
Attention: Unicode characters will NOT be displayed normally in CLI or serial mode.
serial_param STRING Optional, will be used only if display_mode is set to serial or serial_console
This parameter is used to set the serial(e.g. port speed), --unit=0 corresponding to COM1, --unit=1 corresponding to COM2 ...... https://www.gnu.org/software/grub/manual/grub/grub.html#serial
ventoy_left STRING Optional, left position of the ventoy version info, default is "5%"
ventoy_top STRING Optional, top position of the ventoy version info, default is "95%"
ventoy_color STRING Optional, the color of the ventoy version info, default is "#0000ff"
fonts STRING ARRAY Optional, each item is a full path of the font file to be loaded
  • TEXT mode <==> GUI mode

Ventoy will use GUI mode by default. But it may have some problems in some special machine with GUI mode. In this case you need to switch to TEXT mode.
Both text mode and GUI mode provide the same features, only that the GUI mode is more beautiful. You can use the following methods to switch display mode:

  1. F5 Tools-->Screen Display Mode-->Force Text Mode menu. This is one-time effective and needs to be set every time you boot into Ventoy.
  2. Press F7. This is the same as F5 menu above. Press F7 repeatedly to switch back and forth between text mode and GUI mode.
  3. With theme plugin in this article, you can set text mode as Ventoy's default display mode.

  • Hotkey Tips

Add these following hbox definitions to your new theme.txt to show the hotkey tips. You can also change the position and color.

+ hbox{ 
    left = 30%
    top = 95%
    width = 10%
    height = 25
    + label {text = "@VTOY_HOTKEY_TIP@" color = "blue" align = "left"} 
}

+ hbox{ 
    left = 90%
    top = 5 
    width = 10%
    height = 25
    + label {text = "@VTOY_MEM_DISK@" color = "red" align = "left"} 
}

  • Ventoy version info

By default there will be a version info string at the lower left corner. For example 1.0.10 UEFI www.ventoy.net
This info is hard coded in the source. You can use ventoy_left/ventoy_top/ventoy_color to change its position and color.
If you want to remove it completely, I encourage you to read the source code, modify it and rebuild Ventoy. I think this is also the essence of open source.


  • Multi-Mode

Supported. You can set different themes for different BIOS mode. Please refer Multi-Mode Option for details.


  • Sample Theme

https://gbatemp.net/threads/medicat-usb-a-multiboot-linux-usb-for-pc-repair.361577/