Settings Reference

Item-by-item reference: name, control, default, description — generated from the code and the official strings, so it stays in sync.

Settings#

Settings#

Station, location, links & data

The Settings page opens with eight category cards (each leading to its own page) plus six direct entries. Below, every setting is listed: name, control, default, meaning — defaults are read from the code, so regenerating keeps them honest.

SettingControlDefaultDescription
StationCategory card—Callsign · SSID · Symbol
BeaconingCategory card—GPS · Beaconing · Manual position
ConnectionCategory card—Server · Range filter
DisplayCategory card—Coords · Theme
DeviceCategory card—Sources · links · iGate
DataCategory card—Clear local data
AdvancedCategory card—Lab · Developer
UpdateCategory card—Check for updates
Activity leaderboardDirect entry—Steps ranking for today (only what this device received)
HonorsDirect entry—My badges and achievements
Translation settingsDirect entry—Provider, languages and auto-translate
Export ADIFDirect entry—Export chats as a log file
ThemeDirect entry—Custom colours, icons and text
Track historyDirect entry—Records your own speed and distance by day, saved on this device
Backup & restoreDirect entry—Pack settings and data into a JSON file
Sponsors & thanksDirect entry—The list and how to support (servers and map traffic depend on it)
AboutDirect entry—
Life guardDirect entry—Alarm on abnormal heart rate, call emergency services, ask nearby stations

Station#

Station#

Callsign · SSID · Symbol

Identity is the root of every frame: the callsign must match your licence, and the SSID states the station type (-9 mobile, -7 handheld are common).

SettingControlDefaultDescription
Altitude (m, empty = use the fix)Text input—When set, this manually entered altitude is used (more reliable: on phones without a barometer, indoors, or with network-only positioning the GPS altitude is often unusable). Left empty, the altitude from the fix is used. It is encoded as six zero-padded feet in the /A= extension. This is station altitude - a different quantity from the PHG antenna height below (above average local terrain).
Power (W)Text input—Power, antenna height and gain share one PHG data extension: filling any of them encodes and sends all of them (the spec defines it as a single fixed 7-byte field). Power takes the largest step not exceeding the real value: 25 W reports 25, and so does 30 W, because over-reporting inflates your coverage circle. Antenna height is measured above average local terrain - a different quantity from the /A= altitude sent automatically above.
Antenna height (ft)Text input—Power, antenna height and gain share one PHG data extension: filling any of them encodes and sends all of them (the spec defines it as a single fixed 7-byte field). Power takes the largest step not exceeding the real value: 25 W reports 25, and so does 30 W, because over-reporting inflates your coverage circle. Antenna height is measured above average local terrain - a different quantity from the /A= altitude sent automatically above.
Gain (dB)Text input—Power, antenna height and gain share one PHG data extension: filling any of them encodes and sends all of them (the spec defines it as a single fixed 7-byte field). Power takes the largest step not exceeding the real value: 25 W reports 25, and so does 30 W, because over-reporting inflates your coverage circle. Antenna height is measured above average local terrain - a different quantity from the /A= altitude sent automatically above.
Standalone status packet aprsStatusTextText input(empty)This sends a standalone status packet (starts with >, carries no coordinates, and does not move you on aprs.fi) - a different APRS packet type from the comment above. Left empty, the built-in APRSlocus online frame is sent instead.

Station identity

Callsign, SSID and comment

SettingControlDefaultDescription
Callsign myCallText inputBV2AAAAPRS callsign, e.g. BV2AAA
Station comment myCommentText input(empty)Comment sent with position beacons
TransmitButton—

Station info

My symbol and current position

SettingControlDefaultDescription
GridRead-only—
My locationRead-only—

Beaconing#

Beaconing#

GPS · Beaconing · Manual position

Three decisions: what fixes you (GPS / network / manual), how often (60 s default, 5 s floor) and what travels in the frame (speed/course/battery can be switched off).

Location source

Choose position source

ℹ️

When auto-location is unavailable, enter coordinates manually or pick on the map for beacon reporting and station distance calculation.

