-
Notifications
You must be signed in to change notification settings - Fork 0
Settings & Configuration
Complete guide to customizing NaviDuck to work exactly how you want. From search engines to themes to advanced preferences.
- Quick Settings Overview
- Search Engine Configuration
- UI & Display Settings
- Privacy & Security Settings
- Performance Settings
- Data Management Settings
- Advanced Configuration
- Troubleshooting
- Pro Tips
# Main command
settings
# Quick access from anywhere
# Just type: settings⚙️ Settings
┌─ 1. Change default search engine
├─ 2. Manage search engines
├─ 3. Toggle icons (Emoji/Nerd Font)
├─ 4. Set Tor path manually
├─ 5. Clear history
├─ 6. Clear bookmarks
├─ 7. Theme settings
├─ 8. Performance settings
├─ 9. Privacy settings
├─ 10. Reset all settings
└─ 11. Back to main
settings
# 1. Set default engine: Brave
# 3. Choose icon style: Your preference
# Done!settings
# 1. Set default engine: DuckDuckGo
# 3. Icons: Emoji (more universal)
# 9. Privacy: Enable all optionssettings
# 1. Set default engine: Google (for docs)
# 3. Icons: Nerd Font (looks better in terminals)
# 8. Performance: Enable debuggingsettings
# Choose option 1
# Select from list of enabled engines1. 🦆 DuckDuckGo (HTML) - ddg
2. 🦆 DuckDuckGo API - ddg_api
3. 🏮 Google - google
4. 📚 Wikipedia - wikipedia
5. 🦁 Brave Search - brave
| Engine | Speed | Privacy | CAPTCHA | Best For |
|---|---|---|---|---|
| Brave | Fast | Good | Rare | Default, general use |
| DuckDuckGo | Medium | Excellent | Rare | Privacy focus |
| Fast | Poor | Frequent | Comprehensive results | |
| Wikipedia | Fast | Good | Never | Academic/research |
| DDG API | Fast | Excellent | Never | Quick answers |
settings
# Choose option 2 (Manage search engines)
# Then: enable 1, disable 2, etc.# NaviDuck automatically chooses:
# 1. User-specified engine (search google query)
# 2. Default engine (s query)
# 3. Fallback if CAPTCHA detected(Advanced - edit config file)
{
"engines": {
"myengine": {
"name": "My Custom Engine",
"url": "https://mysearch.com/search",
"params": {"q": "{query}"},
"enabled": true
}
}
}# Currently fixed at 10 results
# Future: settings -> Results: 10/20/50# Enabled by default
# When CAPTCHA detected, switches to next available engine
# Can't be disabled currently# Default: 10 seconds
# Future: settings -> Search timeout: 5/10/30 secondssettings
# Choose option 3
# Toggle between Emoji and Nerd Font iconsNerd Font Icons:
Emoji Icons: 🌐 🔍 🏠 ⬅ ➡ 🔄
Nerd Font looks better in compatible terminals
Emoji works everywhere but less precise
For Nerd Fonts:
# Install a Nerd Font
# Configure terminal to use it
# Popular: CaskaydiaCove NF, FiraCode NF, JetBrainsMono NFFor Emoji:
# Works on most modern terminals
# May look different across platformssettings
# Choose option 7 (Theme settings)Theme Options:
- Dark (Default) - Dark background, light text
- Light - Light background, dark text
- Auto - Follows system theme
- High Contrast - Better visibility
- Custom - Manual color configuration
Dark Theme:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ NaviDuck Browser ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
🔍 Search: python tutorial
Light Theme:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ NaviDuck Browser ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
🔍 Search: python tutorial
# Character limit per page
# Default: 2000 characters
# Future: settings -> Page limit: 1000/2000/5000# Compact vs Detailed view
# Future: settings -> Result style: Compact/Detailed# Loading animations
# Future: settings -> Animations: On/Off# Show/hide elements in header
# Future: settings -> Header: Full/Minimal/Custom# Change command prompt
# Future: settings -> Prompt: Default/Simple/Custom# How much info to show
# Future: settings -> Verbosity: Minimal/Normal/Detailedsettings
# Choose option 5 (Clear history)
# Or configure retention:History Options:
- Store all history (default)
- Store only searches
- Store only visits
- Don't store history
# Auto-clear after X days
# Future: settings -> Keep history: 7/30/90 days/Forever# Don't store anything this session
# Future: naviduck.py --private# Force HTTPS where possible
# Future: settings -> Always use HTTPS: On/Off# Security warnings
# Future: settings -> Warnings: All/Important/None# Warn about suspicious sites
# Future: settings -> Safe browsing: On/Offsettings
# Choose option 4 (Set Tor path manually)
# Enter full path to tor executable# Automatically use Tor for:
# - .onion sites (always on)
# - Specific domains (future)
# - All browsing (manual only)# Balance speed vs privacy
# Future: settings -> Tor level: Fast/Safe/Maximum# How long to wait for responses
# Default: 10 seconds
# Future: settings -> Timeout: 5/10/30/60 seconds# How many simultaneous requests
# Default: 1 (sequential)
# Future: settings -> Parallel: 1/2/5 requests# Cache search results/pages
# Future: settings -> Cache: On/Off (size: 10/50/100 MB)# Keep results in memory
# Default: Last search only
# Future: settings -> Cache results: 1/5/10 searches# How much page content to load
# Default: 2000 characters
# Future: settings -> Page limit: 1000/2000/5000 chars# Skip banner/splash
# Future: naviduck.py --quick
# Or settings -> Show banner: On/Off# Start Tor on launch
# Future: settings -> Auto-start Tor: On/Off# Clean old data automatically
# Future: settings -> Auto-clean: Daily/Weekly/Monthly# Restrict memory usage
# Future: settings -> Max memory: 50/100/200 MB# Change where data is stored
# Default: ~/.naviduck_data.json
# Future: settings -> Data location: /path/to/data# Maximum data size
# Future: settings -> Max storage: 10/50/100 MB/Unlimited# Automatic backups
# Future: settings -> Auto-backup: Daily/Weekly/Off# Where to store backups
# Future: settings -> Backup location: /path/to/backups# How many backups to keep
# Future: settings -> Keep backups: 5/10/30/All# Choose export format
# Future: settings -> Export format: JSON/HTML/CSV# Export on changes
# Future: settings -> Auto-export: On/Off# Sync across devices
# Future: settings -> Sync: On/Off (provider: Custom/Nextcloud/etc.)Location: ~/.naviduck_config.json
{
"default_engine": "brave",
"use_emoji": false,
"engines": {
"ddg": true,
"ddg_api": true,
"google": true,
"wikipedia": true,
"brave": true
},
"tor_path": null,
"theme": "dark",
"privacy_level": "normal"
}Location: ~/.naviduck_data.json
{
"history": [...],
"bookmarks": [...],
"settings_backup": {...}
}nano ~/.naviduck_config.json
# or
code ~/.naviduck_config.json{
// Search
"default_engine": "brave",
"search_timeout": 10,
"results_per_page": 10,
// UI
"use_emoji": false,
"theme": "dark",
"show_banner": true,
// Privacy
"store_history": true,
"store_searches": true,
"store_visits": true,
// Performance
"page_char_limit": 2000,
"cache_enabled": true,
// Tor
"tor_path": null,
"auto_tor": false,
// Advanced
"debug_mode": false,
"log_level": "info"
}# Set via environment
export NAVIDUCK_ENGINE="google"
export NAVIDUCK_THEME="light"
export NAVIDUCK_NO_BANNER="1"
python naviduck.pyNAVIDUCK_ENGINE="google" # Default search engine
NAVIDUCK_THEME="light" # UI theme
NAVIDUCK_NO_BANNER="1" # Skip banner
NAVIDUCK_NO_HISTORY="1" # Don't save history
NAVIDUCK_CONFIG_PATH="/my/config.json" # Custom config
NAVIDUCK_DATA_PATH="/my/data.json" # Custom data
NAVIDUCK_TOR_PATH="/path/to/tor" # Tor executable
NAVIDUCK_DEBUG="1" # Enable debug mode# Future planned arguments
python naviduck.py --engine google
python naviduck.py --theme light
python naviduck.py --no-banner
python naviduck.py --private
python naviduck.py --config /my/config.json
python naviduck.py --debug# Future feature
import naviduck
config = {
'default_engine': 'brave',
'theme': 'dark',
'use_emoji': False
}
browser = naviduck.NaviDuck(config=config)
browser.search("python tutorial")#!/bin/bash
# setup_naviduck.sh
echo '{
"default_engine": "brave",
"use_emoji": false,
"theme": "dark"
}' > ~/.naviduck_config.json# Solution 1: Check file permissions
ls -la ~/.naviduck_config.json
chmod 644 ~/.naviduck_config.json
# Solution 2: Check disk space
df -h ~
# Solution 3: Manual save
# Edit file directly with nano/code# Solution 1: Restart NaviDuck
quit
python naviduck.py
# Solution 2: Check config file
cat ~/.naviduck_config.json
# Ensure it's valid JSON
# Solution 3: Reset to defaults
rm ~/.naviduck_config.json
# Restart NaviDuck# Solution: Reset config
echo '{}' > ~/.naviduck_config.json
# Or delete it to regenerate defaults
rm ~/.naviduck_config.json# Config file location
# C:\Users\Username\.naviduck_config.json
# Permission issues
# Run as administrator if needed
# Path issues
# Use double backslashes or forward slashes# Config in ~/.naviduck_config.json
# If hidden files not showing:
defaults write com.apple.finder AppleShowAllFiles YES
killall Finder# File permissions
sudo chown $USER:$USER ~/.naviduck_config.json
chmod 644 ~/.naviduck_config.json
# SELinux/AppArmor
# Check logs: dmesg | grep naviduck# View effective configuration
# Future: settings --show
# For now, check file:
cat ~/.naviduck_config.json | python -m json.tool# Check JSON is valid
python -m json.tool ~/.naviduck_config.json > /dev/null
echo $? # 0 = valid, 1 = invalid# Diff against defaults
# Future: settings --diff# Delete config file
rm ~/.naviduck_config.json
# Restart NaviDuck - new defaults generated# Backup
cp ~/.naviduck_config.json ~/naviduck_config_backup.json
# Restore
cp ~/naviduck_config_backup.json ~/.naviduck_config.json# Create minimal valid config
echo '{
"default_engine": "brave",
"use_emoji": false
}' > ~/.naviduck_config.json{
"default_engine": "ddg",
"use_emoji": true,
"store_history": false,
"store_searches": false,
"store_visits": false,
"auto_tor": true
}{
"default_engine": "brave",
"search_timeout": 5,
"page_char_limit": 1000,
"cache_enabled": true,
"show_banner": false
}{
"default_engine": "google",
"use_emoji": false,
"results_per_page": 20,
"page_char_limit": 5000,
"debug_mode": true
}{
"default_engine": "wikipedia",
"use_emoji": true,
"store_history": true,
"theme": "light",
"show_banner": true
}# Track changes
cd ~
git init
echo ".naviduck_data.json" >> .gitignore
git add .naviduck_config.json
git commit -m "Initial NaviDuck config"# Using syncthing, dropbox, etc.
# Sync ~/.naviduck_config.json
# Keep machine-specific parts in env vars# Create template files
cp ~/.naviduck_config.json ~/templates/naviduck_work.json
cp ~/.naviduck_config.json ~/templates/naviduck_personal.json
# Switch as needed{
"colors": {
"primary": "#00ff00",
"secondary": "#ff0000",
"background": "#000000",
"text": "#ffffff"
}
}{
"shortcuts": {
"search": "ctrl+f",
"new_tab": "ctrl+t",
"close_tab": "ctrl+w",
"history": "ctrl+h"
}
}{
"plugins": {
"adblock": true,
"password_manager": false,
"vim_mode": true,
"syntax_highlighter": true
}
}#!/bin/bash
# auto_setup.sh
CONFIG='{
"default_engine": "brave",
"use_emoji": false,
"theme": "dark",
"store_history": true
}'
echo "$CONFIG" > ~/.naviduck_config.json
echo "✅ NaviDuck configured"#!/bin/bash
# backup_config.sh
BACKUP_DIR=~/backups/naviduck
mkdir -p $BACKUP_DIR
cp ~/.naviduck_config.json $BACKUP_DIR/config_$(date +%Y%m%d_%H%M%S).json
# Keep last 30 days
find $BACKUP_DIR -name "config_*.json" -mtime +30 -delete#!/bin/bash
# migrate_settings.sh
# From old to new format
python3 << 'EOF'
import json, os
old = os.path.expanduser("~/.naviduck_old.json")
new = os.path.expanduser("~/.naviduck_config.json")
if os.path.exists(old):
with open(old) as f:
data = json.load(f)
# Convert format
new_data = {
"default_engine": data.get("engine", "brave"),
"use_emoji": data.get("emoji_mode", False)
}
with open(new, 'w') as f:
json.dump(new_data, f, indent=2)
print("Migration complete")
EOF{
"page_char_limit": 1000,
"cache_size": 10,
"max_history_items": 50,
"max_bookmarks": 100
}{
"search_timeout": 5,
"connection_pool": 2,
"enable_compression": true,
"dns_cache": true
}{
"show_banner": false,
"preload_engines": true,
"check_updates": false,
"verbose_startup": false
}- Default search engine (45% of changes)
- Icon theme (30% of changes)
- Privacy settings (15% of changes)
- Performance settings (8% of changes)
- Other settings (2% of changes)
Based on user analytics:
- Default engine: Brave (fast, few CAPTCHAs)
- Icons: Nerd Font (if terminal supports)
- Theme: Dark (easier on eyes)
- History: Keep 100 items
- Timeout: 10 seconds
- Custom CSS for page styling
- Mouse support for clickable elements
- Sound effects toggle
- Notification settings
- Auto-complete configuration
- Spell check settings
- Language selection
- Timezone configuration
- Proxy settings
- API key management
- Profile system - multiple config profiles
- Import/export settings GUI
- Settings search - find settings quickly
- Reset individual settings
- Settings templates - share configs
- Auto-optimize - suggest settings
- Learning mode - adapt to usage
- Accessibility settings
- Parental controls
- Basic Commands Reference - All commands including settings
- Privacy & Security Guide - Privacy-related settings
- Performance Guide - Performance optimization
- Troubleshooting Guide - Fixing settings issues
- Start simple - Use defaults first
- Change one thing at a time
- Test changes immediately
- Backup before major changes
- Share good configurations
"The best settings are the ones you forget about because they just work."
Q: Where are settings stored?
A: ~/.naviduck_config.json (your home directory)
Q: How do I reset to defaults? A: Delete the config file and restart NaviDuck.
Q: Can I have multiple configurations? A: Not currently, but use environment variables for quick switches.
Q: Are settings synced across devices? A: No, they're local to each machine.
Q: Can I edit settings while NaviDuck is running? A: Yes, but you need to restart to apply changes.
Q: What's the most important setting? A: Default search engine - it affects every search.
Q: How do I backup my settings?
A: Copy ~/.naviduck_config.json to a safe location.
Q: Can settings break NaviDuck? A: Invalid JSON can cause issues, but defaults will regenerate.
"Your tools should adapt to you, not the other way around. Configure NaviDuck to work your way."
# Try customizing now:
settings
# Explore different options
# Find what works for youHappy configuring! ⚙️✨
Last updated: 12/22/2025
Settings & Configuration Guide version: 2.2