You are reading the docs of the unreleased development version. Go to the latest version →
Skip to content

Configuration ​

Blank reads its settings from blank.json in the app config folder. The file is optional: list only what you want to change, everything else keeps its default.

SystemConfig file
Linux~/.config/com.github.fpurchess.blank/blank.json
macOS~/Library/Application Support/com.github.fpurchess.blank/blank.json
Windows%APPDATA%\com.github.fpurchess.blank\blank.json

Restart Blank after changing the file. If the file is not valid JSON, Blank ignores it and uses the defaults. A single setting that Blank can't use, such as a key it doesn't know or "false" in quotes instead of false, never stops Blank from starting: it keeps the default for that setting and tells you which ones it ignored.

Keyboard shortcuts ​

Map a command to a key under keymap. Keys are written like Mod-Shift-s, where Mod is Cmd on macOS and Ctrl elsewhere. This example saves with Ctrl Alt S and exports the PDF with Mod P:

json
{
  "keymap": {
    "file.save": "Ctrl-Alt-s",
    "export.pdf": "Mod-p"
  }
}

You can also write the modifiers the way your keyboard names them: Option works like Alt, and Command, Cmd and Super work like Meta. Case doesn't matter, so option-p is fine too.

The default configuration, with every command and its key
json
{
  "keymap": {
    "undo": "Mod-z",
    "redo": "Mod-Shift-z",
    "blocktype.paragraph": "Mod-0",
    "blocktype.heading1": "Mod-1",
    "blocktype.heading2": "Mod-2",
    "blocktype.heading3": "Mod-3",
    "blocktype.heading4": "Mod-4",
    "blocktype.heading5": "Mod-5",
    "blocktype.heading6": "Mod-6",
    "blocktype.bullet_list": "Mod-8",
    "blocktype.ordered_list": "Mod-9",
    "insert.horizontal_rule": "Mod-h",
    "insert.image": "Mod-Alt-i",
    "insert.table": "Mod-t",
    "insert.page_break": "Mod-Enter",
    "format.indent": "Tab",
    "format.unindent": "Shift-Tab",
    "format.bold": "Mod-b",
    "format.italic": "Mod-i",
    "format.code": "Mod-e",
    "format.link": "Mod-k",
    "format.blockquote": "Mod-g",
    "file.new": "Mod-n",
    "file.save": "Mod-s",
    "file.save_as": "Mod-Shift-s",
    "file.open": "Mod-o",
    "export.pdf": "Mod-Alt-p",
    "export.docx": "Mod-Alt-w",
    "theme.cycle": "Mod-Alt-t",
    "language.choose": "Mod-Alt-l",
    "spellcheck.toggle": "Mod-Alt-s",
    "spellcheck.next": "Mod-Alt-n",
    "spellcheck.previous": "Mod-Alt-Shift-n",
    "menu.context": "Shift-F10",
    "page.setup": "Mod-Alt-u",
    "edit.header": "Mod-Alt-h",
    "edit.footer": "Mod-Alt-f"
  },
  "autocorrect": {
    "arrows": true,
    "dashes": true,
    "symbols": true,
    "formatting": true,
    "links": true,
    "quotes": true,
    "capitalize": true,
    "blocks": true,
    "replace": {
      "*": {}
    }
  },
  "spellcheck": {
    "ignoreUppercase": true,
    "ignoreWordsWithNumbers": true
  },
  "layout": {
    "page": {
      "size": "auto",
      "orientation": "portrait",
      "margins": "2.5cm"
    }
  }
}

Autocorrect ​

Each group can be turned off with false. replace adds your own replacements, either for all languages (*) or for one:

json
{
  "autocorrect": {
    "capitalize": false,
    "replace": {
      "*": { "btw": "by the way" },
      "de": { "mfg": "Mit freundlichen Grüßen" }
    }
  }
}

The groups are arrows, dashes, symbols, formatting, links, quotes, capitalize and blocks. All are on by default. A replacement for a language also applies to its regional variants: one for de works in de-CH too.

Spell check ​

Spell check leaves words in capitals and words with digits alone. Set these to false to check them as well:

json
{
  "spellcheck": {
    "ignoreUppercase": false,
    "ignoreWordsWithNumbers": false
  }
}

The words you add to the dictionary are kept next to blank.json, in the dictionaries folder.

Page setup ​

layout.page is the page setup of documents that don't have their own. Make This My Default in the page setup writes it for you:

json
{
  "layout": {
    "page": {
      "size": "a5",
      "orientation": "portrait",
      "margins": "2cm"
    }
  }
}

It takes the same settings as the properties of a file. The default size is auto, the paper of your region. Headers and footers belong to each document, so Make This My Default leaves them out. To number the pages of every document, add them here yourself, e.g. "footer": { "center": "{page}" }.