Skip to main content

Guidelines

warning

This section is still being populated with content.

Use Shortcuts

Shortcuts drastically improve user experience.

UI Operations

  • New notebook: Cmd+N, Ctrl+N
  • Open file: Cmd+O, Ctrl+O
  • Save: Cmd+S, Ctrl+S
  • Open command palette: Cmd+P, Ctrl+P
  • Hide/Unhide current cell: Cmd+2, Alt+2
  • Clear outputs: Cmd+U, Alt+U
  • Search inside cell: Cmd+F, Ctrl+F
  • Overlay window (Desktop App only): Shift+Alt+Space

Evaluation

  • Evaluate: Shift+Enter
  • Abort: Cmd+., Alt+.
  • Evaluate initialization cells: Cmd+I, Alt+I

Cells

  • Ctrl+/: Make fraction from selection
  • Ctrl+6: Make superscript from selection
  • Ctrl+2: Make square root from selection
  • Ctrl+-: Make subscript from selection
  • Cmd+/ or Alt+/: Comment a line

See more keybindings in the Input cell section.

Keep Folders Organized

Various functions may produce Iconize objects, used for storing large data chunks, which are saved in the ./.iconized/ folder within the notebook directory. Any dropped images or files are uploaded to the ./attachments/ directory. It's important to maintain a clean folder structure to keep projects organized.

Use NotebookStore for Portability

To export your notebook as a single editable .html using Static HTML, use NotebookStore for storing raw data. This ensures all images, graphs, and stored data are preserved.

Install Everything Locally

We recommend storing all Wolfram Language libraries and paclets locally for each project. This ensures reliability, reproducibility, and independence from remote resources.

Example of a built-in package manager
PacletRepositories[{
Github -> "https://github.com/KirillBelovTest/GPTLink"
}]

<<KirillBelov`GPTLink`

This creates a folder with all the required paclets and keeps them up to date if needed.

Do Not Use Dynamic

We use a completely different architecture to handle interactivity and graphic updates compared to Wolfram Mathematica.

While Manipulate is implemented, frequent use is discouraged due to its impact on system performance.

Dynamic

Buttons and sliders are event-driven. You must subscribe to them using EventHandler. All updates are handled via the Offload mechanism. Example:

length = 1.0;
EventHandler[InputRange[-1, 1, 0.1], Function[l, length = l]]

Graphics[Rectangle[{-1, -1}, {length // Offload, 1}]]

Manipulate

For basic 2D plots, you can use the built-in ManipulatePlot or general-purpose Manipulate function.

For more complex and fast dynamics, you’ll need to build your own using Offload along with simple graphic primitives like Line, Polygon, and others as building blocks.