SettingControlDefaultDescription
phone GPSSimulated location useSimLocationChoice cardoffUse device location / Simulated location:Enter coordinates manually
Sensor-assisted positioning sensorAssistSwitchonPriority when several are available: simulated/manual › Garmin (while the watch has live data) › phone GPS
Location sourceRead-only—

Location mode

Choose location method

SettingControlDefaultDescription
GPS onlyGPS + Network · Network only locationModeChoice cardgps_networkSatellite only, saves battery / GPS + Network:Network is a fallback only (when GPS goes stale); coarse fixes are never written to the track / Network only:Cell / Wi-Fi only, accurate to a few hundred metres; most power-saving, for devices without GPS
Station icon for network fixesEntry—Network fixes can be off by hundreds of metres to kilometres; a distinct icon makes it obvious that the position came from the network. Defaults to following your own symbol.
Idle the phone GPS while an external GPS is active extGpsStandbySwitchonWhile an external GPS (Garmin LiveTrack) is feeding data, stop the phone location to save power; when it goes stale the phone GPS takes over automatically, and the status line and log say so. Turning this off cannot make the position wrong — the external source is already preferred.

Beaconing

Transmit interval & report content

SettingControlDefaultDescription
Enable beaconing beaconEnabledSwitchonClassic: one line (status + send now). Detailed: an extra line showing which tier is active, the seconds left, how many metres the distance trigger still needs, and how many degrees the turn trigger still needs — refreshed once a second.
Network-only interval (s) beaconNetIntervalText input300In network-only mode a fixed interval is used; cell/Wi-Fi fixes have no reliable speed, so smart beaconing (speed / distance / turn) is not used
Beacon interval (sec) beaconIntervalText input60Position beacon interval, minimum 5 seconds
SmartBeacon (by speed) smartBeaconEnabledSwitchoff
Speed beaconIncludeSpeedSmall switchon
Bearing beaconIncludeCourseSmall switchon
Phone battery beaconIncludeBatterySmall switchon
Trip distance beaconIncludeTripMileageSmall switchoff
Total distance beaconIncludeTotalMileageSmall switchoff
Steps beaconIncludeStepsSmall switchoff
Today's stepsRead-only—Steps come from the phone's step counter (hardware counting, more accurate than estimating from the accelerometer). They can be sent along with the beacon (STEPS=), so other APRSlocus users can see you in the activity leaderboard.
Grant activity permissionButton—
Location statusRead-only—
Beacons sentRead-only—
Next beaconRead-only—The current fix comes from the network (coarse, often hundreds of metres off) — automatic reports are paused and resume once GPS is back. You can still beacon manually.
Enable RF beaconButton—
Beacon network (coarse) fixes anyway beaconForceCoarseSwitchoffBeaconing a network (coarse) fix
RelocateButton—

Connection#

Connection#

Server · Range filter

APRS-IS server and Passcode, multi-select data sources, receive range (300 km default) and data caps. Changes apply only with “Save & apply”.

APRS-IS connection

Connection status and info

SettingControlDefaultDescription
ConnectionRead-only—
Server serverText inputrotate.aprs2.net
Port portText input14580
WebSocket URL (optional)Text input—

APRS-IS connection

Send and receive on air through a Bluetooth or serial TNC

SettingControlDefaultDescription
Bound deviceRead-only—
ConnectionRead-only—
Allow RF beaconingRead-only—TNC mode does not use a server or filters, so those settings are disabled
KISS parametersButton—

APRS-IS connection

Enable remote control in the radio WLAN settings, set the Network User name/password, and keep the phone on the same subnet. WLAN radio LAN audio is fixed at 12000 Hz.

SettingControlDefaultDescription
Audio backendRead-only—
Sample rateRead-only—
ConnectionRead-only—
Allow RF beaconingRead-only—Audio mode does not use the server, filters or KISS settings
WLAN Radio Direct LinkWLAN Radio Direct LinkButton—
Audio (soundcard TNC)Audio (soundcard TNC)Button—

APRS-IS connection

Read the Kenwood waypoint sentences from the radio over Bluetooth or serial (receive-only)

SettingControlDefaultDescription
Bound deviceRead-only—
ConnectionRead-only—
PKWDWPL (Kenwood waypoints)Read-only—PKWDWPL is a receive-only link: it brings in stations but never transmits (use APRS-IS / TNC / audio for transmitting)
PKWDWPL deviceButton—

