✅ Introduction
Scimax VS Code provides extensive configuration options to customize your scientific computing environment. This guide covers all available settings and provides examples for common use cases.
✅ Accessing Settings
There are multiple ways to access and modify Scimax settings:
Settings UI: Press C/Cmd-, to open the VS Code settings interface. Search for "scimax" to see all Scimax-related settings.
settings.json: Edit your settings file directly for more control:
Press C-S-P (or s-S-P) and search for "Preferences: Open Settings (JSON)"
Or click the settings icon (⚙) in the top-right of the Settings UI and select "Open Settings (JSON)"
Settings File Locations
VS Code uses two types of settings files:
| Type | Scope | Location |
|---|---|---|
| User | All workspaces | Linux: ~/.config/Code/User/settings.json |
| macOS: ~/Library/Application Support/Code/User/settings.json | ||
| Windows: %APPDATA%\Code\User\settings.json | ||
| Workspace | Current workspace only | .vscode/settings.json in workspace root |
Workspace settings override user settings for that specific workspace.
Settings Format
All Scimax settings use JSON format in settings.json:
{
"scimax.journal.directory": "~/my-journal",
"scimax.journal.format": "org",
"scimax.db.autoIndex": true
}
✅ General Settings
General settings that apply across Scimax features.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.email | string | "" | Email for API integrations (OpenAlex) |
Detailed Configuration
scimax.email
Type: string
Default: "" (empty)
Description: Your email address for Scimax API integrations
This email is used for services that offer better access to identified users. Currently used for:
OpenAlex: Setting your email gives you access to the polite pool with faster rate limits
Example:
{
"scimax.email": "user@example.com"
}
You can also configure this via the command scimax.ref.configureOpenAlex which provides a quick pick menu for setting both your email and optional API key.
Org-mode Settings
Settings for org-mode document behavior including TODO states, progress logging, and more.
✅ Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.org.logRepeat | string (enum) | "false" | Enable progress logging |
| scimax.org.logIntoDrawer | boolean or string | false | Where to log state changes |
| scimax.org.diagnostics.orphanLinks | boolean | true | Warn on unresolved internal links |
| scimax.org.notes.excludeFromExport | boolean | true | Strip dialog notes from exports |
| scimax.org.notes.labelPrefix | string | "note-" | Footnote label prefix for notes |
| scimax.org.notes.author | string | "" | Author recorded on new notes |
| scimax.org.depend.enabled | boolean | true | Enable TODO task dependencies |
| scimax.org.depend.readyState | string | NEXT | State to promote unblocked tasks to |
| scimax.org.depend.autoPromote | boolean | true | Promote on unblock (else notify only) |
| scimax.org.depend.showIndicators | boolean | true | Blocked/ready CodeLens on TODO tasks |
| scimax.org.depend.hideBlockedInAgenda | boolean | false | Hide blocked tasks from agenda |
| scimax.org.entities | array | [] | Entity types for the Pick Entity selector |
✅ Task Dependencies
When scimax.org.depend.enabled (the default), a TODO task with a :DEPENDS:
property cannot be marked DONE until the tasks it depends on are DONE, and
completing a task surfaces (and, when autoPromote is on, advances to
readyState) any task it unblocks. A parent marked :ORDERED: t forces its
children to be completed in order. Blocked/ready indicators
(showIndicators), the Dependencies tree view, the agenda filter
(hideBlockedInAgenda), and dangling/cycle diagnostics surface the dependency
graph. See Task Dependencies for the full guide.
✅ Entity Selector (Contacts, Locations, …)
scimax.org.entities defines named entity types for the Scimax: Pick Entity
selector — fuzzy-pick a tagged/propertied heading and act on it (insert link,
insert/copy a field, mailto, maps, open URL). Built-in Contacts (:person:)
and Locations (:location:) are always available; entries here are merged in.
Adding a type needs no code:
"scimax.org.entities": [
{ "name": "Reagents", "tag": "reagent", "display": "CAS", "url": "SUPPLIER_URL" }
]
Fields: name (required), tag/property/value (selection), display
(shown in the picker), email/address/url (properties powering the
mailto/maps/open-link actions). See Contacts, Locations & Entity Selector.
✅ Orphan Link Diagnostics
When scimax.org.diagnostics.orphanLinks is enabled (the default), scimax
warns when an internal link ([[name]] or [[*Heading]]) resolves to nothing:
no <<target>> / <<<radio target>>> / #+NAME anchor, no heading, and no
matching text. This catches the case where an anchor was deleted but a link to
it remains. Resolution mirrors what following the link actually does (in-file
anchors/headings/text first, then a workspace-wide anchor lookup in the
database), so valid cross-file anchor links are not flagged. Custom-id
([[#id]]) and id: links are checked by the separate org-lint broken-link
checker. Set this to false to turn the warnings off.
✅ Detailed Configuration
✅ scimax.org.logRepeat
Type: string
Values:
"false","time","note"Default:
"false"Description: Controls logging when repeating tasks cycle back to TODO
When a repeating task (one with a repeater like +1w in its DEADLINE or SCHEDULED timestamp)
is marked done, it cycles back to TODO. This setting controls whether to log that completion.
| Value | Behavior |
|---|---|
"false" | No logging (default) |
"time" | Log timestamp and state change |
"note" | Log timestamp, state change, prompt for note |
Example:
{
"scimax.org.logRepeat": "time"
}
File-level override: Use #+STARTUP: logrepeat, #+STARTUP: lognoterepeat, or #+STARTUP: nologrepeat
Heading-level override: Add :LOGGING: logrepeat property
✅ scimax.org.logIntoDrawer
Type: boolean or string
Default:
falseDescription: Where to log state changes
| Value | Behavior |
|---|---|
false | Log in body text after properties |
true | Log into :LOGBOOK: drawer |
"CUSTOMNAME" | Log into custom-named drawer |
Example:
{
"scimax.org.logIntoDrawer": true
}
File-level override: Use #+STARTUP: logdrawer or #+STARTUP: nologdrawer
✅ Journal Settings
Configure the journal system for daily note-taking and logging.
✅ Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.journal.directory | string | "" | Directory for journal files |
| scimax.journal.format | string | "org" | File format (org or markdown) |
| scimax.journal.template | string | "default" | Template name for new entries |
| scimax.journal.dateFormat | string | "YYYY-MM-DD" | Date format for filenames |
| scimax.journal.autoTimestamp | boolean | true | Auto-add timestamps to log entries |
| scimax.journal.weekStartsOn | string | "monday" | First day of week (monday or sunday) |
✅ Detailed Configuration
✅ scimax.journal.directory
Type: string
Default: "" (uses ~/scimax-journal)
Description: Directory where journal files are stored
Example:
{
"scimax.journal.directory": "~/Documents/journal"
}
✅ scimax.journal.format
Type: string (enum)
Default: "org"
Options: "org", "markdown"
Description: File format for journal entries
Example:
{
"scimax.journal.format": "markdown"
}
✅ scimax.journal.template
Type: string
Default: "default"
Description: Template name for new journal entries. Create custom templates in your journal directory.
Example:
{
"scimax.journal.template": "daily-standup"
}
✅ scimax.journal.dateFormat
Type: string
Default: "YYYY-MM-DD"
Description: Date format for journal file names using date-fns tokens
Common formats:
`YYYY-MM-DD' → 2026-01-14
YYYY/MM/DD → 2026/01/14
`YYYYMMDD' → 20260114
Example:
{
"scimax.journal.dateFormat": "YYYY/MM/DD"
}
✅ scimax.journal.autoTimestamp
Type: boolean
Default: true
Description: Automatically insert timestamps when creating log entries
Example:
{
"scimax.journal.autoTimestamp": false
}
✅ scimax.journal.weekStartsOn
Type: string (enum)
Default: "monday"
Options: "monday", "sunday"
Description: First day of the week in calendar view
Example:
{
"scimax.journal.weekStartsOn": "sunday"
}
✅ Database & Search Settings
Configure the full-text search database and semantic search capabilities.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.db.includeJournal | boolean | true | Include journal directory |
| scimax.db.includeWorkspace | boolean | true | Include workspace folders |
| scimax.db.includeProjects | boolean | true | Include scimax projects |
| scimax.db.include | array | [ ] | Additional directories/files |
| scimax.db.exclude | array | See below | Patterns/paths to exclude |
| scimax.db.autoIndex | boolean | false | Auto-index workspace on activation |
| scimax.db.dirsPerSession | number | 5 | Directories scanned per background indexing session |
| scimax.db.checkStaleOnActivation | boolean | true | Prompt to refresh on activation if indexed files changed on disk |
| scimax.db.embeddingProvider | string | "ollama" | Embedding provider for semantic search |
| scimax.db.ollamaUrl | string | "http://localhost:11434" | Ollama API URL |
| scimax.db.ollamaModel | string | "nomic-embed-text" | Ollama embedding model |
| scimax.db.queryTimeoutMs | number | 30000 | Query timeout in milliseconds |
| scimax.db.maxRetryAttempts | number | 3 | Max retries for transient failures |
| scimax.db.maxFileSizeMB | number | 10 | Max file size to index (MB) |
Detailed Configuration
scimax.db.includeJournal
Type: boolean
Default:
trueDescription: Include the journal directory in database indexing
scimax.db.includeWorkspace
Type: boolean
Default:
trueDescription: Include workspace folders in database indexing
scimax.db.includeProjects
Type: boolean
Default:
trueDescription: Include all scimax projects in database indexing
scimax.db.include
Type: array of strings
Default:
[ ]Description: Additional directories or files to index (supports ~ for home directory)
Example:
{
"scimax.db.include": [
"~/Documents/notes",
"~/research",
"~/teaching/courses"
]
}
scimax.db.exclude
Type: array of strings
Default:
["**/node_modules/**", "**/.git/**", "**/dist/**", "**/build/**"]Description: Patterns or paths to exclude from indexing (globs and absolute paths)
Example:
{
"scimax.db.exclude": [
"**/node_modules/**",
"**/.git/**",
"**/dist/**",
"**/build/**",
"**/archive/**",
"~/notes/scratch.org"
]
}
scimax.db.autoIndex
Type: boolean
Default: false
Description: Automatically index workspace files on activation. Warning: Disable for large workspaces to prevent memory issues.
Example:
{
"scimax.db.autoIndex": true
}
scimax.db.dirsPerSession
Type: number
Default: 5
Description: Number of configured directories to scan per background indexing session. Progress is saved in extension state, so remaining directories are picked up in later sessions. Lower this if activation feels slow with many indexed directories.
Example:
{
"scimax.db.dirsPerSession": 3
}
✅ scimax.db.checkStaleOnActivation
Type: boolean
Default: true
Description: On activation, check whether any indexed files have changed on disk and show a one-time prompt offering to run Refresh. Useful for catching changes synced from another machine (e.g. Dropbox) while VS Code was closed. Skipped if scimax.db.autoCheckStale is on (which auto-refreshes in the background instead).
Example (disable the prompt):
{
"scimax.db.checkStaleOnActivation": false
}
scimax.db.embeddingProvider
Type: string (enum)
Default: "ollama"
Options: "none", "ollama"
Description: Embedding provider for semantic/AI-powered search
none: No semantic search (text-only)
ollama: Use local Ollama server (recommended)
Example:
{
"scimax.db.embeddingProvider": "ollama"
}
scimax.db.ollamaUrl
Type: string
Default: "http://localhost:11434"
Description: Ollama API URL for embeddings
Example:
{
"scimax.db.embeddingProvider": "ollama",
"scimax.db.ollamaUrl": "http://localhost:11434"
}
scimax.db.ollamaModel
Type: string
Default: "nomic-embed-text"
Description: Ollama model name for embeddings. Must be installed in Ollama.
Example:
{
"scimax.db.embeddingProvider": "ollama",
"scimax.db.ollamaModel": "nomic-embed-text"
}
✅ scimax.db.queryTimeoutMs
Type: number
Default:
30000(30 seconds)Range: 5000 - 300000
Description: Maximum time in milliseconds for database queries. Prevents hung operations.
Increase this value if you have a very large database or slow disk:
Example:
{
"scimax.db.queryTimeoutMs": 60000
}
✅ scimax.db.maxRetryAttempts
Type: number
Default:
3Range: 1 - 10
Description: Maximum retry attempts for transient database failures (e.g., database locked, I/O errors).
Uses exponential backoff between retries.
Example:
{
"scimax.db.maxRetryAttempts": 5
}
✅ scimax.db.maxFileSizeMB
Type: number
Default:
10Range: 1 - 100
Description: Maximum file size in MB to index. Files larger than this are skipped.
Useful when working with external repositories or collaborator files that may contain large generated files:
Example:
{
"scimax.db.maxFileSizeMB": 20
}
✅ Logging Settings
Configure logging and diagnostics.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.logLevel | string | "info" | Log level for Scimax output |
| scimax.logMaxSizeKB | number | 1024 | Max log file size before rotation |
| scimax.logBackupCount | number | 3 | Number of backup log files to keep |
Detailed Configuration
scimax.logLevel
Type: string
Default:
"info"Enum:
"debug","info","warn","error"Description: Controls the verbosity of logging to the Scimax output channel.
| Level | Shows |
|---|---|
| debug | All messages including detailed debug info |
| info | Normal operation messages |
| warn | Warnings and errors only |
| error | Errors only |
Note: Errors are always logged to the error log regardless of this setting, and a status bar indicator appears when errors occur.
scimax.logMaxSizeKB
Type: number
Default:
1024(1MB)Min/Max: 100 - 10240
Description: Maximum size of each log file in KB before rotation. Logs are written to the extension's storage directory.
scimax.logBackupCount
Type: number
Default:
3Min/Max: 1 - 10
Description: Number of rotated log backup files to keep (
scimax.log.1,scimax.log.2, etc.). Oldest backup is deleted when limit is reached.
Opening Log Files
Use the command Scimax: Open Log File Directory to open the directory containing log files for debugging.
Example:
{
"scimax.logLevel": "debug",
"scimax.logMaxSizeKB": 2048,
"scimax.logBackupCount": 5
}
Code Execution Settings
Configure Python and Jupyter paths for source block execution.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.literate.pythonPath | string | "" | Path to Python executable |
| scimax.literate.jupyterPath | string | "" | Path to Jupyter executable |
Detailed Configuration
scimax.literate.pythonPath
Type: string
Default: "" (uses system Python)
Description: Path to Python executable for code block execution
Example:
{
"scimax.literate.pythonPath": "/usr/local/bin/python3"
}
Or with virtual environment:
{
"scimax.literate.pythonPath": "~/projects/myproject/.venv/bin/python"
}
scimax.literate.jupyterPath
Type: string
Default: "" (uses system Jupyter)
Description: Path to Jupyter executable
Example:
{
"scimax.literate.jupyterPath": "~/anaconda3/bin/jupyter"
}
Reference/Citation Settings
Configure bibliography management and citation styles.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.ref.bibliographyFiles | array | [ ] | Paths to BibTeX files |
| scimax.ref.pdfDirectory | string | "" | Directory with PDF files |
| scimax.ref.notesDirectory | string | "" | Directory for reference notes |
| scimax.ref.defaultCiteStyle | string | "cite" | Default citation style |
Detailed Configuration
scimax.ref.bibliographyFiles
Type: array of strings
Default: [ ]
Description: Paths to BibTeX bibliography files
Example:
{
"scimax.ref.bibliographyFiles": [
"~/Documents/bibliography/main.bib",
"~/research/papers.bib"
]
}
scimax.ref.pdfDirectory
Type: string
Default: ""
Description: Directory containing PDF files for references
Example:
{
"scimax.ref.pdfDirectory": "~/Documents/papers"
}
scimax.ref.notesDirectory
Type: string
Default: ""
Description: Directory for reference notes and annotations
Example:
{
"scimax.ref.notesDirectory": "~/Documents/notes/references"
}
scimax.ref.defaultCiteStyle
Type: string (enum)
Default: "cite"
Options: "cite", "citet", "citep", "citeauthor", "citeyear"
Description: Default citation style for insertions
cite: Generic citation
citet: Textual citation (Author (Year))
citep: Parenthetical citation ((Author, Year))
citeauthor: Author only
citeyear: Year only
Example:
{
"scimax.ref.defaultCiteStyle": "citep"
}
Export Settings
Configure LaTeX and PDF export options.
LaTeX Export Settings
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.export.latex.customHeader | string | "" | Custom LaTeX preamble |
| scimax.export.latex.documentClass | string | "article" | Default document class |
| scimax.export.latex.classOptions | string | "12pt,letterpaper" | Default class options |
| scimax.export.latex.defaultPreamble | string | (see below) | Default LaTeX packages |
| scimax.export.latex.citeBackend | string | "bibtex" | Org-cite backend (bibtex/biblatex) |
scimax.export.latex.customHeader
Type: string
Default: ""
Description: Custom LaTeX header (preamble) that replaces the auto-generated one. Should include \documentclass through all \usepackage commands.
Example:
{
"scimax.export.latex.customHeader": "\\documentclass[11pt]{article}\n\\usepackage[utf8]{inputenc}\n\\usepackage{graphicx}\n\\usepackage{amsmath}\n\\usepackage[margin1in]{geometry}"
}
scimax.export.latex.documentClass
Type: string
Default: "article"
Description: Default LaTeX document class. Can be overridden by
#+LATEX_CLASS:in the document.
Example:
{
"scimax.export.latex.documentClass": "report"
}
scimax.export.latex.classOptions
Type: string
Default: "12pt,letterpaper"
Description: Default LaTeX class options. Can be overridden by
#+LATEX_CLASS_OPTIONS:in the document.
Example:
{
"scimax.export.latex.classOptions": "11pt,a4paper,twoside"
}
scimax.export.latex.defaultPreamble
Type: string
Default: Standard academic packages (inputenc, graphicx, amsmath, etc.)
Description: Default LaTeX preamble packages. Can be extended by
#+LATEX_HEADER:in the document.
Example:
{
"scimax.export.latex.defaultPreamble": "\\usepackage[utf8]{inputenc}\n\\usepackage{graphicx}\n\\usepackage{amsmath}"
}
✅ scimax.export.latex.citeBackend
Type: string (enum)
Default: "bibtex"
Options: "bibtex", "biblatex"
Description: Backend used when translating org-cite citations (
[cite/STYLE/VARIANTS:@key]) into LaTeX.bibtex(default): emitsnatbibcommands --\citep,\citet,\citealp,\Citet, etc. Use with the standard bibtex/natbib stack.biblatex: emits biblatex commands --\autocite,\textcite,\Autocite,\fullcite, etc. Requires\usepackage{biblatex}and biber.
A per-document override is also supported via #+cite_export: bibtex or
#+cite_export: biblatex. See Export for the full
style/variant → command mapping table.
Example:
{
"scimax.export.latex.citeBackend": "biblatex"
}
✅ Beamer Export Settings
See Beamer Export for the full feature reference.
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.export.beamer.theme | string | "" | Default Beamer theme (e.g. "Madrid") |
| scimax.export.beamer.colorTheme | string | "" | Default color theme (e.g. "beaver") |
| scimax.export.beamer.fontTheme | string | "" | Default font theme |
| scimax.export.beamer.innerTheme | string | "" | Default inner theme |
| scimax.export.beamer.outerTheme | string | "" | Default outer theme |
| scimax.export.beamer.frameLevel | number | 1 | Headline depth at which a heading becomes a frame |
| scimax.export.beamer.boldIsAlert | boolean | true | Render *bold* as \alert{...} |
| scimax.export.beamer.aspectRatio | string | "" | Beamer aspect ratio: "", 43, 169, 1610, 54, 32, 141 |
| scimax.export.beamer.classOptions | string | "presentation" | Comma-separated \documentclass[...]{beamer} options |
| scimax.export.beamer.defaultPreamble | string | "" | Extra preamble appended after theme commands |
⚠️ Custom Exporter Settings
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.export.customExporterPaths | array | [] | Extra directories to search for custom exporters |
| scimax.export.latexClassExporters | object | {} | Map #+LATEX_CLASS to a custom exporter id |
⚠️ scimax.export.latexClassExporters
Type: object (string → string)
Default:
{}Description: Makes the ordinary LaTeX/PDF exports (
C-c C-e l l,l p,l o) use a custom exporter when the document declares a matching#+LATEX_CLASS. Keys are class names (matched case-insensitively), values are custom exporter ids.
Example:
{
"scimax.export.latexClassExporters": {
"cmu-memo": "cmu-memo"
}
}
A document with #+LATEX_CLASS: cmu-memo then exports through the cmu-memo
exporter automatically. Override per file with #+EXPORTER: <id>, or disable
routing for one file with #+EXPORTER: none.
See Extension Points for how to define custom exporters.
PDF Export Settings
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.export.pdf.compiler | string | "latexmk-lualatex" | LaTeX compiler for PDF |
| scimax.export.pdf.bibtexCommand | string | "bibtex" | Bibliography processor |
| scimax.export.pdf.shellEscape | string | "restricted" | Shell escape mode |
| scimax.export.pdf.extraArgs | string | "" | Extra compiler arguments |
| scimax.export.pdf.openLogOnError | boolean | true | Open log on compilation failure |
| scimax.export.pdf.cleanAuxFiles | boolean | true | Clean auxiliary files on success |
| scimax.export.pdf.profile | string | "" | Build profile to use by default |
| scimax.export.pdf.profiles | object | {} | Build profiles defined inline |
scimax.export.pdf.compiler
Type: string (enum)
Default: "latexmk-lualatex"
Options: "latexmk-lualatex", "latexmk-pdflatex", "latexmk-xelatex", "lualatex", "pdflatex", "xelatex"
Description: LaTeX compiler to use for PDF generation
latexmk-*: Uses latexmk which automatically handles multiple passes for references and bibliography (recommended)Direct compilers: Manual handling of bibliography passes
Example:
{
"scimax.export.pdf.compiler": "latexmk-xelatex"
}
scimax.export.pdf.bibtexCommand
Type: string (enum)
Default: "bibtex"
Options: "biber", "bibtex"
Description: Bibliography processor (only used when not using latexmk)
bibtex: Traditional, works with .bst stylesbiber: Modern, required for biblatex
Example:
{
"scimax.export.pdf.bibtexCommand": "biber"
}
scimax.export.pdf.shellEscape
Type: string (enum)
Default: "restricted"
Options: "restricted", "full", "disabled"
Description: Shell escape mode for LaTeX compilation
restricted: Allows minted/pygments but blocks dangerous commands (safe default)full: Allows all shell commands (security risk, but needed for some packages)disabled: No shell escape
Example:
{
"scimax.export.pdf.shellEscape": "full"
}
scimax.export.pdf.extraArgs
Type: string
Default: ""
Description: Extra arguments to pass to the LaTeX compiler
Example:
{
"scimax.export.pdf.extraArgs": "-synctex=1"
}
scimax.export.pdf.openLogOnError
Type: boolean
Default: true
Description: Automatically open the log file when PDF compilation fails
scimax.export.pdf.cleanAuxFiles
Type: boolean
Default: true
Description: Clean up auxiliary files (.aux, .bbl, .blg, etc.) after successful compilation
⚠️ scimax.export.pdf.profile
Type: string
Default:
""Description: Name of the build profile to use when a document does not choose one with
#+LATEX_BUILD:and no nearbylatex-profiles.jsondeclares adefault. Set tononeto always usescimax.export.pdf.compiler.
Example:
{
"scimax.export.pdf.profile": "lualatex-biber"
}
⚠️ scimax.export.pdf.profiles
Type: object
Default:
{}Description: Build profiles defined in settings, in the same shape as a
latex-profiles.jsonfile'sprofilesobject. These override the built-in profiles of the same name and are available in every workspace, trusted or not. Project-locallatex-profiles.jsonfiles override these in turn.
Example:
{
"scimax.export.pdf.profiles": {
"thesis": {
"description": "lualatex with biber and a glossary",
"steps": [
{ "command": "lualatex", "args": ["-interaction=nonstopmode", "%f"] },
{ "command": "biber", "args": ["%b"], "whenFileExists": "%b.bcf" },
{ "command": "makeglossaries", "args": ["%b"], "whenFileExists": "%b.glo" },
{ "command": "lualatex", "args": ["-interaction=nonstopmode", "%f"] },
{ "command": "lualatex", "args": ["-interaction=nonstopmode", "%f"] }
]
}
}
}
%f is the file name and %b the base name without extension - the form
bibtex and biber expect. See Build Profiles for the full token and step
reference.
LaTeX Preview Settings
Configure inline LaTeX equation previews.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.latexPreview.enabled | boolean | true | Enable LaTeX preview on hover |
| scimax.latexPreview.cacheEnabled | boolean | true | Cache rendered equations |
| scimax.latexPreview.darkModeAware | boolean | true | Adjust rendering for dark themes |
Detailed Configuration
scimax.latexPreview.enabled
Type: boolean
Default: true
Description: Enable LaTeX equation preview on hover
Example:
{
"scimax.latexPreview.enabled": true
}
scimax.latexPreview.cacheEnabled
Type: boolean
Default: true
Description: Cache rendered equations for faster hover responses
Example:
{
"scimax.latexPreview.cacheEnabled": true
}
scimax.latexPreview.darkModeAware
Type: boolean
Default: true
Description: Automatically adjust equation rendering for dark/light themes
Example:
{
"scimax.latexPreview.darkModeAware": true
}
LaTeX Live Preview Settings
Configure automatic PDF building and live preview.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.latexLivePreview.buildOnSave | boolean | true | Auto-rebuild PDF on save |
| scimax.latexLivePreview.buildOnIdle | boolean | false | Auto-rebuild after idle period |
| scimax.latexLivePreview.idleDelay | number | 2000 | Idle delay in milliseconds |
| scimax.latexLivePreview.compiler | string | "pdflatex" | LaTeX compiler to use |
| scimax.latexLivePreview.useLatexmk | boolean | true | Use latexmk for smart builds |
Detailed Configuration
scimax.latexLivePreview.buildOnSave
Type: boolean
Default: true
Description: Automatically rebuild PDF when the org file is saved
Example:
{
"scimax.latexLivePreview.buildOnSave": true
}
scimax.latexLivePreview.buildOnIdle
Type: boolean
Default: false
Description: Automatically rebuild PDF after idle period (no typing)
Example:
{
"scimax.latexLivePreview.buildOnIdle": true,
"scimax.latexLivePreview.idleDelay": 3000
}
scimax.latexLivePreview.idleDelay
Type: number
Default: 2000
Description: Delay in milliseconds before idle build triggers
Example:
{
"scimax.latexLivePreview.buildOnIdle": true,
"scimax.latexLivePreview.idleDelay": 5000
}
scimax.latexLivePreview.compiler
Type: string (enum)
Default: "pdflatex"
Options: "pdflatex", "xelatex", "lualatex"
Description: LaTeX compiler to use
pdflatex: Standard, fast
xelatex: Better Unicode and font support
lualatex: Modern, Lua scripting support
Example:
{
"scimax.latexLivePreview.compiler": "xelatex"
}
scimax.latexLivePreview.useLatexmk
Type: boolean
Default: true
Description: Use latexmk for smart incremental builds (recommended). Automatically handles multiple passes for references, bibliography, etc.
Example:
{
"scimax.latexLivePreview.useLatexmk": true
}
Notebook Settings
Configure the project-based notebook system.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.notebook.directory | string | "" | Default parent directory |
| scimax.notebook.defaultTemplate | string | "research" | Default template |
| scimax.notebook.autoDetect | boolean | true | Auto-detect projects |
Detailed Configuration
scimax.notebook.directory
Type: string
Default: ""
Description: Default parent directory for new notebooks
Example:
{
"scimax.notebook.directory": "~/projects"
}
scimax.notebook.defaultTemplate
Type: string (enum)
Default: "research"
Options: "empty", "research", "software", "notes"
Description: Default template for new notebooks
empty: Minimal structure
research: Research project layout
software: Software development layout
notes: Note-taking layout
Example:
{
"scimax.notebook.defaultTemplate": "software"
}
scimax.notebook.autoDetect
Type: boolean
Default: true
Description: Automatically detect and track projects in workspace
Example:
{
"scimax.notebook.autoDetect": false
}
✅ Highlighting Settings
Configure the visual decoration of org headings and source blocks.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.highlighting.headingBackgroundBars | boolean | true | Tinted whole-line background behind each org heading |
Detailed Configuration
scimax.highlighting.headingBackgroundBars
Type: boolean
Default:
trueDescription: Show a tinted whole-line background behind each org heading, fading at deeper levels.
The bar color for each level is configured via the workbench color
customizations scimax.heading1Background ... scimax.heading6Background.
Override them in settings.json under workbench.colorCustomizations to
match your theme:
{
"scimax.highlighting.headingBackgroundBars": true,
"workbench.colorCustomizations": {
"scimax.heading1Background": "#3b82f622",
"scimax.heading2Background": "#3b82f618",
"scimax.heading3Background": "#3b82f614",
"scimax.heading4Background": "#3b82f610",
"scimax.heading5Background": "#3b82f60c",
"scimax.heading6Background": "#3b82f608"
}
}
The matching foreground colors for each heading level are exposed as the
orgHeading1 ... orgHeading6 semantic token types and can be themed via
editor.semanticTokenColorCustomizations.
Speed Commands Settings
Configure org-mode style speed commands.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.speedCommands.enabled | boolean | true | Enable speed commands at heading start |
Detailed Configuration
scimax.speedCommands.enabled
Type: boolean
Default: true
Description: Enable org-mode speed commands (single-key shortcuts at beginning of headings)
When enabled, you can use single-key shortcuts (like `n', `p', `u') when the cursor is at the beginning of a heading line.
Example:
{
"scimax.speedCommands.enabled": true
}
Agenda Settings
Configure the agenda view and TODO tracking.
Settings Overview
The agenda is now a view over the Scimax database. Indexing scope
(what files exist in the database, and therefore what's eligible for
the agenda) is controlled by scimax.db.* settings. The
scimax.agenda.* settings below are display-only.
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.agenda.exclude | array | See below | Hide from view (still index) |
| scimax.agenda.defaultSpan | number | 7 | Days to show in agenda |
| scimax.agenda.showDone | boolean | false | Show completed items |
| scimax.agenda.showHabits | boolean | true | Show habit-tagged items |
| scimax.agenda.todoStates | array | ["TODO", "NEXT", "WAITING"] | Active TODO states |
| scimax.agenda.doneStates | array | ["DONE", "CANCELLED"] | Completed states |
The following scimax.agenda.* settings are deprecated — they have
no effect. Use the scimax.db.* equivalents instead:
| Deprecated | Use instead |
|---|---|
| scimax.agenda.includeJournal | scimax.db.includeJournal |
| scimax.agenda.includeWorkspace | scimax.db.includeWorkspace |
| scimax.agenda.includeProjects | scimax.db.includeProjects |
| scimax.agenda.include | scimax.db.include |
| scimax.agenda.maxFiles | (no longer applicable) |
| scimax.agenda.batchSize | (no longer applicable) |
| scimax.agenda.batchDelayMs | (no longer applicable) |
On activation, Scimax shows a one-shot toast if any deprecated agenda indexing setting is set non-default in your config.
Detailed Configuration
scimax.agenda.exclude
Type: array of strings
Default:
["**/node_modules/**", "**/.git/**", "**/archive/**"]Description: Patterns or paths to hide from the agenda view. Files matching these stay in the database (search still finds them); they just don't show up in day/week/month views. Supports both glob patterns (containing
*) and absolute paths. To not index a file at all, usescimax.db.excludeinstead.
Example:
{
"scimax.agenda.exclude": [
"**/node_modules/**",
"**/.git/**",
"**/archive/**",
"~/org/scratch.org"
]
}
scimax.agenda.defaultSpan
Type: number
Default: 7
Description: Default number of days to show in agenda view
Example:
{
"scimax.agenda.defaultSpan": 14
}
scimax.agenda.showDone
Type: boolean
Default: false
Description: Show completed (DONE) items in agenda view
Example:
{
"scimax.agenda.showDone": true
}
scimax.agenda.showHabits
Type: boolean
Default: true
Description: Show items tagged with :HABIT:
Example:
{
"scimax.agenda.showHabits": false
}
scimax.agenda.todoStates
Type: array of strings
Default: ["TODO", "NEXT", "WAITING"]
Description: Active TODO states to show in TODO list
Example:
{
"scimax.agenda.todoStates": [
"TODO",
"NEXT",
"IN-PROGRESS",
"WAITING",
"SOMEDAY"
]
}
scimax.agenda.doneStates
Type: array of strings
Default: ["DONE", "CANCELLED"]
Description: Completed TODO states
Example:
{
"scimax.agenda.doneStates": [
"DONE",
"CANCELLED",
"DEFERRED",
"ARCHIVED"
]
}
Image Overlay Settings
Configure inline image thumbnails in org-mode files.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.imageOverlays.enabled | boolean | true | Enable inline image thumbnails |
| scimax.imageOverlays.maxWidth | number | 96 | Maximum thumbnail width in pixels |
| scimax.imageOverlays.maxHeight | number | 96 | Maximum thumbnail height in pixels |
| scimax.imageOverlays.renderMode | string | "gutter" | Where to display thumbnails |
| scimax.imageOverlays.onlyWhenCursorNotInLink | boolean | true | Hide when cursor in link |
| scimax.imageOverlays.excludePatterns | array | [ ] | Regex patterns to exclude |
| scimax.imageOverlays.maxOverlaysPerDocument | number | 200 | Max overlays per document |
| scimax.imageOverlays.showDimensions | boolean | true | Show image dimensions |
| scimax.imageOverlays.cacheEnabled | boolean | true | Cache generated thumbnails |
Detailed Configuration
scimax.imageOverlays.enabled
Type: boolean
Default: true
Description: Enable inline image thumbnails in org-mode files
Example:
{
"scimax.imageOverlays.enabled": true
}
scimax.imageOverlays.maxWidth
Type: number
Default: 96
Description: Maximum width in pixels for thumbnail icons
Example:
{
"scimax.imageOverlays.maxWidth": 128
}
scimax.imageOverlays.maxHeight
Type: number
Default: 96
Description: Maximum height in pixels for thumbnail icons
Example:
{
"scimax.imageOverlays.maxHeight": 128
}
scimax.imageOverlays.renderMode
Type: string (enum)
Default: "gutter"
Options: "gutter", "after", "both"
Description: Where to display image thumbnails
gutter: In the line margin (gutter)
after: Inline emoji after the link
both: Both locations
Example:
{
"scimax.imageOverlays.renderMode": "both"
}
scimax.imageOverlays.onlyWhenCursorNotInLink
Type: boolean
Default: true
Description: Hide overlay when cursor is inside the image link (prevents interference with editing)
Example:
{
"scimax.imageOverlays.onlyWhenCursorNotInLink": true
}
scimax.imageOverlays.excludePatterns
Type: array of strings
Default: [ ]
Description: Regex patterns for image paths to exclude from overlays
Example:
{
"scimax.imageOverlays.excludePatterns": [
".*\\.ico$",
".*thumbnail.*"
]
}
scimax.imageOverlays.maxOverlaysPerDocument
Type: number
Default: 200
Description: Maximum number of image overlays to display per document (prevents performance issues)
Example:
{
"scimax.imageOverlays.maxOverlaysPerDocument": 500
}
scimax.imageOverlays.showDimensions
Type: boolean
Default: true
Description: Show image dimensions in the after-content decoration
Example:
{
"scimax.imageOverlays.showDimensions": false
}
scimax.imageOverlays.cacheEnabled
Type: boolean
Default: true
Description: Cache generated thumbnails for faster loading
Example:
{
"scimax.imageOverlays.cacheEnabled": true
}
Capture Settings
Configure the org-capture system for quick note-taking.
Settings Overview
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.capture.templates | array | [ ] | Capture templates |
| scimax.capture.defaultFile | string | "" | Default capture file |
| scimax.capture.defaultDirectory | string | "" | Base directory for relative template paths |
| scimax.capture.showPreview | boolean | true | Show preview before inserting a capture |
| scimax.capture.openAfterCapture | boolean | true | Open the target file after capture |
| scimax.capture.datetreeFormat | string | "day" | Datetree granularity: day / week / month |
Detailed Configuration
scimax.capture.templates
Type: array of objects
Default: [ ]
Description: Capture templates for quick note-taking. Each template has:
key: Single character shortcut
name: Template name
type: entry, item, or table-line
file: Target file
headline: Optional target headline
datetree: Boolean, use datetree structure
template: Template text with placeholders
Template placeholders:
%^{prompt}: Prompt for input
%t: Current timestamp
%T: Current timestamp with time
%i: Initial content (selected text)
%a: Link to current location
%?: Cursor position after insertion
Example:
{
"scimax.capture.templates": [
{
"key": "t",
"name": "Task",
"type": "entry",
"file": "~/org/todo.org",
"headline": "Tasks",
"template": "* TODO %^{Task}\n SCHEDULED: %t\n %?"
},
{
"key": "n",
"name": "Note",
"type": "entry",
"file": "~/org/notes.org",
"datetree": true,
"template": "* %^{Title}\n %T\n\n %?"
},
{
"key": "m",
"name": "Meeting",
"type": "entry",
"file": "~/org/meetings.org",
"template": "* Meeting: %^{Topic}\n %T\n\n Attendees: %^{Attendees}\n\n Notes:\n %?"
}
]
}
✅ scimax.capture.defaultFile
Type: string
Default: "" (falls back to {scimax.directory}/notes.org)
Description: Default file for captures when no target file is specified in template
Example:
{
"scimax.capture.defaultFile": "~/Documents/inbox.org"
}
✅ scimax.capture.defaultDirectory
Type: string
Default: ""
Description: Base directory for resolving relative capture template file paths (supports ~). If empty, relative paths resolve against the default capture file's directory.
Example:
{
"scimax.capture.defaultDirectory": "~/org"
}
✅ scimax.capture.showPreview
Type: boolean
Default: true
Description: Show a preview of the expanded template before inserting the capture.
✅ scimax.capture.openAfterCapture
Type: boolean
Default: true
Description: Open the target file and move the cursor to the insertion point after a capture.
✅ scimax.capture.datetreeFormat
Type: string (enum)
Default: "day"
Options: "day", "week", "month"
Description: Granularity for
file+datetreecapture targets — controls the heading tree that captures are filed under. Missing headings are created automatically.day:
* 2024>** 2024-04 April>*** 2024-04-15 Monday(entry at level 4)week:
* 2024>** 2024-W16(ISO week; entry at level 3)month:
* 2024>** 2024-04 April(entry at level 3)
Week mode uses the ISO week-numbering year, so a date in early January that belongs to the previous ISO year is filed under that year.
Example:
{
"scimax.capture.datetreeFormat": "week"
}
Common Configurations
This section provides complete `settings.json' examples for different use cases.
Academic Writing Setup
Perfect for researchers, graduate students, and academic writers:
{
// Journal for daily research log
"scimax.journal.directory": "~/research/journal",
"scimax.journal.format": "org",
"scimax.journal.autoTimestamp": true,
// References and bibliography
"scimax.ref.bibliographyFiles": [
"~/research/bibliography/main.bib",
"~/research/bibliography/conferences.bib"
],
"scimax.ref.pdfDirectory": "~/research/papers",
"scimax.ref.notesDirectory": "~/research/notes",
"scimax.ref.defaultCiteStyle": "citep",
// Database and search
"scimax.db.include": [
"~/research",
"~/teaching"
],
"scimax.db.autoIndex": true,
"scimax.db.embeddingProvider": "ollama",
"scimax.db.ollamaModel": "nomic-embed-text",
// LaTeX export and preview
"scimax.latexPreview.enabled": true,
"scimax.latexPreview.darkModeAware": true,
"scimax.latexLivePreview.buildOnSave": true,
"scimax.latexLivePreview.compiler": "pdflatex",
"scimax.latexLivePreview.useLatexmk": true,
// Agenda for deadlines and tasks
"scimax.agenda.include": [
"~/research/projects",
"~/teaching"
],
"scimax.agenda.defaultSpan": 14,
"scimax.agenda.showDone": false,
"scimax.agenda.todoStates": ["TODO", "NEXT", "WAITING", "REVIEW"],
"scimax.agenda.doneStates": ["DONE", "PUBLISHED"],
// Capture templates
"scimax.capture.templates": [
{
"key": "p",
"name": "Paper Note",
"type": "entry",
"file": "~/research/notes/papers.org",
"template": "* %^{Title}\n :PROPERTIES:\n :CITE: %^{Citation key}\n :END:\n\n %?"
},
{
"key": "i",
"name": "Research Idea",
"type": "entry",
"file": "~/research/ideas.org",
"datetree": true,
"template": "* %^{Idea}\n %T\n\n %?"
}
]
}
Software Development Setup
Optimized for software developers and programmers:
{
// Journal for development log
"scimax.journal.directory": "~/devlog",
"scimax.journal.format": "markdown",
"scimax.journal.template": "daily-standup",
// Code execution
"scimax.literate.pythonPath": "~/.pyenv/shims/python",
"scimax.literate.jupyterPath": "~/.pyenv/shims/jupyter",
// Database - index project documentation
"scimax.db.include": [
"~/projects",
"~/docs"
],
"scimax.db.exclude": [
"**/node_modules/**",
"**/.git/**",
"**/dist/**",
"**/build/**",
"**/.venv/**",
"**/target/**"
],
"scimax.db.autoIndex": false,
"scimax.db.embeddingProvider": "ollama",
"scimax.db.ollamaUrl": "http://localhost:11434",
"scimax.db.ollamaModel": "nomic-embed-text",
// Notebooks for project organization
"scimax.notebook.directory": "~/projects",
"scimax.notebook.defaultTemplate": "software",
"scimax.notebook.autoDetect": true,
// Agenda for issue tracking
"scimax.agenda.include": [
"~/projects"
],
"scimax.agenda.defaultSpan": 7,
"scimax.agenda.todoStates": ["TODO", "IN-PROGRESS", "BLOCKED", "REVIEW"],
"scimax.agenda.doneStates": ["DONE", "WONTFIX", "DUPLICATE"],
// Capture for quick notes and TODOs
"scimax.capture.templates": [
{
"key": "t",
"name": "TODO",
"type": "entry",
"file": "~/projects/todo.org",
"headline": "Inbox",
"template": "* TODO %^{Task}\n SCHEDULED: %t\n %a\n %?"
},
{
"key": "b",
"name": "Bug",
"type": "entry",
"file": "~/projects/bugs.org",
"template": "* TODO [BUG] %^{Description}\n %T\n\n Steps to reproduce:\n %?\n\n Expected:\n Actual:"
}
],
// Disable image overlays for cleaner code view
"scimax.imageOverlays.enabled": false
}
Personal Notes & PKM Setup
For personal knowledge management and note-taking:
{
// Journal
"scimax.journal.directory": "~/notes/journal",
"scimax.journal.format": "org",
"scimax.journal.weekStartsOn": "monday",
"scimax.journal.autoTimestamp": true,
// Database with semantic search
"scimax.db.include": [
"~/notes",
"~/books",
"~/articles"
],
"scimax.db.exclude": [
"**/archive/**",
"**/temp/**"
],
"scimax.db.autoIndex": true,
"scimax.db.embeddingProvider": "ollama",
"scimax.db.ollamaModel": "nomic-embed-text",
// References for reading notes
"scimax.ref.bibliographyFiles": [
"~/notes/reading.bib"
],
"scimax.ref.pdfDirectory": "~/books",
"scimax.ref.notesDirectory": "~/notes/reading-notes",
// Agenda for personal tasks
"scimax.agenda.include": [
"~/notes"
],
"scimax.agenda.defaultSpan": 7,
"scimax.agenda.showDone": false,
"scimax.agenda.showHabits": true,
"scimax.agenda.todoStates": ["TODO", "NEXT", "WAITING", "SOMEDAY"],
"scimax.agenda.doneStates": ["DONE", "CANCELLED"],
// Image overlays for visual notes
"scimax.imageOverlays.enabled": true,
"scimax.imageOverlays.maxWidth": 128,
"scimax.imageOverlays.maxHeight": 128,
"scimax.imageOverlays.renderMode": "both",
// Rich capture templates
"scimax.capture.templates": [
{
"key": "n",
"name": "Note",
"type": "entry",
"file": "~/notes/inbox.org",
"template": "* %^{Title}\n %T\n\n %?"
},
{
"key": "b",
"name": "Book Note",
"type": "entry",
"file": "~/notes/books.org",
"template": "* %^{Book Title}\n :PROPERTIES:\n :AUTHOR: %^{Author}\n :GENRE: %^{Genre}\n :RATING: %^{Rating (1-5)}\n :END:\n\n %?"
},
{
"key": "j",
"name": "Journal Entry",
"type": "entry",
"file": "~/notes/journal.org",
"datetree": true,
"template": "* %^{Entry}\n %T\n\n %?"
},
{
"key": "t",
"name": "Task",
"type": "entry",
"file": "~/notes/tasks.org",
"headline": "Inbox",
"template": "* TODO %^{Task}\n SCHEDULED: %t\n %?"
}
],
// Hydra menu settings
"scimax.hydra.showKeyHints": true,
"scimax.hydra.singleKeySelection": true
}
Minimal Configuration
Bare-bones setup with just the essentials:
{
"scimax.journal.directory": "~/journal",
"scimax.db.autoIndex": false,
"scimax.agenda.include": ["~/notes"]
}
Troubleshooting
Database Performance
If database indexing is slow or uses too much memory:
{
"scimax.db.autoIndex": false,
"scimax.db.exclude": [
"**/node_modules/**",
"**/.git/**",
"**/dist/**",
"**/build/**",
"**/*.min.js",
"**/archive/**"
]
}
Then manually trigger indexing with C-S-P → "Scimax: Sync Files"
Jupyter Kernels Not Found
Ensure Jupyter is in your PATH or specify the full path:
{
"scimax.literate.jupyterPath": "/usr/local/bin/jupyter"
}
Check available kernels with C-S-P → "Scimax: Show Available Jupyter Kernels"
LaTeX Preview Not Working
Ensure you have a LaTeX distribution installed (TeX Live, MiKTeX, etc.), then:
{
"scimax.latexPreview.enabled": true,
"scimax.latexPreview.cacheEnabled": false
}
Semantic Search Not Working
Ensure the Ollama server is running and the embedding model is pulled:
curl http://localhost:11434/api/version