Shortcut notation: Ctrl means Ctrl on Windows/Linux and Cmd on macOS. Platform-specific shortcuts spell out Cmd when they differ from this convention.
Apart from the main display, SpeedCrunch offers a number of extra panels, referred to as widgets here. Most of them are dockable panels that can be moved around the main window and enabled or disabled via the menu.
The formula book provides access to commonly used formulas and calculations. Simply insert a formula into the expression editor by clicking on it.
You can help expanding the formula book by posting your requests to the issue tracker.
The constants widget shows a large list of scientific constants (including CODATA-based entries), grouped by category and subcategory.
The list columns are:
Name
Symbol (when available)
Value
Unit (when available)
Identifier (built-in constant key, typically k_*)
Use the Category and Subcategory selectors to narrow the list.
The search field matches by name, symbol, and identifier.
Double-clicking an entry inserts its Identifier into the editor.
The variables widget lists all user-defined variables. Any of them can be inserted into the editor by double-clicking it. Additionally, it is possible to delete a variable by selecting it and pressing the Delete key on your keyboard.
Similar to the variables widget, these show built-in and user-defined functions respectively.
Similar to the user functions widget, this lists user-defined units.
Double-click inserts [name] in the editor, and the context menu supports edit/delete operations.
The bit field dock is designed to make working with binary numbers easier. It shows a field of 64 squares, each representing a bit in the current result. Any bit can be toggled by clicking its square; the resulting number is automatically inserted into the editor. Additional buttons allow you to shift, invert and reset all the bits at once. While the mouse cursor is hovering over the bit field, scrolling the mouse wheel will also shift the bits.
The on-screen keypad provides clickable input for common operations and symbols. It supports multiple presets and a custom layout, so you can adapt it to your workflow. You can also adjust the keypad zoom level for better readability or touch area on touchscreens. For fast and full-featured input, SpeedCrunch’s keyboard interface is still recommended.
Available entries in are:
Basic (default)
Scientific (wide)
Scientific (narrow)
Custom...
Disable (shown as Disabled when selected)
Available entries in are:
100% (default)
150%
200%
The zoom level scales the keypad buttons, including their text. Each window keeps its own zoom level. The Zoom submenu is unavailable while the keypad is disabled.
Custom... opens a dialog where you can define the keypad matrix size (rows and columns)
and configure each button individually. For each position in the matrix, you can set:
The button label shown in the keypad
The button behavior: Insert text, Backspace, Clear expression, or Evaluate expression
The text to insert (for Insert text behavior)
The dialog also includes a Copy preset selector with an Apply button,
so you can start from the Basic, Scientific (wide), or
Scientific (narrow) layout and then customize it.
Custom keypad settings are saved and restored automatically.
You can also right-click directly on the keypad to open the same menu as .
Added in version 1.0.
Changed in version 0.11: The keypad was removed in SpeedCrunch 0.11; however, it was added back in 0.12.
The history widget lists all previous inputs. Double-click a line to recall it. Note that the main result display also provides this functionality.
Toggle the main menu bar visibility via . This option is available on Windows and Linux. On macOS, this option is not available because the application menu is managed by the system menu bar (outside the window), so SpeedCrunch cannot hide it like on Windows and Linux. On Windows and Linux, when the top main menu is hidden, a navigable Main Menu (mirroring the top menu structure) is available from the right-click context menu on the result-display.
Added in version 1.0.
When a pane contains more than one session, SpeedCrunch shows a tab bar above the result display. Click a tab to switch sessions, drag tabs horizontally to reorder them within the pane, or drag a tab away from the tab bar to move it to another pane. Dropping a dragged tab outside the current window creates a new window for that session; dropping it on a pane in another SpeedCrunch window moves it there. Use to open a blank session in a new window that copies the current window and dock layout. When SpeedCrunch restores multiple windows after a restart, each window keeps its own dock layout, dock visibility, keypad visibility, layout and zoom, and—when window position saving is enabled—its own size and position.
The expression editor provides some advanced features:
Typing ( or [ with no text selected inserts the matching closing
character only when the cursor is at the end of the expression or only
whitespace follows it. The cursor stays between the pair. If non-whitespace
text follows the cursor, only the opening character is inserted.
If you start typing a name (e.g. of a variable, function, or unit), a pop-up with matching names will appear below the editor, aligned with the start of the name being completed. It appears above the editor when there is insufficient space below and shifts horizontally to stay on screen. The list becomes shorter and scrollable when needed to avoid covering the editor. On Wayland with Qt 6.6 or later, the compositor chooses below or above according to the available screen space. With older Qt versions on Wayland, the list stays within the application window. Alignment follows the visible text even when the expression wraps or scrolls. Press Tab to insert the current suggestion. Pressing Enter evaluates the expression by default. If you explicitly navigate the popup with arrow/page/home/end keys or click a suggestion with the mouse, then Enter accepts that selected suggestion. Pressing Escape dismisses the autocomplete popup.
While typing a function call, the live result area can show the function signature (parameter list). The parameter currently being edited is highlighted. This also works for user-defined functions. Pressing Escape will dismiss the tooltip.
Press Ctrl+Space to open a list of constants that allows quick access to the same constants as the constants widget (see above).
Use the arrow keys to navigate the list. Pressing Escape will dismiss this popup.
The list follows the cursor’s horizontal position and uses the same below-or-above placement rules as autocompletion.
Selecting an entry inserts its identifier (for example k_speed_of_light_in_vacuum).
Pressing F1 will show the manual page for the function under the cursor, providing quick access to detailed usage information for a function. Pressing Escape will dismiss the manual window again.
If is enabled, selecting a partial expression in the expression editor or in the result display will show you the result of the selected expression. You can dismiss this preview by pressing Escape or by clicking the × button at the top-right corner of the preview.
SpeedCrunch automatically stores your sessions and lets you restore them with . Use to open the folder where SpeedCrunch stores these session files when you want to back them up or clean them up manually. You can also export the current session as JSON () and later import it with . The data is stored in a SpeedCrunch-specific file format. [1] While the session files are human-readable, they are designed for use by SpeedCrunch. If you want to export your calculations to work on them in another program or hand them to a colleague, the other export options are preferable.
Import validates the selected JSON file as a SpeedCrunch session and opens it as a new tab. If the file is not valid SpeedCrunch session JSON, SpeedCrunch shows an error and leaves the current session unchanged.
You can export the session as HTML (). The resulting file will consist of the contents of the result display and can be viewed in any web browser. This feature can also be used to print a SpeedCrunch session by printing the exported HTML document. Since the syntax highlighting and color scheme are maintained in the HTML output, it is recommended to select a color scheme with a white background (e.g. Standard) prior to exporting if you intend to print the document.
The final, most basic option is to export your session as a plain text file (). In contrast to the HTML export option, the syntax highlighting will be lost.
Added in version 1.0.
To define user variables, user functions and user units that are loaded globally, use .
This dialog provides:
A multi-line editor (one definition per line), with syntax highlighting and line numbers.
A clear reminder that these definitions are global, loaded into every session and override same-name session definitions.
Apply to apply definitions immediately.
Validate to validate and preview results without applying.
When applying or testing, SpeedCrunch reports:
Imported variable count
Imported function count
Imported unit count
Line numbers with errors
Invalid definitions are ignored. Variable definitions that evaluate to NaN are also ignored.
SpeedCrunch’s behavior can be customized to a large degree using the configuration options in the menu. This section explains the settings that are available.
The result display supports mouse-driven interactions for navigation and editing.
Right-clicking an expression/calculation block in the result display opens a context menu for that specific block. This menu includes an entry to toggle the main menu bar visibility.
Added in version 1.0.
When is enabled, moving the mouse over the result display highlights the calculation block under the cursor. The highlighted block also shows quick-action icons for deleting, editing, and copying.
Added in version 1.0.
From the hovered/highlighted calculation block, you can re-edit an earlier expression and apply it as a history rewrite. SpeedCrunch then recalculates all expressions below that edited entry.
Added in version 1.0.
The calculation settings action opens a tabular layout with one mandatory
Main Line row and four optional extra result-line rows. The table
shows line enablement, notation, and decimal places together so the stored
calculation context can be adjusted before SpeedCrunch
recalculates the affected history.
This section allows selecting the result notation to use (for example in or from the status-bar notation selector). You can select one of the following options. On first launch, the default is .
Use fixed-point decimal form for most results; values with exponent larger than 14 or smaller than -9 are shown in scientific notation. With a finite precision setting, very small values may switch to scientific notation earlier.
Display results in fixed-point decimal form. For excessively large or small numbers, this format may still fall back to scientific notation.
Display results in engineering notation. This is a variant of scientific notation in which the exponent is divisible by three.
Display results in normalized scientific notation.
Try to display real results as fractions (for example, 1/3) using continued-fraction approximation with bounded denominator. If no close match is found, results are displayed in decimal form.
For common trigonometric and inverse-trigonometric results, SpeedCrunch prefers
symbolic exact forms such as pi/2, 7⋅pi/6, 1/2, sqrt(2)/2,
and sqrt(3)/3.
Example:
arcsin(1)
= pi/2
sin(45) (angle mode = degree)
= √(2)/2
arcsin(sqrt(3)/22)
= 0.07881114207211010205
Added in version 1.0.
Display results as binary numbers, i.e. in base-2.
Display all results as octal numbers, i.e. in base-8.
Display all results as hexadecimal numbers, i.e. in base-16.
Display dimensionless and time results as sexagesimal values, i.e. with minutes and seconds. All other results are displayed in fixed-point decimal form.
Added in version 1.0.
Select the angular unit to be used in calculations. For functions that operate on angles, notably the
trigonometric functions like sin() or cos(), this setting
determines the angle format of the arguments.
Use radians for angles. A full circle corresponds to an angle of 2π radians.
Use degrees for angles. A full circle corresponds to an angle of 360°.
Use gradians for angles. A full circle corresponds to an angle of 400 gradians.
Added in version 1.0.
Use turns for angles. A full circle corresponds to an angle of 1 turn.
Use revolutions for angles. A full circle corresponds to an angle of 1 revolution.
Added in version 1.0.
Configure global complex-number behavior via . Complex numbers are always enabled.
Use i as the imaginary unit symbol.
Use j as the imaginary unit symbol.
Display complex results in rectangular form.
Display complex results in exponential form.
Display complex results in trigonometric form.
Display complex results in cis form.
Display complex results in phasor form.
When the angle mode is set to radians, simple phase multiples of pi are
shown symbolically in these complex forms. Other angle modes show their numeric
phase values.
Choose how decimal numbers are displayed and interpreted via .
Added in version 1.0.
This dialog replaces the older separate Radix Character and Digit Grouping menus with a single combined Number Format selection.
The default option is no digit grouping with dot decimal separator
(1234567.12345).
Additional options let you choose:
no digit grouping with dot or comma decimal separator
SI grouping with space separators (integer and fractional grouped in 3s)
3-digit grouping with comma, dot, space, or underscore
Indian/South Asian 3-2-2 grouping with comma separators
Some options include grouped fractional digits; those are separate explicit choices.
The apostrophe ('), commonly used as a thousands separator in some
locales and contexts (for example Switzerland, Liechtenstein, and some
technical writing in Austria/Germany), is intentionally not offered because
SpeedCrunch reserves it for sexagesimal notation.
For input, SpeedCrunch remains permissive across styles to support copy/paste from other applications. In clear mixed-separator cases, it accepts the number and normalizes it by ignoring non-digit grouping characters as needed.
This setting controls how calculation history is stored for the active session. It is available from .
Calculation history is saved automatically when a session changes and restored on the next launch.
The history size limit sets the maximum number of stored history entries for
that session. By default, SpeedCrunch keeps up to 1000 entries per session and
automatically removes the oldest ones when this limit is exceeded. When a
calculation fills the last available history slot, SpeedCrunch warns that future
calculations will remove the oldest calculation from that session. Set the value
to 0 to disable the limit for the active session.
Added in version 1.0.
This section contains settings that control the main window behavior.
Controls if the window position is saved and restored.
Keep the SpeedCrunch window on top of other windows. This option is hidden on Wayland (non-X11 Linux desktop sessions), because many Wayland compositors do not honor it reliably. It remains available on Windows, macOS, and Linux X11 sessions.
This section contains settings that control result output and post-evaluation behavior.
If set, SpeedCrunch will display partial results as you type your expression as well as results when selecting a partial expression in the editor.
Open the number-format dialog and pick one combined setting for decimal separator and digit grouping. See Number Format.
Open a tabular layout with one mandatory Main Line row and four
optional extra result-line rows. Each row has columns for enabling the
line, notation, and decimal places. Extra lines are ignored unless their
row is enabled.
Applying changes from this dialog updates only the current editor previews immediately (live/selection) without rewriting already displayed calculation history.
Choose how displayed results are rounded when formatting to a finite number of digits. The default is . Available modes are: , , , , .
Round to nearest; ties increase magnitude. This matches the
round() function.
Example at 1 fractional digit: 2.250 -> 2.3,
-2.250 -> -2.3.
Round to nearest; ties go to the nearest even last kept digit. This is
Banker’s rounding and matches the roundeven() function.
Example at 1 fractional digit: 2.250 -> 2.2,
2.350 -> 2.4, -2.250 -> -2.2.
Discard extra digits without rounding up. This matches the
trunc() function.
Example at 1 fractional digit: 2.290 -> 2.2,
-2.290 -> -2.2.
Always round upward. This matches the ceil() function.
Example at 1 fractional digit: 2.210 -> 2.3,
-2.210 -> -2.2.
Always round downward. This matches the floor() function.
Example at 1 fractional digit: 2.290 -> 2.2,
-2.210 -> -2.3.
This setting affects result formatting (including live previews), not the numeric value of expressions. Use the named function in parentheses when a calculation must apply the same rounding strategy explicitly. Like other result-format settings, changes apply to subsequent calculations and previews; already stored history entries keep their original display.
Configure the imaginary unit and complex result form. See Complex Numbers.
Configure whether unit results use exponential notation, such as
m·s⁻¹, or fractional notation, such as m/s.
Automatically copy each newly evaluated result to the clipboard.
When enabled (default), SpeedCrunch adds an extra symbolic line before numeric results, simplifying the interpreted expression for readability (for example, combining repeated factors into powers and folding simple constant terms). This interpreted line also makes implicit-multiplication association explicit. Disable this option to keep only the unsimplified interpreted expression and numeric results.
Entering the expression 2.1 − 1 cos(pi)^2 cos(pi) 5 cos pi / −cos^2(pi) + 3.4
gives the following interpretation and simplification:
2.1 − 1 ⋅ cos²(π) ⋅ cos(π) ⋅ 5 ⋅ cos(π) / (−cos²(π)) + 3.4
= 5 ⋅ cos²(π) + 5.5
= 10.5
Added in version 1.0.
Controls which entities are included in editor autocompletion. All options are enabled by default.
Built-in functions includes built-in function names.
Built-in variables includes built-in constant names.
Units includes spelled-out unit names (for example, meter).
User functions includes user-defined function names.
User variables includes user-defined variable names.
The autocomplete popup also shows category icons for suggestions.
Added in version 1.0.
If a new expression starts with +, -, *, or /, SpeedCrunch inserts ans first.
Show or hide the Type an expression here hint when there are no calculations in history.
If selected, the entered expression remains in the editor after evaluating it.
Controls whether Up and Down in the editor navigate history:
Never always moves the cursor inside the editor.
Always (default) always navigates history.
Only for Single-Line Expressions navigates history only when the
expression fits in one visual line; otherwise, it moves the cursor.
Added in version 1.0.
Open the theme dialog. Themes are listed in Light Themes and Dark Themes groups. Selecting a theme updates the preview immediately. When no saved theme preference exists, as on first launch, SpeedCrunch uses the Duskfox theme.
The Preview area shows representative result-display and
editor content so that syntax-highlighting, result, and background colors
are visible while editing. The selected background color generates
nearby OKLCH surface colors for the expression editor and surrounding
application chrome, followed by progressively offset surface colors for
dock titles, dock controls and table headers, dock search and content
areas, pane splitters, and scrollbars. It also generates the
primary/accent color unless the theme specifies a primary color.
The Colors area provides per-role color selection buttons showing
both the #RRGGBB value and the actual color. Changing any color creates a
custom theme based on the current selection.
The dialog also includes:
Import… to copy a theme JSON file into SpeedCrunch’s user theme directory and refresh the theme lists;
Export… to save the current theme as JSON in the same user theme directory.
Import and export refuse theme names that collide with built-in themes. Import asks for confirmation before overwriting an existing custom theme.
SpeedCrunch also supports loading additional theme files from the following directory:
Windows: C:/Users/<USERNAME>/AppData/Roaming/SpeedCrunch/color-schemes/
Linux/Unix: ~/.local/share/SpeedCrunch/color-schemes/
Linux (Flatpak): ~/.var/app/org.speedcrunch.SpeedCrunch/data/SpeedCrunch/color-schemes/
OS X: ~/Library/Application Support/SpeedCrunch/color-schemes/
Portable version (any OS): color-schemes subdirectory in the
application directory.
Theme files use JSON and map role names to color values. Supported role names are:
number, parens, list, unit, result, comment,
function, operator, variable, separator, background,
and optional primary. The editor surface and scrollbar colors are
generated from background.
For the full schema, see Theme JSON Schema.
Added in version 1.0: The dialog, including live preview and JSON import/export.
Select the font to use for the expression editor and result display.
Enable or disable syntax highlighting.
Enable or disable hover highlighting.
Select the user interface language.
Trigger an update check and show information when a newer version is available.
Added in version 1.0.
Open session.
Quit SpeedCrunch (Cmd+Q on macOS).
Create a new session in the current session pane.
Create a new session tab in the current session pane.
Reopen the most recently closed session tab.
Copy selected text to clipboard.
Copy last result to clipboard.
Paste from clipboard.
Select entire expression.
Wrap the current selection in parentheses. If no text is selected, the entire expression is wrapped.
Move to the previous or next session tab or pane.
Move to the previous or next session tab or pane.
Show/hide formula book.
Show/hide constants widget.
Show/hide functions widgets.
Show/hide variables widget.
Show/hide user functions widget.
Show/hide user units widget.
Show/hide history widget.
Show/hide bit field dock.
Show/hide the status bar. The status bar provides quick selectors for , , and . On narrow windows, selectors that do not fully fit are hidden automatically. Status bar visibility is set separately for each window; the main menu always shows and changes the setting for the active window. Angle mode, notation, and precision selections are also retained separately for each window.
Scroll the result window page-wise.
Scroll the result window line-wise.
Scroll to the top or bottom of the result window.
Set result notation to automatic decimal.
Set result notation to fixed-point decimal.
Set result notation to engineering decimal.
Set result notation to scientific decimal.
Set result notation to octal.
Set result notation to hexadecimal.
Set result notation to sexagesimal.
Set result notation to binary.
Added in version 1.0.
Show context help (dismiss with Escape).
Added in version 0.12.
Toggle full screen.
Change the font size.
Change the window opacity.
Added in version 0.12.
Footnotes