Range filter

Filter center and radius

ℹ️

Only receive station packets within the configured range

SettingControlDefaultDescription
Follow my location for filter centerSave & apply filter filterFollowSwitchon
Radius (km) filterRadiusText input300Receive radius (km); tap “Save & apply filter” to apply
Use my position as filter centerButton—

Data limits

How much data to keep locally

SettingControlDefaultDescription
Max stations maxStationsText input100000Maximum stations kept in memory (unlimited by default; increase as needed)
Packet history limit maxPacketsText input2000How many packets to keep on the packets page (default 2000; higher uses more memory)
Track point limit maxTrackPtsText input300Track points kept per station (default 300; decides how far back a movement track can reach; a point is only stored after 20 m of movement)
Online window (minutes) onlineWindowMinText input5A station with no report for longer than this is treated as offline (default 5 minutes)

Callsign filter

Receive by country/region or callsign

ℹ️

Besides range filter, receive stations by country/region group or exact callsign

Display#

Display#

Coords · Theme

Dark mode, weather widget, units and grid live here; tile source and offline maps live in the map menu and their own sub-page. There is also an announcement banner toggle (on by default): the banner sits at the top of the home screen / map, its content comes from the website announcement section — publishing a notice needs no app release; offline it shows the last cached copy, and turning it off stops all network requests. To read it on demand, use the Announcements button at the very bottom of the settings home screen — it is always available and shows the same content.

All

Theme, language and coordinate display

SettingControlDefaultDescription
Dark mode darkModeSwitchoff
Weather widget weatherEnabledSwitchon
Announcements noticeBannerSwitchonThe active theme pins the primary colour — change it on the Theme page
UnitRead-only—
GridRead-only—

Map

Map type and display

ℹ️

"Map 2.0 (vector)" renders vectors on-device for lower data use and sharp zooming; raster sources use online tiles, so quality depends on the network.

SettingControlDefaultDescription
Always show map labels mapLabelsAlwaysSwitchoffShow every station callsign label on the map regardless of station count or zoom.
Offline mapsEntry—The material only affects the app's own surfaces (cards, bars, dialogs, map overlays) — it is not window transparency. Blur costs GPU time, so on older devices it may feel less smooth than Off. / Download map tiles ahead of time so the map works without a network

Data#

Data#

Clear local data

Read-only stats and destructive actions are kept apart: clearing the chat is its own button, and “clear all data” asks twice.

Chat history

Contacts and chat data

SettingControlDefaultDescription
Chat historyChoice card—
Clear all chat historyButton—

Stations

Received stations and their tracks, stored on this device

SettingControlDefaultDescription
StationsChoice card—
Clear station listButton—

Clear all data

Delete local records

SettingControlDefaultDescription
StationsChoice card—
Chat historyChoice card—
Group chatsChoice card—
LogsChoice card—
PacketsChoice card—
Clear all dataButton—

Offline maps

Cached automatically while browsing; areas can also be downloaded manually

SettingControlDefaultDescription
Offline areasEntry—Downloaded areas can be viewed on the map offline

Advanced#

Advanced#

Lab · Developer

Landscape toggle, demo data (fake stations/packets), RX/TX counters and re-running the wizard.

SettingControlDefaultDescription
Allow landscape orientation labLandscapeSwitchoffLab features are experimental and may affect usability. Portrait orientation is locked by default; enable this to allow landscape.
Enable demo data (sample stations/packets) devModeSwitchoff
RX / TXRead-only—
StationsRead-only—
ConnectionRead-only—

Devices#

Devices#

Data source, link status and self-test

Device overview = current link, gateway status, the four sub-pages (TNC / WLAN radio / audio / PKWDWPL) plus link self-test and logs.

Gateway (iGate)

Relay packets heard on RF into APRS-IS

