Menu

GUI

arsr4du

Home > Configuration > GUI

The GUI settings can me modified by changing parameters in the GUI section of the main configuration file config.plist.

Older Clover revisions < 1659 read the GUI settings from *refit.conf*

<key>GUI</key>
</dict>
...
</dict>

Table of Contents


TextOnly

<key>TextOnly</key>
<false/>

Text-only menu mode for a minimal GUI and faster loading times.


Theme

The design of the GUI depends on the chosen theme, which is set using:

<key>Theme</key>
<string>metal</string>

Additionally you can set the theme in the preference panel. This setting overrides the one in the configuration file. In case an invalid theme name is used here (no theme.plist exists at the given path), then the configuration file setting is used again. If even here the theme name is invalid, then you will be greeted with an ugly fallback theme that will still be operational.


ScreenResolution

<key>ScreenResolution</key>
<string>1024x768</string>

You can set the desired screen resolution if it is supported by the video card and the monitor. Clover will try to set the highest available resolution, however it might fail. You can check the list of supported resolutions in the boot log. In case PatchVBios=Yes is used in the Graphics section, you will get the highest resolution supported by the monitor. In that case this parameter may be obsolete. The default value is 1024x768.


ConsoleMode

<key>ConsoleMode</key>
<string>[Number]/Max/Min</string>

Will switch the console driver to requested console mode (which is used by shell, boot.efi, dumpueficalls, etc). It is usually not necessary to use this, and should be used only where needed.

  • 0 (default) - Disabled. No switch will be done due to possible incompatibility reasons.
  • Min - Selects lowest mode available. Useful for slow consoles, like CloverEFI, with much debug output.
  • Max - Select highest mode available. Useful for fast consoles, where it works.
  • [Number] - Selects specific mode. See boot.log from revison >= 2496 for a list of available modes.

Language

<key>Language</key>
<string>en:0</string>

Sets language of Clover's help menu, that can be accessed with shortcut F1. Furthermore, this setting is passed to the OS and can have an influence on the language.

Available languages codes are:
en, ru, fr, it, es, pt, br, de, nl, pl, ua, cz, hr, id, ko


CustomIcons

<key>CustomIcons</key>
<true/>

Enabling this key will load the icon from the partition itself. You may assign your own icons to each volume, and you can use different icons for different volumes, even when they have the same OS.


Mouse

<key>Mouse</key>
<dict>
    <key>Enabled</key>
    <true/>
    <key>Speed</key>
    <integer>2</integer>
    <key>Mirror</key>
    <false/>
    <key>DoubleClick</key>
    <integer>500</integer>
</dict>
  • Enabled - The mouse may not work or even cause the whole GUI to lock up. Turn it off if this is the case.
  • Speed - Mouse movement speed. Reasonable values range from 2-8. Some mice may need a negative speed to reverse the movement. 0 turns off the mouse.
  • Mirror - Negative movement speed on a single axis
  • DoubleClick - Pause for double click detection in milliseconds. Until now 500has been a good value for everyone.

Scan

<key>Scan</key>
<true/>

Enable or disable all automatic scans.


Scan / Entries

<key>Scan</key>
<dict>
  <key>Entries</key>
  <true/>
</dict>

Enable or disable the automatic UEFI entries scan.


Scan / Tool

<key>Scan</key>
<dict>
  <key>Tool</key>
  <true/>
</dict>

Enable or disable the automatic UEFI tool scan.


Scan / Legacy

<key>Scan</key>
<dict>
  <key>Legacy</key>
  <string>Last</string>
</dict>

Enable or disable automatic legacy scan. Also choose from First to list in the beginning, Last to list it in the end.


Scan / Kernel

<key>Scan</key>
<dict>
  <key>Kernel</key>
  <string>All/Newest/Oldest/First/Last/MostRecent/Earliest/None</string>
</dict>

Enable or disable automatic Linux kernel scan. Additionally you may choose between several options:

  • All - all found kernels (default)
  • Newest - newest file modification date
  • Oldest - oldest file modification date
  • First - first matching
  • Last - last matching
  • MostRecent - most recent version
  • Earliest - earliest version
  • None - no kernel scan

Hide

<key>Hide</key>
<array>
  <string>WindowsHDD</string>
  <string>HD(1,GPT,E223FF7F-F2DA-4DBB-B765- 756F2D95B0FE)</string>
</array>

Hide a partition with given name or GUID.


Custom

<key>Custom</key>
<dict>
  ...
</dict>

If the automatically scan entries are not enough you can add your own custom boot entries.


Custom / Entries

