// getting started

Install & Run

From zero to the Visor menu, four ways.

Requirements

DistroDependencies command
Archsudo pacman -S gnu-efi base-devel
Debian / Ubuntusudo apt install gnu-efi build-essential
Fedorasudo dnf install gnu-efi gnu-efi-devel gcc make
openSUSEsudo zypper in gnu-efi-devel gcc make
Voidsudo xbps-install gnu-efi gcc make

Way 1 — one-line install

curl -fsSL https://raw.githubusercontent.com/IO-ZetZor/Visor-BootManager/main/get.sh | sh

get.sh installs the build dependencies for your package manager (pacman, apt, dnf, zypper, xbps, eopkg), clones the source into ~/.cache/visor-src, builds it, and runs the installer with sudo. Re-running it later pulls and rebuilds the latest version.

Way 2 — AUR (Arch Linux)

Visor is available on the Arch User Repository. Install it with any AUR helper:

yay -S visor

or

paru -S visor

The AUR package pulls the latest source, builds it, and runs the installer automatically. After installation, see First boot below.

Way 3 — clone and install

git clone https://github.com/IO-ZetZor/Visor-BootManager
cd Visor-BootManager
make
sudo ./install.sh

install.sh auto-detects your ESP, copies the binary, icons, backgrounds, and a starter boot.conf to \EFI\visor\, offers to register a UEFI boot entry, sign for Secure Boot, and install a filesystem driver, and installs the host-side visor command. All prompts have flags for unattended use:

FlagEffect
--esp PATHUse this ESP mount point instead of auto-detecting.
--no-buildInstall the already-built visor_x64.efi.
--boot-entry / --no-boot-entryRegister a Visor UEFI boot entry via efibootmgr / never ask.
--sign / --no-signSign Visor with sbctl after installing / never ask.
--fs-drivers / --no-fs-driversAuto-detect the /boot filesystem and install the matching EfiFs driver / never ask.
--fs-driver PATHInstall a local EFI filesystem driver into \EFI\visor\drivers\.
--no-cli / --cli-dir PATHSkip installing the visor command / install it elsewhere (default /usr/local/bin).
--force-configOverwrite an existing boot.conf with the bundled example.

Way 4 — fully manual

sudo mount /dev/sdXn /mnt/esp

sudo mkdir -p /mnt/esp/EFI/visor/icons /mnt/esp/EFI/visor/backgrounds
sudo cp visor_x64.efi              /mnt/esp/EFI/visor/
sudo cp assets/icons/*.png         /mnt/esp/EFI/visor/icons/
sudo cp assets/backgrounds/*.png   /mnt/esp/EFI/visor/backgrounds/
sudo cp boot.conf.example          /mnt/esp/EFI/visor/boot.conf

sudo efibootmgr --create --disk /dev/sdX --part n \
                --label "Visor" --loader '\EFI\visor\visor_x64.efi'

What lands on the ESP

\EFI\visor\
├── visor_x64.efi          the boot manager
├── boot.conf              your configuration (optional — auto-detect without it)
├── boot.log               rolling log of the last 3 boots
├── icons\                 entry icons (PNG)
├── backgrounds\           wallpapers (PNG)
├── themes\                theme .conf files (optional)
├── drivers\               EfiFs filesystem drivers (optional)
└── snapshots.conf         snapshot manifest (optional, generated, also reads snapshot.conf)

First boot

  1. Reboot; pick Visor in the firmware boot menu (or let the new boot entry take over).
  2. With no boot.conf, Visor auto-detects Windows, UKIs, and kernels — including a working cmdline (see auto-detection).
  3. Otherwise, edit <ESP>/EFI/visor/boot.conf and point entries at your kernels — see Configuration.

Updating

visor update

Clones (first run) or pulls the latest source, rebuilds, and reinstalls without touching your boot.conf. Useful flags: --esp PATH, --sign, --boot-entry, --force-config.

Uninstalling

visor uninstall            # or: visor uninstall --esp /boot/efi

Removes \EFI\visor\ and the UEFI boot entry. Your other boot loaders are untouched — Visor never modifies them.