Skip to content

Preferences

Tachikoma uses Preferences.jl to persist user settings across sessions. Settings are stored in LocalPreferences.toml in your project directory.

What's Persisted

SettingKeyType
Active themethemeString
Animations enabledanimations_enabledBool
Render backendrender_backendString ("braille", "block", "sixel")
Decay amountdecayFloat64
Decay jitterdecay_jitterFloat64
Decay rot probabilitydecay_rot_probFloat64
Decay noise scaledecay_noise_scaleFloat64
Background brightnessbg_brightnessFloat64
Background saturationbg_saturationFloat64
Background speedbg_speedFloat64
Cell pixel widthcell_pixel_wInt
Cell pixel heightcell_pixel_hInt
Pixel scale widthsixel_scale_wFloat64
Pixel scale heightsixel_scale_hFloat64

Settings Overlay

Press Ctrl+S during any app to open the interactive settings overlay:

Navigate with arrow keys, adjust with left/right, save with Enter.

LocalPreferences.toml

Settings are saved to LocalPreferences.toml in the active project directory. Example:

toml
[Tachikoma]
theme = "kaneda"
animations_enabled = true
render_backend = "braille"
decay = 0.0
decay_jitter = 0.0
decay_rot_prob = 0.0
decay_noise_scale = 0.0
bg_brightness = 0.3
bg_saturation = 0.5
bg_speed = 0.5
settings_overlay example

Manual Overrides

You can edit LocalPreferences.toml directly. Changes take effect next time Tachikoma loads. This is useful for:

  • Setting pixel dimensions when auto-detection fails

  • Configuring defaults for a specific project

  • Sharing settings via version control

Pixel Size Overrides

If pixel graphics are mis-sized, override cell pixel dimensions:

toml
[Tachikoma]
cell_pixel_w = 10
cell_pixel_h = 20
sixel_scale_w = 1.0
sixel_scale_h = 1.0

Programmatic API

Theme

julia
theme()                   # get current Theme
set_theme!(:kaneda)       # set and save

Animations

julia
animations_enabled()      # check status
toggle_animations!()      # toggle and save

Render Backend

julia
render_backend()                      # get current
set_render_backend!(sixel_backend)    # set and save
cycle_render_backend!(1)              # cycle forward and save

Decay

julia
d = decay_params()        # get mutable DecayParams
d.decay = 0.5             # modify
# Saved when settings overlay is closed or manually via save_decay_params!()

Background

julia
cfg = bg_config()          # get mutable BackgroundConfig
cfg.brightness = 0.4       # modify
# Saved when settings overlay is closed or manually via save_bg_config!()

Per-App Layout Persistence

ResizableLayout state is automatically saved and restored per model type. When your app exits, the current pane sizes are saved. Next time the app runs with the same model type, the layout is restored.

This happens automatically — no additional code needed beyond using ResizableLayout.