<key>Entries</key>
<array>
  <dict>
    <key>Disabled</key>
    <false/>
    <key>Volume</key>
    <string>Volume name or GUID</string>
    <key>VolumeType</key>
    <string>Volume type</string>
    <key>Path</key>
    <string>Loader path</string>
    <key>Arguments</key>
    <string>Load options</string>
    <key>AddArguments</key>
    <string>Load options</string>
    <key>Title</key>
    <string>Display title</string>
    <key>FullTitle</key>
    <string>Full display title</string>
    <key>Image</key>
    <string>ImagePath</string>
    <key>ImageData</key>
    <string>Image hex</string> OR <data>Image base64</data>
    <key>DriveImage</key>
    <string>ImagePath</string>
    <key>DriveImageData</key>
    <string>Image hex</string> OR <data>Image base64</data>
    <key>Hidden</key>
    <true/> or <false/> or <string>Yes/No/Always</string>
    <key>InjectKexts</key>
    <true/> or <false/> or <string>Yes/No/Detect</string>
    <key>NoCaches</key>
    <false/>
    <key>Kernel</string>
    <string>All/Newest/Oldest/First/Last/MostRecent/Earliest</string>
    <key>Type</key>
    <string>OSX/OSXInstaller/OSXRecovery/Windows/Linux</string>
    <key>BootBgColor</key>
    <string>RRGGBBAA</string>
    <key>CustomLogo</key>
    <false/>
    <key>KernelAndKextPatches</key>
    <dict>
          <key>AppleRTC</key>
          <false/>
          <key>KextsToPatch</key>
          <array>
          ... 
    </dict>
    <array>...</array> Or <true/> / <false/>
  </dict>
  ...
</array>
  • Disabled - Disables the entry so it is not taken into account.
  • Volume - A volume name or GUID to be used when scanning for loader.
  • VolumeType - The type of volume you want your custom entry to match. Can be a string with one type or an array with multiple types. Valid volume types are Internal, External, Optical and FireWire.
  • Path - Location to scan for the efi loader.
  • Arguments - Arguments that are to be passed to the loader. Overides the default boot arguments in Boot / Arguments.
  • AddArguments - Adds to the default boot arguments. For a SubEntry it adds to the arguments of the main entry.
  • Title - Changes the display title. Uses the format "Boot <Title> from <VolumeName>"
  • FullTitle - Sets the display title to only "<FullTitle>" without any format.
  • Image - Path to a custom image file. Search path is root directory of entry volume, theme directory, clover directory, clover volume root directory, and finally os icon names.
  • ImageData - Embedded custom image. Can be PNG or BMP format.
  • DriveImage - Path to a custom drive image file. Search path is root directory of entry volume, theme directory, clover directory, clover volume root directory, and finally os icon names.
  • DriveImageData - Embedded custom drive image. Can be PNG or BMP format.
  • Hidden - Hides the entry. If value is true the entry can be shown by pressing F3. If value is Always the entry can never be show.
  • InjectKexts - Inject kexts. Valid options are Yes, No or Detect. Use Detect to inject kexts only if FakeSMC is not present in KernelCache or /S/L/E. For OSX, OSXInstaller and OSXRecovery type entries.
  • NoCaches - Skip caches. For OSX, OSXInstaller and OSXRecovery type entries.
  • Kernel - Set the linux kernel scan priority. If this option is not supplied Clover will show all kernels found. Valid options are Newest, Oldest, First, Last, MostRecent, Earliest. For LinuxKernel type entries.
  • Type - The type of OS that is being scanned for. Valid types are OSX, OSXInstaller, OSXRecovery, Windows, Linux, LinuxKernel. If Type is not one of these it will be treated as all types.
  • BootBgColor - Specifies the boot screen's background color. For OSX, OSXInstaller and OSXRecovery type entries.
  • CustomLogo - Defines the boot screen logo style. For further information read Boot / CustomLogo
  • SubEntries - (Default:true) Disables the default sub entries if set to false. Can also be used to create custom sub entries using the same structure as a main entry, any settings that aren't set in the sub entry will be inherited from the main entry.
  • KernelAndKextPatches - Uses the same hierarchy and offers the same functionality found in KernelAndKextPatches, so you can selectively apply patches for each entry. Only works with revision 2797 or higher.

Custom / Legacy

<key>Legacy</key>
<array>
  <dict>
    <key>Volume</key>
    <string>Volume name or GUID</string>
    <key>Title</key>
    <string>Display title</string>
    <key>Hidden</key>
    <false/>
    <key>Disabled</key>
    <false/>
    <key>Ignore</key>
    <true/>
    <key>Type</key>
    <string>Windows/Linux</string>
  </dict>
  ...
</array>
  • Volume - A volume name or GUID to be used when scanning for loader.
  • Title - Changes the display title. Uses the format "Boot <Title> from <VolumeName>"
  • Hidden - Hides the entry but can be shown by pressing F3.
  • Disabled - Disables the entry so that is never shown.
  • Ignore - Entry will be ignored, or not used, so it will not affect anything.
  • Type - The type of OS that is being scanned for. Valid types are OSX, OSXInstaller, OSXRecovery, Windows, Linux, LinuxKernel. If Type is not one of these it will be treated as all types.

