Open-source project
ryanrudolfoba/SteamDeck-Clover-dualboot avatar
ryanrudolfoba/SteamDeck-Clover-dualboot

SteamDeck-Clover-dualboot: a script that puts Clover on a Steam Deck

Script to install Clover - a graphical boot manager for the Steam Deck and Lenovo Legion Go S.

767 stars40 forksShellLicense varies

At a glance

What is it?
This repository packages the Clover boot manager into an install script for Steam Deck and Lenovo Legion Go handhelds running SteamOS, with a shell-based toolbox and a systemd sanity check that repairs the dual boot. The driver work is the fragile part, and one handheld model is explicitly blocked.
Who is it for?
Adopt this script if you have a Steam Deck or a Legion Go and you want Clover rather than the stock bootloader to pick between SteamOS or Bazzite and Windows, and understand that you are running a script that rewrites your EFI partition. Stay away if you are on the Legion Go S, because the README blocks that model outright, or if you need a project with a stated licence, since none is identified in the repository.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 45 days ago.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A script around Clover, not a Clover fork

This repository is a packaging of tools around Clover, which the README describes as a graphical boot manager and boot loader, maintained in its own upstream project. The script's job is to make Clover usable on a handheld that ships with a locked-down bootloader, and to keep it usable.

The pieces the README lists are worth reading separately because they do different jobs. The main program doing the heavy lifting is Clover itself, and the actual boot menu you see at startup is upstream code. Clover Toolbox is a shell script that offers a simple graphical way to configure some aspects of the script. A custom systemd script performs a sanity check whenever SteamOS starts up, making sure the dual boot is intact and repairing it automatically if it is not.

The last of those is the most interesting design decision. A handheld that boots into a bootloader menu on every power on is a bad experience, and a SteamOS update that rewrites the EFI partition is a normal event. The systemd check is the answer to both, and it is why this is more than a one-time installer.

The project is written in shell, the default branch is main, the repository has no GitHub releases, and the licence is not identified in the listing. The top level of the tree is small and readable: an install-Clover.sh and an install-clover.sh, a custom directory, a CloverWindows directory, and image files for the README.

The XBOX 360 UEFI driver is the part that breaks

A handheld has no keyboard, and a bootloader menu without mouse or keyboard support is unusable. The README explains how that is handled: an XBOX 360 Controller UEFI driver by SkorionOS and chenx-dust, which lets the built-in controller of the ROG Ally, Legion Go and other handhelds work in Clover and other bootloaders. The author also reports testing it with a Logitech F710.

The mapping is documented in the changelog: the DPAD acts as arrow keys, A is ENTER, B is ESC, and if the DPAD does not work the LEFT THUMBSTICK controls the mouse pointer. The RIGHT TRIGGER stands in for LEFT MOUSE CLICK and the LEFT TRIGGER for RIGHT MOUSE CLICK.

The failure modes are documented just as carefully, and this is where the project's real constraints live. The XBOX 360 UEFI driver may stall or hang on Legion Go devices, because the driver keeps polling the controller, which makes Clover look like it is in a hang state. The documented fix is to remove the driver file manually:

bash
sudo rm /esp/efi/clover/drivers/uefi/UsbXbox360Dxe.efi

That single command tells you the whole shape of the risk. The driver is a third party binary dropped into the EFI partition, it is what makes the interface usable, and removing it is the escape hatch when it misbehaves.

The Legion Go S is blocked outright. The changelog entry dated Feb 19 2026 says it is blocked because the XBOX 360 UEFI driver is not compatible with it, and invites people to test and poke around. The repository title still mentions the Legion Go S with a strikethrough, which is a good signal of how the support matrix narrowed.

A sanity check that repairs the dual boot on every boot

The system integration is where this project is more than a downloader. SteamOS updates replace system files, and the partition layout on a handheld leaves little room to spare, so an installer that runs once and walks away tends to produce a device that boots into a menu and then fails to find anything.

The changelog shows the checks accumulating one at a time. There is an ESP sanity check that makes sure there is enough space in the EFI partition before doing anything, added in May 2024. There is a check that makes sure SteamOS or Bazzite is installed before Windows, added in October 2024, and the note there reads that WinDeckOS users are out of luck on that one. A 7z sanity check was added in October 2023 and then removed in May 2024 because 7z is installed by default in SteamOS 3.5.x and 3.6.x.

That sequence is the useful part. It shows the script checking the assumptions it depends on and dropping checks that stopped being necessary, which is the behaviour you want from something that runs on every boot.

A Clover whitelist was implemented in October 2024, and the note about it is precise: make sure you are on SteamOS 3.6.x for the whitelist to work correctly. The script also does a best-effort automatic removal of rEFInd if it was previously installed, from September 2023, and since then it has stopped relying on HackBGRT by integrating the author's separate BGRT logo changer script, with a custom logo shown when the device powers on.

The toolbox is where you make the choices

Clover Toolbox is a shell script with a simple graphical interface, and it is the place where the per-device configuration happens. The changelog entries describe the options that have been added over time and they map onto the specific awkwardness of each handheld.

For the Legion Go S, the script automatically sets config.plist to enable the mouse and use a screen resolution of 1920x1200 when running on that device, and support was added for the 83Q2, 83Q3, 83N6 and 83L3 variants in April 2025, with the 83E1 Legion Go variant added in July 2025. Support for the DeckSight OLED panel came in the same April 2025 update. For a device with a modified screen, there is an option for the DeckHD 1200p screen mod.

