Skip to content
WM KeyboardWM Keyboard
Accessibility

Backup & restore

Every switch on the Backup & restore screen: what goes in an export, and what an import merges or replaces.

The Backup & restore screen is where you write your keyboard to a file and read one back in. This page is the field reference for every switch, button, and message on it. For the reasoning behind the merge-vs-replace split and a walkthrough of moving to a new phone, see Backup & restore instead.

The Backup & restore screen: what to include, plus the export and import buttons.

The Backup & restore screen: what to include, plus the export and import buttons.
WM KeyboardDataBackup & restore

Reach it from the Data group on the settings home screen, or by searching “Backup & restore” in settings search. The screen opens on a paragraph explaining what a backup file is, then runs Automatic backup, Include in export, the export button, and Import, in that order.

WM KeyboardDataBackup & restoreAutomatic backup

This group writes the same bundle as the export button below, on a timer, to somewhere you choose. It stays inert until the destination you picked has everything it needs, so several rows here only appear once it does.

SettingTypeDefaultShown when
Where to put backupsChoice: Folder / WebDAV / S3 / FTP / Google Drive / Dropbox / OneDriveFolderalways
Back up automaticallyToggleOffalways (forced off until the destination is usable)
How oftenChoice: 6 hours / 12 hours / 1 day / 1 week1 dayBack up automatically on and destination usable
Backups to keepChoice: 3 / 5 / 105Back up automatically on and destination usable
Only while chargingToggleOnBack up automatically on and destination usable
Only on Wi-FiToggleOnSame, and only for a destination that needs a connection (everything except Folder)
Protect with a passphraseToggleOffalways
PassphrasePassword fieldemptyProtect with a passphrase on

Three of the seven only appear when the build can actually reach them: Google Drive needs Play services on the device, and Dropbox and OneDrive each need a client id compiled into the APK. A choice with nothing behind it is left off the list rather than shown and then refused, so a phone without Play services, or a build made without those client ids, simply sees a shorter list.

Under the destination picker sits whatever that destination needs. Each set of fields saves as you type:

DestinationFieldsNotes
FolderFolder (a folder picker; reads “Not set” until you choose one)Anywhere a files app can reach: the device, an SD card, or a cloud app’s synced folder
WebDAVServer address, User name, PasswordA plain http address gets a warning under the fields and is refused at upload time, because the credentials ride along on every request
S3Endpoint, Bucket, Region (default us-east-1), Folder in the bucket, Access key ID, Secret access key, Put the bucket in the path (toggle, default off)Leave the endpoint empty for Amazon. Path style is for MinIO and for any endpoint that’s a bare IP; a plain http endpoint gets the same warning
FTPServer, Port (default 21), User name, Password, Directory, Use TLS (toggle, default on)Turning TLS off is allowed, for old NAS boxes that offer nothing else, and puts a warning under the toggle
Google DriveAn Allow access to Drive button, plus a line saying whether it’s authorisedThe app gets a hidden folder of its own and can’t see anything else in your Drive
DropboxA Sign in / Sign out button, plus “Signed in.” or “Not signed in yet.”You get a folder of your own under Apps
OneDriveSame sign-in row as DropboxSame folder-under-Apps arrangement

Below the group, three things appear conditionally:

ElementShown when
A warning that the backup carries typed words or copied text with no passphrase on itDictionary or Clipboard is included below and the passphrase is off or empty
Back up now (reads “Backing up…” while it runs)always, but only tappable once the destination is usable
The status line under the buttonalways

That status line says one of four things: the last error if there was one (“The app can no longer write to your backup folder”, “The app cannot find your backup folder”, “There is not enough space for a backup”, or a generic “The last backup did not finish. The app tries again later.”), otherwise “Last backup: <relative time>”, otherwise “The app has not made an automatic backup yet.”

The Include in export group is twelve toggles, top to bottom. Eleven are independent; the twelfth, Include API keys, only exists while Settings is on:

SettingSubtitleDefault
SettingsEvery keyboard preferenceOn
Include API keys (shown only while Settings is on)Translate, GIF, search and AI keysOff
ThemesYour custom themesOn
DictionaryWords the keyboard learned from youOff
ClipboardSaved clipboard historyOff
SnippetsYour saved text snippetsOn
Sticker packsYour own sticker packs, images and allOff
Icon packsYour own icon packs, images and allOff
Custom word listsWord lists you imported for any languageOn
Addon repositoriesThe addon sources you added, so you can reinstall from themOn
Emoji historyYour recent emoji, your favourites and the skin tone of each oneOn
Typing statisticsYour daily typing counts and your all-time speedOn

Sticker packs and icon packs default off because their images make the file larger, not because of any privacy concern; Dictionary and Clipboard default off because they’re your personal typing history rather than configuration. Emoji history defaults on despite being personal too: it’s a few hundred bytes, and unlike a word list or a model there’s nowhere to download it back from. Addon repositories carries only the repository addresses you’ve added, not the addons installed from them: an installed theme already travels inside Themes, an installed icon pack inside Icon packs.

Export backup is disabled until at least one toggle above is on. Tapping it opens Android’s save dialog with a name of the form wmkeyboard-backup-<date>-<time>.wmconfig.json, timestamped down to the second so repeated exports don’t overwrite each other. The file goes wherever you choose; nothing is uploaded anywhere. Afterward you see one of:

ResultMessage
Wrote successfully, Settings on with Include API keys on“Backup exported, API keys included. Treat that file as a password.”
Wrote successfully, otherwise“Backup exported.”
Couldn’t write the file“Could not write that file.”