SettingControlDefaultDescription
Enable gateway igateEnabledSwitchoff
Two-way gateway (forward messages to RF) igateTwoWaySwitchoffNo packets heard on RF at all: the gateway is fully armed but has nothing to relay. This is not a gateway problem — nothing is reaching the app. Check upstream: radio volume and squelch, antenna, whether anyone is actually transmitting, and the log page for any RF traffic at all.
Heard on RFRead-only—
Relayed → APRS-ISRead-only—
Relayed → RFRead-only—
Duplicates droppedRead-only—
Loop-protection rejectsRead-only—
Reset countersButton—
Allow RF beaconingRead-only—

Current link

Read-only summary — edit parameters in the sub-pages

Devices & parameters

One sub-page per link, each with its own settings

SettingControlDefaultDescription
TNC device & parametersChoice card—Bluetooth/serial binding, init string, KISS parameters and TX self-test
WLAN Radio Direct Link sourceChoice cardAudioSource.deviceConnected
Audio (soundcard TNC)Choice card—Send and receive AFSK 1200 packets with your soundcard
PKWDWPL deviceChoice card—Bind the radio port and check waypoint reception
APRSlocusBOX connectedChoice cardoffConnected
Heart rateChoice card—Bluetooth heart-rate straps (standard HR service), optionally sent with your beacon
Garmin LiveTrackChoice card—No log entries yet / Pull your Garmin watch activity in and beacon it

TNC device & parameters#

TNC device & parameters#

Bluetooth/serial binding, init string, KISS parameters and TX self-test

Everything for a Bluetooth/USB TNC: binding, init string, baud, KISS timing, digipeat path and the TX self-test.

Bluetooth TNC

Bind and connect the TNC on your radio

ℹ️

Two links are bound to the same device

SettingControlDefaultDescription
Bound deviceRead-only—
ConnectionRead-only—No devices found — pair the TNC in the system Bluetooth settings, or plug in the USB serial cable (OTG)
Scan devices (paired Bluetooth + USB serial)Button—
DisconnectRestart linkButton—
UnbindButton—

TNC init string

Sent line by line after connecting (same as APRSdroid kiss.init)

ℹ️

If the TNC receives but will not transmit, try here first: many Bluetooth/serial TNC modules boot into command mode and need KISS ON / RESTART before they will forward in KISS. One command per line (CRLF is appended automatically).

SettingControlDefaultDescription
Delay per line (ms) initDelayMsText input300Wait between lines. Modules need time to process commands; too short drops them
Serial baud rate (bd) serialBaudText input9600A USB serial cable and the radio data port must agree on the speed, otherwise not a single byte gets through. Common values: 9600 / 19200 / 38400 / 57600 / 115200. Bluetooth SPP has no baud rate, so this is ignored for Bluetooth devices.
TX serial portEntry—A Bluetooth device is bound: Bluetooth SPP has no baud rate, so this setting has no effect / Saved. By default TX shares the RX port; a separate port avoids two handles fighting over one COM port on Windows.
Send init string nowButton—
No init string configuredChoice card—

KISS parameters

Link-layer settings pushed straight to the TNC

SettingControlDefaultDescription
Push KISS parameters on connect pushKissParamsSwitchoffOff by default (same as APRSdroid). When on, the values above are pushed to the TNC on connect, overriding its own configuration — inappropriate values can make it back off forever without transmitting, so enable only if you want centralised control.
TX delay (ms) txDelayMsText input300KISS TXDELAY in 10 ms units — time for your PTT to settle before data
TX tail (ms) txTailMsText input50KISS TXTAIL in 10 ms units — some radios need the tail to be heard fully
Persistence persistenceText input63KISS PERSISTENCE, 0–255 — lower is more polite and avoids collisions on a shared channel
Slot time (ms) slotTimeMsText input100KISS SLOTTIME in 10 ms units — works with persistence to pace channel access
Full duplex fullDuplexSwitchoff
Channel / KISS port channelText input0Only multi-channel TNCs have several ports; keep 0 for single-channel radios
Max frame size (bytes) maxFrameText input330Longer packets are not sent at all (at 1200 baud an AX.25 frame is ~330 bytes)
RF digipeater path pathText inputWIDE1-1,WIDE2-1Digipeaters used on air, e.g. WIDE1-1,WIDE2-1; leave empty for none
Vendor command hardwareCmdText input-1KISS SETHARDWARE (0x06), vendor-specific; -1 means do not send
Value hardwareValText input0KISS SETHARDWARE (0x06), vendor-specific; -1 means do not send
Push parametersButton—
Return to TNC command modeButton—
Connect the TNC firstChoice card—
Return to TNC command modeChoice card—KISS SETHARDWARE (0x06), vendor-specific; -1 means do not send