The theme handling has grown into a small configuration system of its own. There is a choice between a static theme and a random theme, a default grey embedded theme, and a modified Eclipse theme credited to chris1111. The default config.plist was set to use an Apocalypse theme, with a new theme in the February 2026 update and mouse enabled in the config. The config also carries entries for Pop!_OS, Nobara and Bazzite, and Batocera is supported with a v38 versus v39 choice that rewrites the config based on what you select. A notification dialog appears after changing themes.

The one option with a security flavour is the custom Clover release option, added in January 2024, which uses a specific Clover 5157 build and hides the OPTIONS button. The October 2024 note about the whitelist gives the reason: it makes sure you are on the expected SteamOS version, so the script is deliberately limiting what the bootloader will accept.

Tracking upstream Clover releases, one changelog entry at a time

The script's compatibility with Clover is tracked by version number, and the changelog is a list of those jumps. The July 2023 entry moved from Clover 5151 to 5154. December 2023 updated for Clover 5156 and added a Steam Deck OLED BGRT logo. January 2024 updated for Clover 5157. September 2023 brought Clover 5155, with a thanks to imfelixlaw for a pull request. October 2024 moved the Clover EFI from 5159 to 5160, and the February 2026 entries moved to 5168 and then to 5169.

That is the maintenance reality of this project. It is not a reimplementation, it is a thin layer that has to be re-pointed whenever the upstream boot manager changes, and the changelog is the record of that work. Two updates in a single week in February 2026 shows how quickly the script has to move.

The project also asserts that it is alive, in a changelog entry titled This project is not dead, and explains the context: the discovery of an Xbox controller UEFI driver opened the possibility of Clover working on other handhelds such as the ROG Ally. The pinned issues referenced in that entry are 130 and 126, which is where the ongoing discussion lives.

The last push to the repository was on 2026-09-08, and there are no GitHub releases, so the main branch is the only distribution channel and the changelog in the README is the only record of what changed.

Where this is the wrong approach for your device

The first wrong case is hardware the project has explicitly given up on. The Legion Go S is blocked because the XBOX 360 UEFI driver is not compatible with it, and the fix for the Legion Go hang is to delete the driver, which leaves you with a bootloader you cannot operate without a keyboard. A device in that state is worse off than a device with no Clover at all, and the author says so by asking for testers rather than shipping a fix.

The second wrong case is a device you cannot afford to experiment on. This script writes to the EFI partition of a handheld, it copies a third party UEFI driver into that partition, and it runs a repair step on every boot. None of that is dangerous in the way a bad rootkit is, but it is invasive, and the README's own history shows the checks being added one at a time as things went wrong on real devices, including the ESP space check and the Windows to SD card removal in May 2024.

The third is a device that does not need it. The stock SteamOS bootloader already boots Windows from the internal SSD alongside SteamOS, and the project notes that the Windows to SD card path was removed in May 2024 with the comment that you should not run Windows from an SD card anyway. If what you want is a working dual boot, a custom bootloader may be more than the job requires.

The alternative to weigh is the rEFInd route, which the script itself once used and now tries to remove automatically if present. rEFInd is a simpler bootloader without the theme and mouse customisation that the Clover Toolbox provides, so the choice is really between a fuller interface and a smaller footprint on the EFI partition.

Editorial conclusion

Adopt this script if you have a Steam Deck or a Legion Go and you want Clover rather than the stock bootloader to pick between SteamOS or Bazzite and Windows, and understand that you are running a script that rewrites your EFI partition. Stay away if you are on the Legion Go S, because the README blocks that model outright, or if you need a project with a stated licence, since none is identified in the repository. Before you run it, read the changelog entries for the Clover release you will end up with, because the script tracks specific upstream builds, and note that the last push was on 2026-09-08 with no GitHub releases published.

Frequently asked questions

What does the SteamDeck-Clover-dualboot script install?

It installs Clover, a graphical boot manager and boot loader maintained in its own upstream project, onto Steam Deck and Lenovo Legion Go handhelds running SteamOS. The repository also ships a Clover Toolbox shell script for configuration and a custom systemd script that checks the dual boot on startup and repairs it.

Does Clover work on the Lenovo Legion Go S?

Not currently. The changelog entry dated Feb 19 2026 states that the Legion Go S is blocked because the XBOX 360 UEFI driver is not compatible with it, and invites people to test and poke around. The repository title still lists the Legion Go S with a strikethrough.

How do you use the controller in the Clover boot menu?

An XBOX 360 Controller UEFI driver by SkorionOS and chenx-dust lets the built-in controller work in Clover. The DPAD acts as arrow keys, A is ENTER and B is ESC, the left thumbstick controls the mouse pointer if the DPAD does not work, and the right and left triggers stand in for left and right mouse clicks.

What happens if the controller driver hangs the boot menu?

The driver keeps polling the controller, which makes Clover look stuck on Legion Go devices. The documented fix is to delete the driver from the EFI partition with sudo rm /esp/efi/clover/drivers/uefi/UsbXbox360Dxe.efi, though that leaves the bootloader without controller support.

Official sources

  1. Issues
  2. Project website
  3. README
  4. ryanrudolfoba/SteamDeck-Clover-dualboot on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ryanrudolfoba-steamdeck-clover-dualboot.svg)](https://hysenlabs.com/projects/ryanrudolfoba-steamdeck-clover-dualboot)

Was this useful?