The Kalem Book GitHub

This Book describes Kalem's main branch, which may be ahead of the latest release.

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