TX self-test

Writes one test frame to the TNC to tell link problems from TNC problems

ℹ️

It sends a status frame (no coordinates), so it will not move your station on aprs.fi. If it reports "written" but nothing is transmitted, the problem is on the TNC side: try the init string (KISS ON / RESTART) first, then check TxDelay and channel occupancy.

SettingControlDefaultDescription
Write test frameButton—

Radio (TNC) mode

The radio channel is shared, so messaging is limited accordingly

SettingControlDefaultDescription
Allow RF beaconing rfBeaconSwitchoffOnly then will positions be transmitted on air. Transmitting requires your own licence and callsign
Auto-acknowledge autoAckSwitchonWhen off, incoming messages are not acknowledged — keeps the channel quieter
Reconnect automatically autoReconnectSwitchon

WLAN Radio Direct Link#

WLAN Radio Direct Link#

局域网直连 Icom 电台(IC-705 / IC-9700 / IC-7610 / IC-905),收发 12 kHz PCM 音频与 CI-V 控制

Direct LAN link to Icom radios (IC-705 / IC-9700 / IC-7610 / IC-905 etc.): radio IP/control port, Network User auth, CI-V address and TX Delay, RF digipeater path (e.g. WIDE1-1,WIDE2-1), 12 kHz PCM audio streaming.

电台链路状态

SettingControlDefaultDescription
Enable WLAN radio LAN linkSwitch—开启后,APRS 音频收发数据源将直接绑定至 $… 局域网直连
射频收发统计Read-only—
音频采样率Read-only—

电台网络参数

选择电台型号预置并配置 IP 与 Network User 凭据

SettingControlDefaultDescription
Radio IPText input—
Control portText input—
Username (Network User)Text input—
Password (Network User)Text input—提示:用户名和密码必须与电台内部 Network User Setting 完全一致。

CI-V 控制与发射设置

PTT 自动控制、前导延时与信标参数

SettingControlDefaultDescription
Allow RF beaconing rfBeaconSwitchoff是否允许通过电台射频自动周期发射信标(半双工,发射时自动静默监听)。
发射前导延迟 (TX Delay, ms) txDelayMsText input300
电台 CI-V 地址 (十六进制)Text input—
控制器地址Read-only—
RF digipeater path pathText inputWIDE1-1,WIDE2-1Digipeaters used on air, e.g. WIDE1-1,WIDE2-1; leave empty for none

电台设置指引

在 Icom 电台上的必要准备步骤

Audio (soundcard TNC)#

Audio (soundcard TNC)#

Send and receive AFSK 1200 packets with your soundcard

Use the sound card as a TNC: sample rate/baud/tone, TX level and CSMA wait, plus WAV file mode (decode a recording offline).

SettingControlDefaultDescription
Playback deviceEntry—To enable or switch data sources (links), go to Settings → Devices

Audio capture

Demodulate AFSK 1200 from the mic/line input

SettingControlDefaultDescription
Audio backendRead-only—
ConnectionStop capture · Restart audio linkRead-only—
Demod lockedRead-only—… aborted decodes (noise / out of sync)
… frames receivedRead-only—Real-time audio is not supported on this platform (WAV file mode is available)

Audio (soundcard TNC)

Send and receive AFSK 1200 packets with your soundcard

SettingControlDefaultDescription
Sample rate sampleRateText input2205022050 Hz is the usual soundcard-TNC rate; use 44100/48000 if unsupported. Changing it restarts capture
Bit rateText input—APRS on VHF is always 1200 bd (Bell 202); 300 bd is for HF
Mark tone (Hz)Text input—Bell 202 specifies mark 1200 Hz / space 2200 Hz; the tolerance is only a few Hz
Space tone (Hz)Text input—Space tone. Together with mark it sets the FSK shift (1000 Hz nominal)
Tx preamble (ms) txDelayMsText input300Preamble length: lets the far-end demod lock and the radio key up

