Terminal

Full-featured terminal with native shell integration, tmux, WebGL rendering, Nerd Font support, and SSH project shells.

Omnilib's Terminal provides a full-featured command-line interface with native shell integration. Run commands, execute scripts, and interact with your system — with a WebGL renderer, tmux integration, and support for multiple independent instances.

Overview

The Terminal offers:

  • Native shell — zsh, bash, or PowerShell
  • WebGL renderer — Smooth, GPU-accelerated output via xterm.js
  • Multiple instances — Open several terminals and move them between panels
  • tmux integration — Persistent sessions and split panes via tmux
  • SSH projects — Remote shells open automatically for SSH projects
  • Nerd Font support — Shell prompt icons and glyphs
  • Theme support — Matches your Omnilib theme
  • Search — Find text in terminal output
  • Persistence — Terminals survive tab switching

Getting Started

Opening a Terminal

  1. Click the terminal icon in the sidebar, or
  2. Press Cmd+` (Windows: Ctrl+`)

A new terminal opens in the current panel.

Running Commands

Type any command and press Enter:

$ ls -la
$ npm install
$ python script.py
$ git status

Multiple Terminal Instances

Open multiple terminals and arrange them freely:

  • Click + in the terminal panel to open a new instance.
  • Each instance is independent — separate shell processes, separate histories.
  • Drag a terminal tab to move it to a different panel or split.

Terminals persist across file tab switches. Switch to a code file and come back — the shell state, history, and output are all still there.

WebGL Renderer

The terminal renders output using xterm.js with the WebGL renderer. This uses GPU acceleration for smooth scrolling, fast rendering of large output, and correct glyph rendering for Nerd Fonts and special Unicode characters.

tmux Integration

tmux provides persistent terminal sessions that survive terminal panel closes and Omnilib restarts.

Setting up tmux

Click tmux in the terminal toolbar to open the tmux setup dialog. The dialog lets you:

  • Attach to an existing tmux session by name
  • Create a new named session
  • Choose a default tmux session for this project

Once set up, new terminals attach to the configured tmux session automatically.

tmux key bindings

tmux's standard key bindings work normally inside the terminal. The default prefix is Ctrl+B. Use tmux commands to create windows, split panes, and detach sessions as you normally would.

Tip: If you use tmux, set set -g mouse on in your ~/.tmux.conf to enable mouse support for pane switching and scrolling.

SSH Project Shells

When you open a terminal inside a Remote SSH project, the terminal automatically connects to the remote server:

ssh -t user@host

No additional configuration is needed. The shell runs on the remote machine, letting you run builds, manage files, and use git — all on the server.

Shell Support

Default Shell

Omnilib uses your system's default shell:

  • macOS — Usually zsh
  • Windows — PowerShell

Custom Shell

Set a specific shell in Settings > Terminal > Default Shell. Enter the full path (e.g., /bin/bash). New terminals use this shell.

Working Directory

Terminals open in your project root. Use cd to navigate.

  1. Press Cmd+F (Windows: Ctrl+F).
  2. Type your search term.
  3. Matches are highlighted in the output.

Navigate with Enter (next) and Shift+Enter (previous). Close search with Escape.

Nerd Font Support

The terminal renders Nerd Font glyphs correctly with the WebGL renderer. Install a Nerd Font for full shell prompt icon support:

  • MesloLGS NF
  • Hack Nerd Font
  • JetBrains Mono NF

Set the terminal font in Settings > Terminal > Font Family to your installed Nerd Font.

Theming

The terminal adapts to your Omnilib theme automatically:

  • Light — Light background, dark text, soft colors
  • Dark — Dark background, light text, GitHub Dark-inspired colors
  • Omni — Warm sepia background, high contrast text

Settings

Configure in Settings > Terminal:

SettingDescription
Default ShellShell program path
Font SizeTerminal text size
Font FamilyFont for terminal text (set a Nerd Font here)
Cursor StyleBlock, underline, or bar
Cursor BlinkAnimate the cursor
ScrollbackLines to keep in history

Keyboard Shortcuts

ActionShortcut
Open terminalCmd/Ctrl+`
SearchCmd/Ctrl+F
Clear screenCmd+K (Mac) / type clear
Cancel commandCtrl+C
End inputCtrl+D

Standard shell shortcuts also work: Ctrl+A (beginning of line), Ctrl+E (end of line), Ctrl+R (reverse search history).

Troubleshooting

Terminal Shows "Desktop Only"

The terminal requires the Omnilib desktop app. Web version cannot access the system shell.

Command Not Found

  • Check the command spelling.
  • Ensure the program is installed.
  • Check your PATH environment variable.

Shell Not Starting

  • Verify the shell path in Settings is correct.
  • Ensure the shell is installed on your system.
  • Reset to the default shell.

Font Icons Missing

  • Install a Nerd Font.
  • Set the terminal font in Settings > Terminal > Font Family.
  • Restart Omnilib.