Docs · Reference
File layout
Where every vinOS artifact lives on a booted install — bins, configs, state, cache, docs.
Everything vinOS ships or writes to. Nothing here is proprietary — you
can ls, cat, or rg any path and see the source of truth.
Binaries
/usr/local/bin/vinos-* ~90 shipped scripts (bash + python)
/usr/local/libexec/vinos/* helpers not meant to be run directly
/usr/bin/ upstream Arch binaries (ollama, docker, etc.)
Configs
/etc/vinos/ system defaults, read on first boot
routines/*.toml the 5 shipped routines (all disabled)
config/ one-shot defaults (default-theme.txt, etc.)
/etc/xdg/ shipped app defaults (waybar, walker, hyprland)
waybar/config.jsonc
walker/config.toml
hypr/hyprland.conf sourced by the user config
~/.config/ user-scoped overrides — copy from /etc/xdg/
vinos/
ai.toml route settings for vinos-ai (see /docs/agents/the-80-20-router/)
active-theme current theme name, one line
fonts.toml font choices
wallpapers.toml per-monitor overrides
welcome-preseed.toml first-run preseed (optional)
hooks/ your custom hooks — first-run.d/, etc.
secrets/anthropic-key mode 0600, one line, your API key
hypr/
hyprland.conf your hyprland config
bindings.d/ drop-in extra keybindings
autostart.d/ drop-in extra exec-once entries
waybar/config.jsonc your waybar layout
waybar/style.css your waybar CSS
walker/config.toml your walker settings
mako/config your mako notification style
foot/foot.ini your foot terminal settings
Routines
~/.vinos/ everything routine-related, user-scoped
routines/ user-authored + project-loaded routines
*.toml user-scoped (from `vinos-routine edit`)
<project>/*.toml project-scoped (from `vinos-routine load .`)
state/ all output + ledger
<name>/ per-routine output dir
YYYY-MM-DD-HHMM.md one file per run
last-run.json metadata for waybar module
ledger.db SQLite; every run's cost, tokens, exit
Branding + themes
/usr/share/vinos/
VERSION one line: "2.0.5"
wallpaper.png symlink → active theme's wallpaper
logo/
vinos.svg vector mark
png/vinos-{16,32,64,128,256,512,1024}.png
themes/<name>/ one dir per shipped theme
theme.conf colors + metadata
wallpaper.png the branded 4K jpeg
preview.png 600×338 picker thumbnail
unlock.png lockscreen background
colors.toml palette (dumped for tools that want TOML)
keyboard.rgb single hex for laptop keyboard RGB
neovim.lua
vscode.json
Docs (on-disk)
/usr/share/doc/vinos/ shipped copies of the specs
vinos-routine-spec.md
vinos-routines-yaml-spec.md
ARCHITECTURE.md
If the on-disk copy is stale, the canonical version lives in the repo
at docs/v2/.
Logs + state
~/.vinos/state/ vinOS runtime state (not routine outputs)
last-doctor.json last vinos-doctor result
focus/current active vinos-focus session
hardware-hints.json cached vinos-hw-hints output
/var/log/ journald handles most logs; systemd-journal --user for user units
Ignored / gitignore recommendations
If you version control ~/.config or ~/.vinos, ignore:
~/.vinos/secrets/**
~/.vinos/routines/state/**
~/.vinos/state/**
~/.cache/**
The secrets/ exclusion is non-negotiable. The rest is a matter of
size and privacy.