User Interface
Shortcut notation: Ctrl means Ctrl on Windows/Linux and Cmd on macOS. Platform-specific shortcuts spell out Cmd when they differ from this convention.
Widgets
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.
- Formula Book
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.
- Constants
The constants widget shows a large list of scientific constants (including CODATA-based entries), grouped by category and subcategory.
The list columns are:
NameSymbol(when available)ValueUnit(when available)Identifier(built-in constant key, typicallyk_*)
Use the
CategoryandSubcategoryselectors to narrow the list. The search field matches by name, symbol, and identifier.Double-clicking an entry inserts its
Identifierinto the editor.
- User Variables
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.
- Functions and User Functions
Similar to the variables widget, these show built-in and user-defined functions respectively.
- User Units
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.
- Bit Field
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.
- Keypad
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 asDisabledwhen 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, orEvaluate expressionThe text to insert (for
Insert textbehavior)
The dialog also includes a
Copy presetselector with an Apply button, so you can start from theBasic,Scientific (wide), orScientific (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 .
New 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.
- History
The history widget lists all previous inputs. Double-click a line to recall it. Note that the main result display also provides this functionality.
- Main Menu
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.
New in version 1.0.
Session Tabs and Panes
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.
Expression Editor Features
The expression editor provides some advanced features:
- Automatic closing parentheses and square brackets
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.
- Autocompletion
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.
- Function signature tooltip
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.
- Quick constant insertion
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).
- Context help
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.
- Selection results
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.
Import/Export
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.
User Definitions
New 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.
Settings
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.
Result Display Interactions
The result display supports mouse-driven interactions for navigation and editing.
- Right-click context menu
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.
New in version 1.0.
- Hover highlighting of calculation blocks
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.
New in version 1.0.
- History rewriting from highlighted blocks
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.
New in version 1.0.
- Calculation settings from highlighted blocks
The calculation settings action opens a tabular layout with one mandatory
Main Linerow 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.
Notation
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 aspi/2,7⋅pi/6,1/2,sqrt(2)/2, andsqrt(3)/3. Example:arcsin(1) = pi/2 sin(45) (angle mode = degree) = √(2)/2 arcsin(sqrt(3)/22) = 0.07881114207211010205
New 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.
New in version 1.0.
Angle Mode
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.
New 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.
New in version 1.0.
Complex Numbers
Configure global complex-number behavior via . Complex numbers are always enabled.
Use
ias the imaginary unit symbol.
Use
jas 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.
Number Format
Choose how decimal numbers are displayed and interpreted via .
New 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.
History Size Limit
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.
New in version 1.0.
Window
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.
Results
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 Linerow 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 asm/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.4gives the following interpretation and simplification:2.1 − 1 ⋅ cos²(π) ⋅ cos(π) ⋅ 5 ⋅ cos(π) / (−cos²(π)) + 3.4 = 5 ⋅ cos²(π) + 5.5 = 10.5
New in version 1.0.
Editing
Controls which entities are included in editor autocompletion. All options are enabled by default.
Built-in functionsincludes built-in function names.Built-in variablesincludes built-in constant names.Unitsincludes spelled-out unit names (for example,meter).User functionsincludes user-defined function names.User variablesincludes user-defined variable names.
The autocomplete popup also shows category icons for suggestions.
New in version 1.0.
If a new expression starts with
+,-,*, or/, SpeedCrunch insertsansfirst.
Show or hide the
Type an expression herehint 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:
Neveralways moves the cursor inside the editor.Always(default) always navigates history.Only for Single-Line Expressionsnavigates history only when the expression fits in one visual line; otherwise, it moves the cursor.
New in version 1.0.
User Interface Settings
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
backgroundcolor 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 aprimarycolor.The Colors area provides per-role color selection buttons showing both the
#RRGGBBvalue 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-schemessubdirectory 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 optionalprimary. The editor surface and scrollbar colors are generated frombackground. For the full schema, see Theme JSON Schema.New 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.
New in version 1.0.
Keyboard Shortcuts
Editing
- Ctrl+O
Open session.
- Ctrl+Q
Quit SpeedCrunch (Cmd+Q on macOS).
- Ctrl+N
Create a new session in the current session pane.
- Ctrl+T (Cmd+T on macOS)
Create a new session tab in the current session pane.
- Ctrl+Shift+T
Reopen the most recently closed session tab.
- Ctrl+C
Copy selected text to clipboard.
- Ctrl+R
Copy last result to clipboard.
- Ctrl+V
Paste from clipboard.
- Ctrl+A
Select entire expression.
- Ctrl+( or Ctrl+)
Wrap the current selection in parentheses. If no text is selected, the entire expression is wrapped.
Session Tabs
- Cmd+Alt+Left and Cmd+Alt+Right (macOS)
Move to the previous or next session tab or pane.
- Ctrl+Page Up and Ctrl+Page Down (Windows/Linux)
Move to the previous or next session tab or pane.
Widgets and Docks
- Ctrl+1
Show/hide formula book.
- Ctrl+2
Show/hide constants widget.
- Ctrl+3
Show/hide functions widgets.
- Ctrl+4
Show/hide variables widget.
- Ctrl+5
Show/hide user functions widget.
- Ctrl+6
Show/hide user units widget.
- Ctrl+7
Show/hide history widget.
- Ctrl+8
Show/hide bit field dock.
- Ctrl+B
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.
Scrolling
- Page Up and Page Down
Scroll the result window page-wise.
- Shift+Page Up and Shift+Page Down
Scroll the result window line-wise.
- Cmd+Page Up and Cmd+Page Down (macOS)
Scroll to the top or bottom of the result window.
Notation
- F2
Set result notation to automatic decimal.
- F3
Set result notation to fixed-point decimal.
- F4
Set result notation to engineering decimal.
- F5
Set result notation to scientific decimal.
- F7
Set result notation to octal.
- F8
Set result notation to hexadecimal.
- F9
Set result notation to sexagesimal.
- F10
Set result notation to binary.
New in version 1.0.
Various
- F1
Show context help (dismiss with Escape).
New in version 0.12.
- F11
Toggle full screen.
- Ctrl + mouse wheel, Shift + mouse wheel, or Shift+Up and Shift+Down
Change the font size.
- Ctrl+Shift + mouse wheel
Change the window opacity.
New in version 0.12.
Footnotes