Skip to content

Configuration

Soar stores configuration at ~/.config/soar/config.toml. If the file doesn't exist, sensible defaults are used.

Quick Start

Run soar defconfig to create a default configuration file.

Configuration Reference

The options below are grouped by category. Every value reflects soar's defaults.

Paths

Control where soar stores its data.

Configuration OptionTypeDefaultDescription
cache_pathString~/.local/share/soar/cacheDirectory for cached package files
db_pathString~/.local/share/soar/dbPath to package database
bin_pathString~/.local/share/soar/binDirectory for binary symlinks
repositories_pathString~/.local/share/soar/reposLocal repository clones
portable_dirsString~/.local/share/soar/portable-dirsBase path for portable app data (AppImage/FlatImage/RunImage/Wrappe only)

Performance

Configuration OptionTypeDefaultDescription
parallelBooleantrueEnable parallel downloads
parallel_limitInteger4Max parallel downloads (1-16)
ghcr_concurrencyInteger8Max GHCR concurrent requests (1-32)
search_limitInteger20Max search results (5-100)
cross_repo_updatesBooleanfalseAllow cross-repo updates (not implemented)

Package Installation

Configuration OptionTypeDefaultDescription
install_patternsArray["!*.log", "!SBUILD", "!*.json", "!*.version"]Files to exclude during installation

Security

Configuration OptionTypeDefaultDescription
signature_verificationBooleannull (auto)Enable package signature verification

Desktop Integration

Configuration OptionTypeDefaultDescription
desktop_integrationBooleannull (repo-specific)Enable desktop menu entries

Repository Sync

Configuration OptionTypeDefaultDescription
sync_intervalString"3h"How often to sync repositories

Special sync_interval values: "always", "never", "auto" (3h), or a duration like "30m", "6h", "1d".

Display

Configuration OptionTypeDefaultDescription
display.progress_styleString"modern"Progress bar style: classic, modern, minimal
display.iconsBooleantrueShow Unicode icons
display.spinnersBooleantrueShow animated spinners

Key Options

Path Settings

Control where soar stores data. Add bin_path to your PATH:

sh
export PATH="$HOME/.local/share/soar/bin:$PATH"

Performance

  • parallel / parallel_limit: Increase for faster downloads on stable connections, decrease for slow or unstable connections.
  • ghcr_concurrency: Adjust if experiencing GHCR rate limiting.

Install Patterns

Glob patterns for files to exclude during installation. Patterns starting with ! are exclusions:

toml
install_patterns = [
    "!*.log",      # Exclude log files
    "!SBUILD",     # Exclude build scripts
    "!*.debug",    # Exclude debug symbols
]

Security

signature_verification: Set to true for maximum security or false for trusted local repos. This setting can be overridden per-repository.

Desktop Integration

desktop_integration: Enable this for GUI applications to appear in application menus. The setting can be configured globally or per-repository.

Display Settings

toml
[display]
progress_style = "modern"  # classic, modern, minimal
icons = true
spinners = true

Repositories

TIP

You can manage repositories from the command line with soar repo add/update/remove/list. See Repository Management.

Repositories are defined as arrays of tables in your configuration:

toml
[[repositories]]
name = "soarpkgs"
url = "https://github.com/pkgforge/soarpkgs/releases/latest/download/metadata-x86_64-linux.sdb.zstd"
pubkey = "RWQ109gKujRqohsA7RERlXFfeJi23EcHN3Dz8TxyPAywa5mLw/fbcbU4"
desktop_integration = true
enabled = true
signature_verification = true
sync_interval = "3h"

Repository Fields

FieldTypeDefaultDescription
nameString(required)Unique repository name. Note: "local" is reserved
urlString(required)URL to repository metadata
pubkeyStringnullRepository's public key (inline string)
enabledBooleantrueEnable/disable this repository
desktop_integrationBooleantrueEnable desktop integration for packages
signature_verificationBooleanautoEnable signature verification (auto-enabled if pubkey exists)
sync_intervalString"3h"Sync interval: "always", "never", "auto", or duration

Default Repositories

Soar includes one default repository for Linux platforms (aarch64, x86_64):

  • soarpkgs: The unified package repository
    • URL: https://github.com/pkgforge/soarpkgs/releases/latest/download/metadata-{platform}.sdb.zstd
    • Signature verification enabled
    • Desktop integration enabled

Managing Configuration

sh
soar config
sh
soar config -e
sh
soar -c /path/to/config.toml [subcommand]

Environment Variables

VariableDescription
SOAR_CONFIGCustom config file path
SOAR_ROOTRoot directory override (affects all profiles)
SOAR_CACHECache directory override
SOAR_BINBinary directory override
SOAR_DBDatabase path override
SOAR_PACKAGESPackages directory override
SOAR_REPOSITORIESRepositories directory override
SOAR_PORTABLE_DIRSPortable directories path override
RUST_LOGDebug logging level (debug, info, trace)

INFO

Environment variables take precedence over configuration file settings and profile paths.

Common Issues

Invalid TOML Syntax

Check for unclosed brackets, missing quotes, or duplicate names. Use soar config to validate.

Command Not Found

Add bin_path to your PATH in ~/.bashrc or ~/.zshrc.

Repository Not Syncing

Run soar sync manually. Check network connectivity and repository URLs.

Signature Verification Failed

Verify the pubkey value is correct. Run soar sync to update repository data.

Garbled Output

Switch to classic display mode:

toml
[display]
progress_style = "classic"
icons = false

Released under the MIT License.