Skip to content

Settings Sync

SHOULD in every app with user data worth carrying between computers (snippets, templates, shortcuts, profiles, saved views). A page in the Settings window, found by searching “sync”. No server and no account of ours: the store is a private Git repository the user owns, reached through their own Git credentials. Reference: Editora’s sync/ package (SyncEngine, SyncMerge, SyncAccount) and ui/SettingsSync.java, with the page in SettingsWindow; Torrenta and Termina carry the same package.

  1. 1Its own page in the Settings sidebar, under System, found by the Settings search ("sync", "git", "github").
  2. 2Repository URL. SSH or HTTPS. A URL with a password or token in it is refused, with the reason and the fix (a credential helper such as gh auth setup-git, or an SSH URL).
  3. 3Branch, Connect, Create on GitHub…. Connect clones or adopts the repository. Create on GitHub makes a private repository through the gh CLI and fills the URL in.
  4. 4Status pill plus Sync Now and Open Sync Folder (see the states below).
  5. 5What to sync: one switch per kind of data, each with a description when its scope is not obvious.
  6. 6What is not synced, said plainly: machine-local preferences, the keymap in use, anything with paths.
  7. 7Automatic sync with its interval in minutes (default 15, at least 1). Automatic runs never prompt.
  8. 8Privacy and conflicts, in one note: use a private repository; on a same-entry conflict the computer you sync from wins, and the other version stays in the history.
Never connected
Not connected
Connected
Connected · synced just now
Running
Connected · syncing…
Network trouble
Not connected · retrying
Needs the user
Sync failing

Green, amber and red are the Settings status-pill colours. Amber means “will recover by itself” (offline, the remote unreachable); red means “the user must act” (Git missing, the repository written by a newer version, a sync that would remove most of a kind of data and waits for confirmation). The pill’s accessible text is “Sync status: …”.

PropertyValueReference
StoreA Git repository the user owns, cloned into <config>/sync/; one folder per kind of dataSyncEngine, SyncTarget
Sign-inThe user’s own Git credentials (credential helper or SSH key); the GitHub account that can read the repository is pinned per cloneSyncAccount
Automatic runsAfter startup, 30 s after a local change, and every n minutes (default 15)SettingsSync.DIRTY_DELAY_SECONDS, syncIntervalMinutes
ConflictsPer entry; this computer wins; the other version stays in historySyncMerge
SafetyFiles a sync replaces are copied to the sync folder first; a sync that would remove most of a kind of data stops and asksSyncReport
One runnerSync runs in the first instance only; a second instance says sostatus.sync.secondaryInstance
FailuresTo the status bar and the Message Log, said once per failure, not once per intervalSettingsSync
PaletteSettings Sync: Set Up…, Sync Now, and Toggle Sync Automaticallysync.setup, sync.now, sync.toggleAuto
KeyEnglish
settings.sync.subtitleKeep your snippets, abbreviations, templates and personal dictionary the same on every computer, through a Git repository you own.
settings.sync.connect / settings.sync.createGithubConnect / Create on GitHub…
settings.sync.now / settings.sync.openFolderSync Now / Open Sync Folder
settings.sync.pill.*Connected · Not connected · Sync failing · syncing… · retrying · synced {0} min ago
status.sync.notSetUpSettings sync is not connected. Set it up in Settings ▸ Sync.
Editora's Sync settings page
Editora.
Torrenta's Sync settings page
Torrenta.
Termina's Sync settings page
Termina.

Pauta 1.1.0 · · Changelog