logo
Fold
Install
Docs
Releases
Install
Docs
Releases
logo
Fold
What Fold is
Getting started
Sessions
Files and editor
Git panel
Search
Workspaces
Settings
Keyboard shortcuts
Terminal setup

Updated:

PreviousWorkspaces
NextKeyboard shortcuts

#Settings

The gear at the bottom of the activity bar opens Settings as a full-screen page. There are two sections.

#Appearance

#Font family

One font drives the whole app — the chrome, the editor and the terminal. Choosing it here changes all three.

The text field is the source of truth and accepts any CSS font stack. Beside it, a ▾ list of installed coding faces shows each family previewed in its own face. Picking one writes:

'<Family>', ui-monospace, monospace

The fallbacks are deliberate. Fold's chrome is monospace by design, so if that family is ever uninstalled the UI must drop to another mono face — never to a proportional one.

How installed fonts are detected

By canvas measurement, not enumeration: each candidate family is measured against all three generic families, and a family that renders differently from all of them is installed.

The obvious alternatives don't work. queryLocalFonts() needs a local-fonts permission Electron 43 doesn't expose, and system_profiler SPFontsDataType takes about twelve seconds to return 288 mostly-internal families while still missing SF Mono — macOS registers it as .SF NS Mono.

#Terminal

Font size and line height — terminal-only, on purpose. The chrome is laid out against fixed pixel values (status bar height, tab strip height), so scaling it would break the layout rather than improve it.

#Reset

Each section has its own reset button, and a button only ever changes the controls next to it. Appearance resets the app-wide font family; Terminal resets terminal typography.

The terminal reset is derived by omitting fontFamily from the terminal defaults, so a new terminal setting joins it automatically instead of being forgotten.

#Where settings live

~/Library/Application Support/dev.samiworld.fold/settings.json

The file is sanitised on load: unknown keys are dropped, so settings written by an older version never break a newer one. The storage key for the font family is still terminal.fontFamily for historical reasons, even though it is now app-wide — existing files need no migration.

#What isn't configurable

  • The theme. Fold is dark-only. One palette, derived once, shared by the chrome, the terminal and the editor.
  • Keybindings. They live in a single registry in the source; there's no user-facing remapping yet.
  • The GPU renderer. The WebGL addon attaches unconditionally, with a DOM fallback if it fails. The old toggle existed for a WKWebView compositing bug that Chromium doesn't have.