Import backup opens a document picker for any file type. It reads the file and tries to decode it before changing anything; nothing is written until you confirm a dialog:

OutcomeWhat happens
File is a current .wmconfig.json bundleAn “Import backup?” dialog lists each section found (for example “Themes: 3 custom themes”), states that settings merge while dictionary, clipboard, and snippets replace, and adds a warning if the file contains API keys
File is a legacy .wmsettings.json fileAn “Import settings?” dialog states how many settings will be overwritten, warns about included API keys, and notes any entries that couldn’t be read and will be skipped
File can’t be read from disk“Could not read that file.”
File doesn’t decode as either format“That file is not a WMKeyboard backup.”
Screenshot pending
The import confirmation dialog, listing what a backup file contains before anything is applied.

Confirming a current-format import applies each section independently and merges or replaces depending on which one it is:

SectionOn import
SettingsMerges — only the preferences present in the file are overwritten; everything else on the device is left as-is
ThemesReplaces — the entire custom-theme list is swapped for what’s in the file
DictionaryReplaces
ClipboardReplaces
SnippetsReplaces
Sticker packsReplaces — the local collection is cleared and rebuilt from the file
Icon packsReplaces — same clear-and-rebuild
Custom word listsReplaces — same clear-and-rebuild
Addon repositoriesMerges — incoming repository addresses are added to your existing list; a duplicate address is skipped, not overwritten
Emoji historyReplaces — recents, use counts, favourites and per-emoji skin tones all come from the file
Typing statisticsReplaces — the day-by-day counts and the all-time totals both come from the file

Settings import is rollback-safe: after writing, the keyboard re-reads its own settings to confirm they still parse, and undoes the write if they don’t. The other sections in the same file still apply even when settings roll back. After a confirmed import you see either “Restored <sections>.” (a lowercase, comma-separated list of what changed) or “Nothing to restore from that file.”, with “\n\nThe settings couldn’t be applied and were left unchanged.” appended if the settings portion rolled back. A confirmed legacy import instead reports “Restored <N> settings.”, or “That backup could not be applied — your settings are unchanged.” if it rolled back.

Opening a .wmconfig.json or .wmsettings.json file from a file manager routes through this same read-then-confirm flow rather than importing silently.

  • An emoji-history import lands live. The keyboard holds its emoji history in memory while it runs and writes it out when a field closes, so a restore could have been overwritten seconds later. Importing bumps a counter the running keyboard watches, which makes it drop its copy and re-read the file; the panel’s Recent and Favourites tabs refresh on the spot, with no need to restart anything.
  • Two file formats, one import path. .wmconfig.json is the current, full-bundle format that Export backup writes today. .wmsettings.json is an older, settings-only format that the app still accepts on import for files made by earlier versions: nothing in the current app writes one anymore.
  • The Themes toggle’s own in-app description undersells it. Its info text says a theme’s background image “doesn’t travel to another phone — only the theme itself does.” In the current app it does travel: a background image is embedded in the export and written back to local storage on import, so a restored theme keeps its image. See Backup & restore for the accurate version.
  • The API-keys warning applies to a manual export only. It has no effect on Android’s own backup system, which is a separate opt-in covered on the Privacy screen and copies saved API keys regardless of anything on this page.
  • Addon repositories is a bookmark list, not the addons themselves. What an installed addon leaves behind on this screen is in whichever section matches its type: a theme, icon pack, or sticker pack you installed from a repository is already covered by that section.
  • The automatic backup asks the system for two things, both yours to turn off. A charger, from Only while charging, and an unmetered connection, from Only on Wi-Fi. It never asks for an idle device, because the work is a few seconds of copying rather than the kind of job that wants the phone asleep. The Wi-Fi requirement is dropped for a Folder destination, which needs no connection at all, and the toggle is hidden there for the same reason. An interval is a period, not an alarm clock, so a run lands somewhere inside the window rather than on the hour. Back up now ignores all of it and runs immediately.
  • Changing either condition reschedules the job on the spot. Both toggles are part of what the app compares against the job already queued, so flipping one takes effect without waiting for the current period to end. That matters because the interval restarts when the job is replaced: a keyboard whose conditions you keep changing keeps pushing its next run back.
  • Turning the automatic switch on with no usable destination does nothing. The row reads “Choose a folder first.” and stays off, and the interval and keep-count rows below it stay hidden until both the switch and the destination are sorted. “Usable” is a cheap check (a folder grant exists, a WebDAV address and user are filled in, an S3 bucket and key pair are present, a token was stored), not proof the upload will work.
  • The stored credentials are filed as secrets, alongside your API keys. The WebDAV and FTP passwords, the S3 secret, the Dropbox and OneDrive tokens and the backup passphrase are all stripped from an export unless Include API keys is on, and they’re kept out of pre-unlock storage either way. Four things never travel at all, on or off: the folder grant (a content:// URI means nothing on another phone), the Back up automatically switch itself, the per-install salt, and the last-run time and error. That’s deliberate. Restore a bundle on a new phone and you don’t want its automatic backup coming back armed, pointing at a folder that isn’t there.
  • The toggles and choices in Automatic backup carry the usual restore button once you move one off its default; see Putting one setting back. The text fields don’t, because an address or a password has no shipped value to go back to, and neither do the twelve include-in-export toggles.
  • Backup & restore — the guide: why each default is what it is, Android’s own backup system, and a step-by-step for moving to a new phone.
  • Privacy — the Back up with Android toggle that folds the keyboard into Android’s own backup, separate from the export on this page.
  • What are addons? — how installed addons relate to the repositories this screen’s Addon repositories toggle backs up.