Profiles & Keybindings
A Profile (.profile JSON file) defines everything OpenSpace loads at startup: which .asset files are enabled, the initial camera position, starting simulation time, and custom hotkeys.
Creating & Editing Show Profiles
Always clone a built-in profile into ${USER}/data/profiles/ rather than editing default profiles inside ${BASE}.
- Launch the OpenSpace Launcher and click Edit next to a base profile (such as
defaultormessenger), or select New Profile. - Save the profile into your
${USER}/data/profiles/directory so it persists across OpenSpace updates.
Screenshot Placeholder: profile-editor-overview.png
- Crop: Capture the Profile Editor window showing the main section list.
- Callouts: (1) Assets list (adding/removing
.assetmodules), (2) Time & Camera startup state, (3) Actions & Keybindings buttons, (4) Save location indicator (${USER}/data/profiles).
Actions & Custom Keybindings
In OpenSpace, keyboard shortcuts do not trigger raw Lua directly—they trigger named Actions, which in turn execute Lua scripts.
Step 1: Create an Action
- Inside the Profile Editor, open Actions Add Action.
- Assign a unique Identifier (e.g.,
custom.toggle_earth_labels), a UI Name, a GUI Path (e.g.,/Custom Show/Labels), and paste the Lua command(s) to execute. - Toggle Local / Sync depending on whether the action should broadcast across multi-node cluster displays.
Step 2: Bind the Action to a Key
- Open Keybindings in the Profile Editor and click Add Keybinding.
- Press the desired key combination (e.g.,
Shift+L) and select your Action's Identifier from the dropdown.
Overriding Default Keybindings Safely
Built-in profiles load default hotkeys from ${BASE}/data/assets/base_keybindings.asset. If you want to remap or disable factory keys (for example, preventing accidental Spacebar pauses or R resets during a live show):
- Method A (Profile Override): Bind a new Action (or an empty no-op Action) to the same key inside your
.profile. Profile keybindings load afterbase_keybindings.assetand take priority. - Method B (User Asset Override): Copy
base_keybindings.assetinto${USER}/data/assets/base_keybindings.assetand edit theopenspace.keybinding.setKeyBinding(...)entries directly. Because OpenSpace resolves${USER}/data/assets/before${BASE}/data/assets/, your copy overrides the default cleanly without touching factory files.
Avoid Loopback Key Conflicts
When chaining Actions or creating custom keybindings, never bind a key to a Lua script that simulates pressing that same key (openspace.keybinding...), which creates an infinite execution loop.