// reference

Tools & CLI

Every script and helper that ships with the project.

The visor command

Installed to /usr/local/bin by the installer — the host-side Swiss army knife:

CommandWhat it does
visor buildRuns make in the source checkout (extra args pass through).
visor installRuns install.sh (args pass through); with no source checkout it installs from the packaged files instead (--packaged forces this, --source-dir overrides it).
visor updateClones/pulls the latest source, rebuilds, reinstalls — never touches your boot.conf. Flags: --esp, --repo, --branch, --source-dir, --boot-entry, --sign, --force-config.
visor encrypt <kernel> [initrd]One-password encryption of kernel+initrd, installs to the ESP, generates the boot entry (with LUKS auto-detection) and offers to append it to boot.conf. See Encryption.
visor convert <video> [options]Convert any video to an animated Visor background. Without --vbg produces MJPEG MP4; with --vbg produces compact VBG (tiled-quantized delta + motion, 10–20× smaller, cheaper to decode). Common flags --scale WxH|H --quality 2–31 --out PATH --esp PATH --force; VBG-only --fps --keyint --mv-range/--no-motion --denoise --threshold --qshift --tile. Installs straight to \EFI\visor\backgrounds with --esp. The same encoders can produce a boot intro clip — point intro_media at the result. See visor convert --help and tools/vbg_encode.py --help.
visor signSigns the installed EFI binaries with sbctl (--no-drivers to skip drivers).
visor driversDetects the /boot filesystem and installs the matching EfiFs driver (--fs TYPE, --sign). Drivers come from our own EfiFs build with a read cache, SHA-256 pinned; set EFIFS_URL for the stock upstream release instead.
visor time-sync [options]Fix a menu clock that has drifted from real time. UEFI has no time sync, so a machine that never writes the RTC back free-runs. With no options it reports the gap between the hardware and system clocks and which direction it is wrong in; --publish writes \EFI\visor\time.sync for the menu clock to apply (needs clock_sync=1); --write-rtc writes the system clock to the hardware clock so it stops drifting; --install/--remove manage a self-contained systemd timer running every --interval hours (default 6) that also sets clock_sync=1. --utc for hardware clocks already set to UTC, --no-config to leave boot.conf alone. See Features → Clock time sync.
visor statusReports install state: binary, config, drivers, encrypted artifacts (validates VISORENC headers).
visor config validateSyntax-checks a boot.conf before you reboot into it.
visor studioFetch and run the official Visor Studio configurator locally (--update, --port PORT, --docker, --detach). See Visor Studio.
visor doctorChecks build/install dependencies — recognises packaged installs when no source checkout exists.
visor uninstall / visor cleanRemoves the ESP install + boot entry / removes build outputs.

Root scripts

ScriptPurpose
get.shThe curl | sh bootstrapper: installs distro build deps, clones to ~/.cache/visor-src, builds, and runs the installer (via bash, so it works even when exec bits were lost in transit).
install.shThe installer proper: ESP detection, file copies, boot entry, signing, drivers, CLI install. All flags in Install & Run.
MakefileDual-arch build — see Building.

tools/

ToolPurpose
visor_encrypt.pyCreates VISORENC v2 containers. Takes any number of INPUT OUTPUT pairs under one password prompt; --iterations N tunes PBKDF2. Pure-stdlib Python (its ChaCha20 is self-contained).
vbg_encode.py / visor convertEncodes a video as a Visor background. vbg_encode.py INPUT OUTPUT [--scale WxH|H] [--quality 2–31] [--threshold T] [--qshift 0–7] [--tile 4–64] [--keyint N] [--mv-range 0–127] [--denoise SPEC|none] [--fps F] — compact VBG (motion-compensated tiled delta) or MJPEG fallback. The visor convert wrapper auto-finds the tool (source tree, VISOR_VBG_TOOL, or /usr/share/visor/tools) and handles --esp install and ffmpeg fallback for MJPEG. Needs ffmpeg and (for VBG) python-numpy.
visor-snapshot-syncRun on the host (e.g. from a pacman/apt hook): scans snapper/Timeshift/plain btrfs snapshots and writes \EFI\visor\snapshots.conf with exact per-snapshot kernels, initrds, and cmdlines. Visor also reads \EFI\visor\snapshot.conf (singular) as a fallback.
bake_font.pyRenders a TTF into src/gui/font_jetbrains.c glyph bitmaps (Python + Pillow). Driven by make bakefont FONT=... FONT_PX=....
setup_gnuefi_aarch64.shOne-time cross-build of gnu-efi for the AArch64 target.