{% extends "base.html" %} {% block title %}Settings — {{ appearance.title }}{% endblock %} {% block extra_style %} {% endblock %} {% block content %}

Settings

Instances

{% if instance_count == 0 %}No instances configured — add some below. {% elif instance_count == 1 %}1 instance {% else %}{{ instance_count }} instances{% endif %}
Privacy-first selection

Excluded if any of:
Analytics tracking detected
HTTP, TLS, or CSP grade is F

Then ranked by:
HTTP security grade (A+ best)
TLS grade
CSP / integrity grade
Operator has contact info
DNSSEC enabled
Uptime
Response speed (tiebreaker)

Replaces your current instance list.
{{ prefs.autopick_count }} instances

Adding an instance is an act of trust — the operator will see your queries as a Tor exit IP.

Routing

Map

{% set _mtp = prefs.get('map_tile_provider', 'openstreetmap') %}

Standard Leaflet tile URL template. Use {z}, {x}, {y} for zoom/coordinates and {s} for subdomains (a/b/c). Example: https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png

{% set _rp = prefs.get('route_provider', 'osrm_public') %}

Base URL of any OSRM-compatible API. Scrambler appends /route/v1/{profile}/{coords} automatically. Geocoding (Nominatim) is separate and unaffected.

Route requests go through your routing setting above (Tor / direct). The public OSRM instance is run by the OSRM project and has no usage limits for reasonable traffic.

AI Summary

Optional. When configured, a "✦ Ask AI" button appears on results. Your query and top results are sent to the provider on demand — never automatically.

Saves the current AI settings (provider, model, routing, prompt, avatars) as a named preset. Your API key is never included.

Appearance

Saves the entire appearance section — colors, font, background, title, favicon.

{{ appearance.favicon }}

Enter an emoji (🔍 🛡️ 🌐) or a full URL to an image file.

PNG, JPG, GIF, WebP, MP4, WebM — max 200 MB. Video plays muted on loop. Leave blank for no background.

Trail effect

PNG/GIF/SVG up to 2 MB. Keep cursors small (32×32 or 64×64) for best browser support. Trail images are shown at 24px.

Typing

On search

On click

Effects volume — {{ (appearance.sound_volume * 100) | int }}%
Loop repeats forever; play once stops at the end.

MySpace style background audio. Supports MP3, OGG, WAV, FLAC, M4A, OPUS. Leave blank for silence.

Leave blank for the system default. Type any installed font or a Google Fonts name (requires import URL below).

{% if appearance.font_face_css %} ✓ Font is self-hosted locally — no external requests. {% else %} Paste a Google Fonts URL and click "Download & self-host" to serve the font locally with no external requests. Or leave blank to use the bundled Inter. {% endif %}

Colorways swap the palette only — title, font, and background are left as-is. Use the saved themes above to apply a full look.

{% set _sr = prefs.get('streaming_results', 'off') %} {% set _li = appearance.get('loading_indicator', 'bar') %}

Timed mode fills the bar linearly over the configured request timeout, so it roughly reflects actual wait time.

One line per quip. They cycle while search results load. Leave blank to use the built-in defaults.

{% set _ct_style = appearance.get('christmas_tree_style', 'dots') %}

Loading

Success

Fail

Image, GIF, or video shown while results load. Fades out when done. Leave blank to use your theme color.

{% set color_labels = [ ("--bg", "Background"), ("--surface", "Surface"), ("--border", "Border"), ("--text", "Text"), ("--muted", "Muted text"), ("--title", "Title / brand"), ("--accent", "Accent"), ("--accent-dim", "Accent (dim)"), ("--visited", "Visited links"), ("--url", "URL green"), ("--error", "Error red"), ("--engine", "Engine badge bg"), ("--engine-text", "Engine badge text"), ] %} {% for var, label in color_labels %}
{{ label }}
{% endfor %}

Saves engines, priority sources, ranking and scoring settings as a named preset.

One engine per line. When engine ranking is on, order matters — engines listed first score higher. Add [category] after an engine name to use it only for that tab — e.g. youtube [videos], bandcamp [music], openstreetmap [map]. Without a rider, common engines (bing, google, duckduckgo, brave, qwant) are automatically remapped to their category variants for news; for images/videos/music/files/map tabs, only engines already native to that category are used — everything else is dropped so SearXNG falls back to whatever specialist engines your instance has enabled.

Results from these engines are always hidden. One engine name per line. Use exact names as shown in the tree (e.g. lemmy comments, arxiv).

System

Default is 7777. Changes take effect after restarting Scrambler.

{% if is_linux or is_windows or is_mac %}
{% if is_windows %}

Adds a shortcut to your Start Menu — no terminal needed. The name comes from your current theme, so reinstall after switching themes to update it.

{% elif is_mac %}

Adds Scrambler.app to ~/Applications so you can launch it from Spotlight or Finder — no terminal needed. The name comes from your current theme, so reinstall after switching themes to update it.

{% else %}

Adds an icon to your app launcher — no terminal needed. The icon and name come from your current theme, so reinstall after switching themes to update it.

{% endif %}
{% if is_windows %}

Adds Scrambler to Windows startup via the registry so it starts automatically when you log in.

{% elif is_mac %}

Registers a launchd user agent so Scrambler starts automatically when you log in.

{% else %}

Registers a systemd user service so Scrambler starts automatically when you log in.

{% endif %} {% endif %}

Kills and restarts the Scrambler process. The page reconnects automatically when it's back — useful after changing the port.

Backup & Restore

API keys are always stripped from exports. Importing merges data — existing items are not deleted.

Auto-detects themes, profiles, settings, or full backup. Page reloads after a successful import.

{% endblock %}