Audio transmit

Listens before transmitting to avoid collisions

SettingControlDefaultDescription
Allow transmit txEnabledSwitchonWhen off, receive only — handy if you just want to monitor beacons
Allow RF beaconing rfBeaconSwitchoffOnly then will positions be transmitted on air. Transmitting requires your own licence and callsign
Wait for a clear channel (ms) csmaWaitMsText input3000How long to wait when the channel is busy; 0 = transmit immediately
RF digipeater path pathText inputWIDE1-1,WIDE2-1Digipeaters used on air, e.g. WIDE1-1,WIDE2-1; leave empty for none
Max frame size (bytes) maxFrameText input330Longer packets are not sent at all (at 1200 baud an AX.25 frame is ~330 bytes)
TX levelRead-only—Before transmitting the media volume is raised to maximum and the mic is paused; a peak that is too low or clipped means the other side cannot decode
Auto-acknowledge autoAckSwitchonWhen off, incoming messages are not acknowledged — keeps the channel quieter
Reconnect automatically autoReconnectSwitchon
Stop transmitButton—

WAV file mode

Decode a recording offline, or export a packet as audio

SettingControlDefaultDescription
Packet to export (TNC2)Text input—Format SRC>DEST,PATH:info, e.g. BG7LZQ-9>APALOC:>TEST
File pathText input—Decode a recording offline, or export a packet as audio
Choose WAV fileButton—
Export to DownloadsButton—
Copy pathButton—
Path copiedChoice card—Use an audio cable to the radio (headphone out → data/mic jack). Phone speakers roll off badly at 2200 Hz, so acoustic coupling rarely decodes. If the far end is Direwolf, first verify with the exported WAV: if that decodes, the problem is the audio path, not the protocol

Link log

ℹ️

No log entries yet

PKWDWPL device#

PKWDWPL device#

Bind the radio port and check waypoint reception

Read-only Kenwood waypoint link: binding and status, waypoint counters, strict checksum (off by default — mismatches are flagged, not dropped).

Device binding and status

Pick the serial or Bluetooth port that outputs sentences

ℹ️

Two links are bound to the same device

SettingControlDefaultDescription
Bound deviceRead-only—
ConnectionRead-only—
PKWDWPL (Kenwood waypoints)Read-only—No devices found — pair the TNC in the system Bluetooth settings, or plug in the USB serial cable (OTG)
Scan devices (paired Bluetooth + USB serial)Button—
DisconnectRestart linkButton—
UnbindButton—

Waypoint reception

Bind the radio port and check waypoint reception

SettingControlDefaultDescription
… waypoints receivedRead-only—
Dropped or invalid sentencesRead-only—
Checksum mismatchesRead-only—
Other NMEA sentences (ignored)Read-only—帧缓冲溢出 $… 字节
Strict checksum (drop mismatches) strictChecksumSwitchoffOff by default: a mismatch is flagged and logged instead of dropped, because on a local cable it usually means the firmware format differs from the manual. Dropping every sentence would leave the screen empty and make diagnosis much harder.
Reconnect automatically autoReconnectSwitchonNo PKWDWPL log yet

Translation settings#

Translation settings#

Provider, languages and auto-translate

Target language, engine (auto, no key needed), per-engine keys and instance URLs, test translation.

Translate into

Provider, languages and auto-translate

SettingControlDefaultDescription
Translate intoRead-only—
ProviderRead-only—Translation sends message text to the third-party provider you choose; assess privacy accordingly

Provider

ℹ️

Tries several keyless endpoints in turn and keeps the first real translation

SettingControlDefaultDescription
Actually usedRead-only—Open source and most reliable self-hosted; public instances now need a key and often lack Chinese
Instance URL libreUrlText inputhttps://libretranslate.com
Instance API key (needed for public instances; leave empty when self-hosted) libreApiKeyText input(empty)
Google API key googleApiKeyText input(empty)API key for Google Cloud Translation v2 — create one in the Google Cloud console
Baidu App ID baiduAppIdText input(empty)
Baidu secret key baiduKeyText input(empty)Apply for general text translation on the Baidu Translate platform; the key stays on this device
Endpoint URL customUrlText input(empty)
Headers (JSON) customHeadersText input{"Content-Type": "application/json"}
Body template customBodyText input{"q": "{text}", "source": "{from}", "target": "{to}"}Placeholders: …, …, …. Ignored when the method is GET
Result JSON path customResultPathText input(empty)Dot-separated path with array indexes, e.g. data.translations.0.translatedText

