-
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
- Command Reference - All commands including settings
- Privacy & Security - Privacy-related settings
- Performance Tips - Performance optimization
- Troubleshooting - 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