Custom / Tool

<key>Tool</key>
<array>
  <dict>
    <key>Volume</key>
    <string>Volume name or GUID</string>
    <key>Path</key>
    <string>Loader path</string>
    <key>Arguments</key>
    <string>Load options</string>
    <key>Hotkey</key>
    <string>G</string>
    <key>Title</key>
    <string>Display title</string>
    <key>FullTitle</key>
    <string>Full Display title</string>
    <key>Hidden</key>
    <false/>
    <key>Disabled</key>
    <false/>
    <key>Ignore</key>
    <true/>
  </dict>
  ...
</array>

More explanation will come.


ShowOptimus

<key>ShowOptimus</key>
<true/>

Rev 4222
Tested on Dell Latitude E6430 which can be powered with Optimus enabled or disabled in BIOS.

In Clover GUI, it will look like this:
img

The criteria is a number of videocard found.
2 = Embedded Intel + Discrete == "Intel"
1 = Discrete only == "Discrete"

I am not sure if someone else needed this feature so default behaviour to be not shown.


KbdPrevLang

Rev 4719

Added prelang kbd option if want to keep language when updating macOS with native NVRAM.
- This is the key to fixing macOS language problems when using native NVRAM.
- This is macOS bug for long time ago.
- When using only AptioMemoryFix or OsxAptioFixV3 without EmuVariableUefi
- When using a language other than English

You can fix issues below if use this key:

<key>GUI</key>
    <dict>
        <key>KbdPrevLang</key>
        <true/>
        <key>Language</key>
        <string>ru:0</string>          <----- you want language
    </dict>
  1. mixed language in restart popup after updating macOS.
    img

  2. always keep english when updating macOS in recovery despite to user already use other language in macOS.


Dark/Light/Daytime themes

Rev 4644
A possibility to choose between Light and Dark embedded themes

<key>GUI</key>
    <dict>
        <key>Theme</key>
        <string>embedded</string>
        <key>EmbeddedThemeType</key>
        <string>Dark</string>

Possible values Dark/Light/SVG /Daytime

The result:
img


Daytime Support

Rev 4773

Daylight support in Clover GUI (like in Mojave).
You should choose

<key>GUI</key>
    <dict>
        <key>Timezone</key>
        <integer>3</integer>
        <key>Theme</key>
        <string>embedded</string>
        <key>EmbeddedThemeType</key>
        <string>Daytime</string>

Then BIOS time + Timezone will be compared to 8:00 of morning and 20:00 of evening and set light type or dark.

Rev 4774

Clovy SVG theme has os_moja_night icon and Background_night to choose depending on daylight.


Disable Logging

Rev 4794

Implemented command line to manage boot.efi output

Explanations by vit9696 here.

By default I set command line as "log=0"it means you will not see long output from system start to ++++++

The setting can be changed inClover GUI> Options> System Parameters

img


PlayAsync

Rev 4840

Sync and Async sound play.

Sync play - sound play before enter Clover GUI. Clover GUI started after the sound is finished.

Async play - sound started to play before Clover GUI started and continue playing when GUI is ready.

To switch edit config.plist

<key>GUI</key>
    <dict>
        <key>PlayAsync</key>
        <false/>

Startup Sound Configuration UI

Rev 4847-4852

There is interface in Clover GUI to tune startup sound parameters.

img

Computer will play a sound before enter Clover GUI. To do this you have to

  1. Use CloverX64.efi revision 4852 or up.

  2. Place AudioDxe-64.efi into drivers64 and drivers64UEFI. Playing is possible in both legacy and UEFI modes. AudioDxe.efi is included into Clover project and will be differ from original by Goldfish64 but almost compatible.

  3. Place sound.wav and may be sound_night.wav into your theme folder, for example /EFI/CLOVER/theme/Clovy/. The sound must be 16bit, and 44100 or 48000Hz. But I also made conversion on the fly so 8000Hz is also supported.

  4. Tune sound output in Clover GUI as on screen above. The settings will be stored in NVRAM and used next restart. With legacy Clover or systems without nvram you have to use EmuVariableUefi.efi and rc.scripts to save nvram.plist. For very new systems like Z370 where nvram is not working in macOS there is a chance that the nvram is working on Clover level and so all will works. SIC! Legacy Clover saved Variables only with Apple guid so why it will not work. After some discussing I may rebuild the system to use AppleBootGuid. In this case the system will not be compatible with the original driver but will work with legacy systems.

No more needs in BootChimeCfg and BootChimeDxe while the compatibility still remains