Test translation

SettingControlDefaultDescription
Test translationButton—
TranslateRead-only—

Theme#

Theme#

Make the colours, icons and common labels your own

Four blocks — colours, icons, text, background — exportable as JSON to share; preset skins switch in one tap.

Colours

Overwrite colours individually; untouched ones stay default

Card surface

With a background image, how translucent cards should be

SettingControlDefaultDescription
Opacity (lower is more see-through)Choice card—

Density & font

Affects card and input padding only, not every spacing

SettingControlDefaultDescription
DensityChoice card—This changes card padding; if something looks unchanged, its spacing is fixed individually
FontChoice card—Uses system-installed fonts only; if one is missing it falls back automatically (no tofu boxes)

Accent colours

The entry-card gradient, and a per-tab accent colour

SettingControlDefaultDescription
Unify entry-card coloursSwitch—
Gradient startChoice card—
Gradient endChoice card—

Background image

Use an image as the app backdrop; cards turn translucent automatically

ℹ️

This theme has no background image; the backdrop is a solid colour

SettingControlDefaultDescription
Remove backgroundButton—
OpacityChoice card—
BlurChoice card—
Fill modeChoice card—
AlignmentChoice card—
ScaleChoice card—The image stays on this device: the theme file records only a reference, not the image, so anyone you share it with sees the theme without a background.

Card corner radius

Applies to cards and inputs (small badges are unaffected)

SettingControlDefaultDescription
Card corner radiusChoice card—

Icons

Replace the tab bar and settings entries icons

ℹ️

Importing images is not available on the web — use the built-in icon library

Text

Overwrite common labels (buttons and error messages are deliberately excluded so the UI stays operable)

Import & export

A theme is JSON text — shareable and hand-editable

SettingControlDefaultDescription
Include images in the exportSwitch—The images are too large for the clipboard — use "Export all themes" to save a file instead
Export all themesChoice card—
Import themesChoice card—
Import from clipboardChoice card—
Reset this themeChoice card—

Skin info

Both travel with the skin when you share it

SettingControlDefaultDescription
AuthorChoice card—
DescriptionChoice card—
RenameChoice card—

Presets & my themes

Make the colours, icons and common labels your own

ℹ️

Presets cannot be edited — copy one to your themes first

Backup & restore#

Backup & restore#

Export or import settings and data

One JSON holds settings and data; whitelisted import stops a foreign file from rewriting your config; restart after importing.

Backup & restore

The backup is a JSON file you can restore after switching or reinstalling. Import overwrites per group and cannot be undone.

SettingControlDefaultDescription
The backup contains your callsign, server passcode and API keys — keep it safe.Choice card—
On the web, use “copy to clipboard / paste from clipboard”.Choice card—

Export backup

Pick what to include, then save to a file or copy as text

SettingControlDefaultDescription
Select allButton—
Saved to: …Choice card—
Include images in the exportSwitch—The backup will embed the images your themes use. Without them, a restored theme falls back to built-in icons.

Import backup

Choose a backup JSON file exported earlier

SettingControlDefaultDescription
Choose backup fileButton—
Paste from clipboardButton—

Offline maps#

Offline maps#

Download map tiles ahead of time so the map works without a network

Tile cache plus the “offline tiles only” switch; the download area is exactly what you see on screen, entered from the map menu.

Tile cache

Cached automatically while browsing; areas can also be downloaded manually

SettingControlDefaultDescription
Cache map tiles tileCacheOnSwitchonSaves tiles while you browse, so they can be viewed offline later
Offline tiles only offlineOnlySwitchoffNever load tiles from the network — only downloaded/cached ones (saves data)

Offline areas

Downloaded areas can be viewed on the map offline

ℹ️

Area too large (about … tiles) — narrow it or lower the max zoom