Settings
Every setting of Kalem, generated from the settings' definitions when the Book is built. Settings are written in settings.toml (your own) or .kalem/settings.toml (a workspace's), as the chapter on settings describes.
| Setting | Type | Default | What it does |
|---|---|---|---|
editor.font_family |
text | "" |
Font of body text; empty for the system font |
editor.code_font_family |
text | "" |
Font of code, tables and the source view; empty for the system's monospace font |
user.name |
text | "" |
Your name, which the comments and tracked changes you make in documents carry; empty for the system account's |
editor.font_size |
a number from 6 to 72 | 16 |
Font size of body text in points |
editor.theme |
one of system, light, dark | "system" |
Light or dark colors, or those of the system |
ui.language |
one of auto, en, tr | "auto" |
Language of the interface: that of the system, English or Turkish |
editor.line_width |
a number from 0 to 400 | 0 |
Width of the text column in characters, such as 80; 0 for the whole window (code files always take it) |
editor.center_text |
true or false | false |
Center the text column in the window, like a page; off, the text starts at the left edge |
markdown.assets_dir |
text | "images" |
The folder, beside a Markdown document, that pictures dropped, pasted or inserted from elsewhere are copied into ({name} is the document's name) |
csv.align_numbers |
true or false | true |
CSV files start with columns of numbers and dates aligned right (Toggle Number Alignment changes one file) |
spreadsheet.custom_lists |
a list of text | [] |
Your own lists a spreadsheet's fill handle goes round, as it goes round months and days: each one text with its items separated by commas ("North, South, East, West"); Custom Lists adds and removes them |
csv.sheet |
true or false | true |
CSV files look like a spreadsheet: row numbers and column letters in shaded bars, the cell at the cursor marked (Spreadsheet Look changes one file) |
csv.rainbow |
true or false | false |
CSV files start with each column its color (Rainbow Columns changes one file) |
csv.coordinates |
true or false | false |
CSV files start with column letters and row numbers shown (Coordinate Grid changes one file) |
notes.directory |
text | "~/org" | The folder of your notes, which Search Notes searches (SPC n s), as Doom's org-directory |
editor.restore_session |
true or false | false |
On start without files, open the documents open when Kalem last quit (the session SPC q l restores) |
editor.outline_indent |
true or false | true |
Text under a heading starts where the heading's title does, as Org's org-indent-mode (#+STARTUP: indent or noindent decides for one file) |
editor.soft_wrap |
true or false | true |
Wrap long lines at the window's edge (Alt+Z toggles it for a window) |
ui.menu_bar |
true or false | true |
Show the window's menu bar on Linux and Windows (macOS has its own) |
editor.trim_trailing_whitespace |
true or false | false |
Remove the blanks at the ends of lines when saving (not in CSV and Markdown files) |
editor.format_on_save |
true or false | false |
Format the document when saving, as Format Document does, with the formatter of its type (the one set in formatters, a language plugin's, the language's usual program, Kalem's own for Org and LaTeX); a formatter that fails leaves the text as it is and says why, the file saved all the same |
editor.line_numbers |
true or false | true |
Line numbers in plain text files and in the source view |
editor.highlight_changes |
true or false | true |
Lines a plugin marks as added or changed (the git plugin's) tinted under their text, beside their mark in the gutter |
editor.inlay_hints |
true or false | true |
A language server's inlay hints in the text, dimmed: types, parameters' names, a journal's running balances, as the server gives them (Toggle Inlay Hints hides them until the settings are read again) |
editor.keymap_profile |
one of word, vim | "word" |
Word-like keys, or Vim's modal keys (with the Word-like keys in insert mode) |
editor.show_source_markers |
one of cursor, always, never | "cursor" |
When Org markup such as * around bold text is shown: while the cursor is in it, always, or never |
editor.vim.modes |
a list of org, markdown, csv, latex, text, directory, plain | [] |
Document modes where the Vim profile applies: org, markdown, csv, latex, text (plain text, code and BibTeX; plain is the same) and directory (the file manager); empty for all |
editor.vim.leader |
text | "space" |
The leader key of the Vim profile's Doom Emacs style bindings (leader p p switches project) |
search.online_url |
text | "https://duckduckgo.com/?q=%s" |
The address Search Online opens (SPC s o), %s standing for the words searched |
ui.open_files |
one of left, top, hidden | "left" |
Where the list of open files shows: a sidebar on the left, tabs at the top, or not at all |
ui.folder_tree |
true or false | false |
The sidebar on the left shows the current project's folders and files below the open files (the file manager lists a folder's) |
org.table_auto_recalc |
true or false | false |
Recalculate a table's formulas when Tab, Shift+Tab or Enter leaves a field, as F9 does |
export.body_only |
true or false | false |
Exports write the document's body only, without the page around it |
export.open_after |
true or false | false |
Open an exported file with the system's application |
latex.engine |
text | "auto" |
The TeX engine for LaTeX documents: auto (from % !TEX program and the packages), pdflatex, xelatex, lualatex or tectonic |
keys.hints |
true or false | true |
Show the keys that may follow a half-typed key sequence (which-key) |
keys.hints_delay |
a number from 0 to 5000 | 400 |
How long a half-typed key sequence waits before its keys show, in milliseconds |
plugins.suggest |
true or false | true |
Say once in the status bar, when a file opens, that a plugin of the index would serve it and is not installed (a language's, a Logseq graph's); Install Suggested Plugin installs it |
plugins.check_updates |
true or false | true |
Look for newer versions of the installed plugins once a day when Kalem starts, and say so in the status bar |
plugins.index |
text | "https://raw.githubusercontent.com/getkalem/plugins/main/index.json" |
Where Browse Plugins and Install Plugin read the plugin index (a URL, or file:// for a copy on disk) |
plugins.sources |
a list of text | [] |
More plugin indexes, read before plugins.index: a fork of the official one or your own (Plugin Sources) |
latex.root |
text | "" |
The root document of LaTeX files that do not name one with % !TEX root, relative to the project's folder (for the workspace's settings) |
latex.build_on_save |
true or false | false |
Build the PDF of a LaTeX document each time it is saved |
latex.output_directory |
text | "" |
Where LaTeX builds go, relative to the root document (empty: beside it) |
org.footnote_section |
text | "Footnotes" |
The heading footnote definitions go under (org-footnote-section); empty: at the end of each section |
export.text_charset |
one of ascii, utf-8 | "ascii" |
Characters of plain text exports: ASCII, or UTF-8 lines, bullets and quotes |
export.math |
one of mathjax, svg | "mathjax" |
Formulas in HTML exports: MathJax in the browser, or SVG images drawn by Kalem (a document's own #+OPTIONS: tex: wins) |
projects.auto_add |
true or false | false |
A folder under version control (Git, Mercurial, Subversion) or with a .projectile file becomes a project when one of its files is opened, as in Projectile; off, projects are only added with Add Project |
files.details |
true or false | true |
Permissions, sizes and times in the file manager (the ( key toggles them) |
files.show_hidden |
true or false | true |
Dot files in the file manager (the . key toggles them) |
files.sort |
one of name, time, size, extension | "name" |
How the file manager sorts a folder (the s key cycles through the orders) |
files.directories_first |
true or false | true |
Folders before files in the file manager |
org.todo_keywords |
a list of text | ["TODO", "|", "DONE"] | TODO keywords of documents without #+TODO; | separates the done states |
org.log_done |
one of none, time, note | "none" |
What marking a task done records (org-log-done) |
org.log_reschedule |
one of none, time, note | "none" |
What changing or removing a scheduled date records (org-log-reschedule) |
org.log_redeadline |
one of none, time, note | "none" |
What changing or removing a deadline records (org-log-redeadline) |
org.log_refile |
one of none, time, note | "none" |
What refiling an entry records (org-log-refile) |
org.log_into_drawer |
text | "" |
Drawer for state change notes, such as LOGBOOK; empty for none |
org.adapt_indentation |
true or false | false |
Indent planning lines and notes to the headline text |
org.enforce_todo_dependencies |
true or false | false |
A task cannot be marked done while a task below it is open, or an earlier sibling under a parent with ORDERED (org-enforce-todo-dependencies); a NOBLOCKING property turns it off for an entry |
org.enforce_todo_checkbox_dependencies |
true or false | false |
A task cannot be marked done while a checkbox in it is unchecked (org-enforce-todo-checkbox-dependencies) |
org.todo_state_tags_triggers |
a list of text | [] |
Tags changed on entering a state (org-todo-state-tags-triggers): "STATE: +tag -tag", where STATE is a keyword, todo or done for any open or done state, or empty for no keyword |
org.assets_dir |
text | "{name}_assets" |
The folder pasted and dropped pictures go into, relative to the document's folder; {name} is the document's name |
files.backup |
true or false | false |
Keep the previous version as NAME.bak when saving |
files.modes |
a table of paths to org, markdown, csv, latex, text or a language | {} |
Document modes chosen with Set Document Mode, by path relative to the workspace |
formatters |
a table of file types to command lines | {} |
The formatter Format Document and kalem fmt run for a file type, by the type's name (a language such as rust or python, an extension, a mode such as markdown, or a file name): the command line, the text on its standard input and the formatted text on its output, {file} standing for the file's path; off turns the type's usual formatter off. Without an entry, the language's usual formatter runs (rustfmt, mix format, ruff or black, prettier, gofmt, clang-format…) when it is installed |
log.level |
one of error, warn, info, debug, trace | "info" |
How much goes to the log file (KALEM_LOG overrides it) |
export.pdf_engine |
one of auto, latexmk, tectonic | "auto" |
The tool that makes an Org document's PDF, tried first: auto (latexmk with the TeX engine, else the engine, else tectonic), latexmk or tectonic |
export.pandoc_path |
text | "" |
The pandoc program, as a path or a name looked for in PATH; empty for pandoc in PATH |
plugins.enabled |
a list of text | [] |
Enabled plugins, by ID |