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:

settings_overlay example

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

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.