Configuration - Config File, Themes & Startup Tabs
lazyaz stores its configuration in ~/.config/lazyaz/ (or $XDG_CONFIG_HOME/lazyaz/ if set).
Config file
Section titled “Config file”The main config file is config.json:
{ "theme": "Default Dark", "download_dir": "~/Downloads", "nerdfonts": true, "tabs": [ { "kind": "blob", "subscription": "<subscription-id>" }, { "kind": "servicebus", "subscription": "<subscription-id>" }, { "kind": "keyvault" }, { "kind": "dashboard" } ]}When tabs are configured, lazyaz opens directly into those tabs on launch
instead of showing the subscription picker. Recognised kind values are
blob, servicebus, keyvault, and dashboard.
nerdfonts
Section titled “nerdfonts”Controls whether tab badges use Nerd Font glyphs (default) or terminal-safe
Unicode fallbacks. Set "nerdfonts": false if your terminal isn’t using a
Nerd Font — there’s no reliable runtime detection, so the choice is
config-driven.
Themes
Section titled “Themes”Theme files live in ~/.config/lazyaz/themes/ as Base16 YAML schemes. Stock
themes (Tokyo Night, Rose Pine, Bamboo, and more — 300+ in total) are
written to this directory on every launch to pick up format changes, so
edits to stock theme files are overwritten. To customize a stock theme,
copy it to a new filename first. Any .yaml file in the directory whose
name doesn’t collide with a stock theme is picked up untouched.
Switch themes at runtime with T.
Keybindings
Section titled “Keybindings”Keybinding files live in ~/.config/lazyaz/keymaps/ as JSON files. The
default.json keymap uses vim-style navigation and is written on first run.
To switch to a different keymap, set keymap in config.json:
{ "keymap": "standard" }To override individual bindings, edit the file or create a new one. Each key in the JSON maps an action name to an array of key strings:
{ "name": "custom", "bindings": { "quit": ["ctrl+c"], "next_focus": ["tab"], "open_focused": ["enter", "l"] }}You can also inline a bindings object directly in config.json to override
specific actions of the active keymap without keeping a separate file:
{ "keymap": "default", "bindings": { "subscription_picker": ["s"] }}Only the bindings you specify are overridden — everything else keeps its default. See Keymaps for the full action reference.