Configuration Guide¶
Customize TrueLedger to fit your needs.
App Settings¶
All settings are accessible from the Settings screen (gear icon in the app bar).
Theme Configuration¶
Location: Settings → Theme
Choose your preferred visual theme:
- System Default: Follows your device's theme setting
- Light Mode: Always use light theme
- Dark Mode: Always use dark theme
// Programmatically set theme
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString('theme_mode', 'dark'); // 'light', 'dark', or 'system'
Currency Settings¶
Location: Settings → Currency
Select your currency symbol from the dropdown:
- USD ($)
- EUR (€)
- GBP (£)
- INR (₹)
- JPY (¥)
- And many more...
// Programmatically set currency
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString('currency', '\$');
Privacy Mode¶
Location: Dashboard Header (Eye Icon)
Toggle the global privacy mask to hide sensitive financial numbers in public.
- Enabled: All monetary values are masked (e.g.,
****) - Disabled: Values are shown normally
- Persistence: Setting is remembered across app restarts
- Policy: For full details, see the Privacy Policy.
Security Settings¶
PIN Lock¶
Location: Settings → Security → PIN Lock
- Toggle Enable PIN Lock
- Enter a 4-digit PIN
- Confirm the PIN
The app will now require the PIN on every launch.
// Check if PIN is enabled
SharedPreferences prefs = await SharedPreferences.getInstance();
bool pinEnabled = prefs.getBool('pin_enabled') ?? false;
Account Recovery¶
Location: Settings → Security → View Recovery Key
Never lose access to your data. When setting a PIN, TrueLedger generates a unique 14-character Recovery Key (e.g., ABCD-1234-WX99).
- Setup: You must save this key when creating a PIN.
- Usage: If you forget your PIN, tap "Forgot PIN?" on the lock screen and enter your key to reset security without data loss.
- View Key: Authenticated users can view their key in Settings to save it again.
Biometric Authentication¶
Location: Settings → Security → Biometric Lock
Enable fingerprint or face recognition (if supported by your device):
- Toggle Enable Biometric Lock
- Authenticate with your biometric
Note
Biometric authentication requires PIN lock to be enabled as a fallback.
Data Encryption¶
Mobile Platforms (Android/iOS): - Data is automatically encrypted using SQLCipher with AES-256 - Encryption key is stored in platform secure storage (Keychain/Keyring)
Desktop Platforms (Linux/macOS/Windows): - Data is stored unencrypted in SQLite - Relies on file system permissions for security
Notification Settings¶
Location: Settings → Notifications
Configure reminders and alerts:
- Budget Alerts: Get notified when approaching budget limits
- Bill Reminders: Reminders for upcoming bills and subscriptions
- Daily Summary: Daily financial summary notification
Data Management¶
Export Data¶
Location: Settings → Data Management → Export Data
Export all your financial data to a JSON file:
- Tap Export Data
- Choose save location
- File is saved as
trueledger_backup_YYYY-MM-DD.json
Export Format:
{
"version": "1.0.0",
"exported_at": "2026-01-24T17:00:00Z",
"income_sources": [...],
"fixed_expenses": [...],
"variable_expenses": [...],
"budgets": [...],
"saving_goals": [...]
}
Import Data¶
Location: Settings → Data Management → Import Data
Restore data from a backup file:
- Tap Import Data
- Select your backup JSON file
- Confirm the import
Warning
Importing will replace all existing data. Export current data first!
Clear All Data¶
Location: Settings → Data Management → Clear All Data
Permanently delete all financial data:
- Tap Clear All Data
- Confirm the action
Irreversible
This action cannot be undone. Export your data before clearing!
Advanced Configuration¶
Database Location¶
Default Paths:
- Android:
/data/data/com.satyakommula.TrueLedger.app/databases/trueledger.db - iOS:
~/Library/Application Support/trueledger.db - Linux:
~/.local/share/trueledger/trueledger.db - macOS:
~/Library/Application Support/trueledger/trueledger.db - Windows:
%APPDATA%\trueledger\trueledger.db - Web: IndexedDB (browser storage)
Shared Preferences¶
Location: Platform-specific
- Android:
/data/data/com.satyakommula.TrueLedger.app/shared_prefs/ - iOS:
~/Library/Preferences/ - Desktop: Platform-specific preferences directory
Stored Settings:
{
"intro_seen": true,
"theme_mode": "dark",
"currency": "$",
"pin_enabled": false,
"biometric_enabled": false,
"notifications_enabled": true
}
Environment Variables¶
For development and testing:
# Enable debug logging
export TRUELEDGER_DEBUG=true
# Use custom database path
export TRUELEDGER_DB_PATH=/path/to/custom/db
# Disable encryption (testing only)
export TRUELEDGER_DISABLE_ENCRYPTION=true
Performance Tuning¶
Database Optimization¶
The app automatically optimizes database performance:
- Indexes: Created on frequently queried columns
- Batch Operations: Bulk inserts use transactions
- Query Caching: Common queries are cached
UI Performance¶
- Lazy Loading: Large lists use
ListView.builder - Const Widgets: Static widgets use
constconstructors - Provider Granularity: Minimized rebuilds with scoped providers
Troubleshooting¶
Reset to Defaults¶
To reset all settings to default values:
- Go to Settings → Advanced
- Tap Reset to Defaults
- Confirm the action
Or manually:
Clear Cache¶
If experiencing performance issues:
- Go to Settings → Advanced
- Tap Clear Cache
Rebuild Database¶
If database corruption is suspected:
- Export your data first!
- Go to Settings → Advanced → Rebuild Database
- Import your data back
Next Steps¶
- Features Overview - Explore all features
- Architecture - Understand the codebase
- Development Guide - Contribute to TrueLedger