Skip to main content
Ganimede can be customized through a configuration file that controls the editor, output display, and canvas grid behavior.

Configuration File

The default configuration is located at:
api/defaults/gm.default.config.json

Configuration Options

Monaco Editor Settings

Customize the Monaco code editor appearance and behavior:
monaco.fontSize
number
default:"13"
Font size for code in the Monaco editor (in pixels).
monaco.lineNumbers
string
default:"on"
Display line numbers in the editor. Options: "on", "off", "relative", "interval".

Output Settings

Control how cell outputs are displayed:
outputs.fontSize
number
default:"14"
Font size for cell output text (in pixels).

Grid Settings

Configure the canvas grid snapping behavior:
grid.snap.x
number
default:"20"
Horizontal grid snap interval (in pixels).
grid.snap.y
number
default:"20"
Vertical grid snap interval (in pixels).

Default Configuration

Here’s the complete default configuration:
{
  "monaco": {
    "fontSize": 13,
    "lineNumbers": "on"
  },
  "outputs": {
    "fontSize": 14
  },
  "grid": {
    "snap": {
      "x": 20,
      "y": 20
    }
  }
}

Accessing Configuration

The configuration is loaded when the application starts:
  1. The frontend fetches configuration from the /config endpoint
  2. Configuration is stored in the config Svelte store
  3. Components can access config values using $config.monaco.fontSize, etc.

Editor Features

The Monaco editor in Ganimede includes these built-in features:
  • Font: Fira Code with ligatures support
  • Word Wrap: Enabled by default
  • Minimap: Disabled for cleaner interface
  • Theme: Automatically switches between light (Active4D) and dark (VS Dark) based on system preferences
  • Line Highlighting: Disabled for minimal distraction
  • Automatic Layout: Editor adjusts height based on content

Build docs developers (and LLMs) love