Configuration

July 17, 2026 · View on GitHub

Config File Location

LineSolv stores its configuration in a TOML file at:

PlatformPath
Linux~/.config/neostore/linesolv/config.toml
macOS~/Library/Application Support/neostore/linesolv/config.toml
Windows%APPDATA%/neostore/linesolv/config.toml

The config file is created automatically on first launch with default values.

Config File Format

The configuration file uses TOML format. A typical config.toml looks like:

# LineSolv Configuration

[app]
theme = "dark"
version = "0.17.0"

[notes]
last_active = "abc123-def456"
sort_by = "updated"

[behavior]
delete_without_confirm = "false"

[settings]
font_size = "16"
font_family = "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"
shortcut_overrides = "{}"
opacity = "0.95"
line_numbers_enabled = "true"
result_panel_enabled = "true"
line_wrap_enabled = "true"
autocomplete_enabled = "true"
animations_enabled = "true"
toast_enabled = "true"
ui_style = "default"
theme_manually_set = "false"

Sections

[app]

Controls application-level preferences.

KeyTypeDefaultDescription
themestring"dark"Active theme. Options: dark, light, neon, red, obsidian, plasma, blood, midnight, aurora, mono, frost, prism, lavender, sage, warm-light, blue-trust-dark, blue-trust-light, orange-energy-dark, orange-energy-light, green-growth-dark, green-growth-light, yellow-optimism-dark, yellow-optimism-light, purple-innovation-dark, purple-innovation-light, red-passion-dark, red-passion-light. Plugins may add more.
versionstringLast-run LineSolv version. Managed automatically.

[notes]

Controls notes panel behavior.

KeyTypeDefaultDescription
last_activestring""UUID of the last active note. Set automatically when switching notes.
sort_bystring"updated"Note sort order. Currently only "updated" is used (sorts by position then updated_at).

[behavior]

Controls interaction preferences.

KeyTypeDefaultDescription
delete_without_confirmstring"false"When "true", the delete confirmation dialog is suppressed and notes are deleted immediately.

[settings]

Controls display and input preferences.

KeyTypeDefaultDescription
font_sizestring"16"Calculator font size in pixels. Applied to the input area, gutter, and results column.
font_familystring"-apple-system, ..."CSS font-family stack for the calculator text.
shortcut_overridesstring"{}"JSON-encoded map of keyboard shortcut overrides. Example: "{\"toggleNotes\":\"Ctrl+Shift+B\"}".
opacitystring"0.95"Window opacity (30%–100%). "1.0" is fully opaque.
line_numbers_enabledstring"true"Show line numbers in the input area.
result_panel_enabledstring"true"Show the results column on the right side.
line_wrap_enabledstring"true"Enable word wrapping in the editor.
autocomplete_enabledstring"true"Enable variable/function autocomplete suggestions.
animations_enabledstring"true"Enable UI animations (transitions, toast slide-ins).
toast_enabledstring"true"Show toast notifications for actions and errors.
ui_stylestring"default"UI style. Options: default, glass, material, alivated, neon.
theme_manually_setstring"false"Whether the user manually selected a theme (vs. auto-selected by UI style).
noisestring"0.0"Background noise overlay intensity (0.0 = off, higher = more visible grain).
context_menu_notesstring"true"Show the context menu when right-clicking notes in the sidebar.
context_menu_foldersstring"true"Show the context menu when right-clicking folders in the sidebar.
drag_and_dropstring"true"Enable drag and drop for reordering notes and folders in the sidebar.
confirm_dialogstring"true"Show confirmation dialogs for destructive actions (delete, overwrite, etc.).

Data Directory

All persistent data (database, config, plugin state) is stored in:

PlatformPath
Linux~/.config/neostore/linesolv/
macOS~/Library/Application Support/neostore/linesolv/
Windows%APPDATA%/neostore/linesolv/

Contents:

neostore/linesolv/
├── config.toml          # Configuration file
├── linesolv.db          # SQLite database (notes + currency cache)
└── plugins/             # Installed plugins (one subdirectory each)
    ├── finance/
    │   └── plugin.json
    └── statistics/
        └── plugin.json

Database

LineSolv uses SQLite for persistence. The database file is linesolv.db in the data directory.

notes Table

ColumnTypeDescription
idTEXT (UUID)Primary key
nameTEXTNote display name
contentTEXTNote content (one calculation per line)
created_atINTEGERUnix timestamp in milliseconds
updated_atINTEGERUnix timestamp in milliseconds
positionINTEGERSort order index (0-based)

Index: idx_notes_sort on (position, updated_at).

currency_cache Table

ColumnTypeDescription
ratesTEXTJSON-encoded map[string]float64 of currency rates
updated_atINTEGERUnix timestamp in milliseconds of last fetch

Currency rates are fetched from a live API and cached locally. The cache is updated when rates are older than a threshold.

Plugin Directory

Installed plugins live under the plugins/ subdirectory of the data directory. Each plugin is a subdirectory containing a plugin.json manifest.

PlatformPath
Linux~/.config/neostore/linesolv/plugins/
macOS~/Library/Application Support/neostore/linesolv/plugins/
Windows%APPDATA%/neostore/linesolv/plugins/

Currency Cache

Currency exchange rates are cached in the currency_cache SQLite table. The cache stores a JSON map of rates (e.g., {"USD": 1, "EUR": 0.92, "GBP": 0.79, ...}) along with a timestamp of the last update.

The cache is checked before making an API request. If the cached rates are fresh enough, the cached data is used. On cache miss or expiry, fresh rates are fetched and saved.

Resetting Configuration

To reset LineSolv to defaults:

  1. Quit LineSolv
  2. Delete (or rename) the config file:
rm ~/.config/neostore/linesolv/config.toml
  1. Optionally, delete the entire data directory to also reset notes and cached data:
rm -rf ~/.config/neostore/linesolv
  1. Launch LineSolv — it will recreate the config with defaults and create a fresh database

Environment Variables

LineSolv does not currently use environment variables for configuration. All settings are managed through the config.toml file and the in-app Settings dialog.