// 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:
| Command | What it does |
|---|---|
visor build | Runs make in the source checkout (extra args pass through). |
visor install | Runs install.sh (args pass through); with no source checkout it installs from the packaged files instead (--packaged forces this, --source-dir overrides it). |
visor update | Clones/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. See visor convert --help and tools/vbg_encode.py --help. |
visor sign | Signs the installed EFI binaries with sbctl (--no-drivers to skip drivers). |
visor drivers | Detects the /boot filesystem and installs the matching EfiFs driver (--fs TYPE, --sign). |
visor status | Reports install state: binary, config, drivers, encrypted artifacts (validates VISORENC headers). |
visor config validate | Syntax-checks a boot.conf before you reboot into it. |
visor studio | Fetch and run the official Visor Studio configurator locally (--update, --port PORT, --docker, --detach). See Visor Studio. |
visor doctor | Checks build/install dependencies — recognises packaged installs when no source checkout exists. |
visor uninstall / visor clean | Removes the ESP install + boot entry / removes build outputs. |
Root scripts
| Script | Purpose |
|---|---|
get.sh | The 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.sh | The installer proper: ESP detection, file copies, boot entry, signing, drivers, CLI install. All flags in Install & Run. |
Makefile | Dual-arch build — see Building. |
tools/
| Tool | Purpose |
|---|---|
visor_encrypt.py | Creates 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 convert | Encodes 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-sync | Run 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.py | Renders a TTF into src/gui/font_jetbrains.c glyph bitmaps (Python + Pillow). Driven by make bakefont FONT=... FONT_PX=.... |
setup_gnuefi_aarch64.sh | One-time cross-build of gnu-efi for the AArch64 target. |