Skip to content

Releases: fbobe321/omniterm

v0.1.54

Choose a tag to compare

@fbobe321 fbobe321 released this 03 Jul 17:24

OmniTerm v0.1.54

Configurable keyboard shortcuts

Common tasks now have keyboard shortcuts, including Ctrl+Shift+Z to switch to the next tab (and Ctrl+Shift+A for previous).

Settings -> Keyboard Shortcuts... opens an editor listing every action with its current binding - click a field and press the keys to rebind it. Changes save to your config and apply immediately; there's a Reset to Defaults button.

Default bindings: New Session (Ctrl+N), Home Terminal (Ctrl+H), Local Terminal (Ctrl+T), Next/Prev Tab (Ctrl+Shift+Z / Ctrl+Shift+A), Close Tab (Ctrl+W), Rename Tab (F2), Save/Open Layout (Ctrl+Shift+S / Ctrl+Shift+O), Keyboard Shortcuts (Ctrl+K), plus unbound Split actions you can assign.

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm

v0.1.53

Choose a tag to compare

@fbobe321 fbobe321 released this 02 Jul 23:32

OmniTerm v0.1.53

Cursor jump: frame-aligned rendering

Each fix narrowed the window (1/s -> 2/s -> 3/s). Root remedy: the terminal now buffers incoming data and writes it to xterm once per animation frame, so everything received within a frame is written and rendered as one atomic unit. This is platform-independent - it covers SSH, local (Linux/macOS), and local Windows terminals (the last had no coalescing before). The reader-side idle-gap was also widened slightly for SSH network jitter.

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm

v0.1.52

Choose a tag to compare

@fbobe321 fbobe321 released this 02 Jul 20:54

OmniTerm v0.1.52

Cursor jump: stronger coalescing

0.1.51 helped (you had to type faster to trigger it) but the drain only merged bytes that were already buffered - if the line reprint arrived a millisecond after the carriage-return, it still split into two renders. Now the reader waits a few ms for more output after each read (idle-gap, capped at 20ms) so the whole redraw merges into a single write and renders atomically. Latency stays imperceptible.

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm

v0.1.51

Choose a tag to compare

@fbobe321 fbobe321 released this 02 Jul 20:48

OmniTerm v0.1.51

Fix: cursor jumps backward while typing fast (real root cause)

Your clue that it's speed-dependent was the key. Fast typing makes the shell's line editor (readline) redraw the whole input line - carriage-return then reprint. If that redraw reached the terminal split across two separate writes, xterm rendered the in-between frame (cursor at the start of the line) - the backward-then-forward jump. Typing slowly, each key is a simple echo with no redraw.

Fix: OmniTerm now drains all available output into a single write (for both SSH and local terminals) so a redraw is delivered and rendered atomically, uses larger read buffers, and enables GPU rendering for the embedded browser. The blinking block cursor is restored.

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm

v0.1.50

Choose a tag to compare

@fbobe321 fbobe321 released this 02 Jul 20:41

OmniTerm v0.1.50

Cursor: switch to a bar cursor

The block cursor covers the character cell it sits on, so as it moves the character underneath appears to redraw - the likely cause of the 'cursor steps back then forward with the letter' effect (blink off alone didn't fix it). Switched to a thin bar cursor, which doesn't occlude any character.

Layouts: remember custom tab names

Saved layouts now capture and restore custom tab titles (if you renamed a tab, that name comes back on restore).

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm

v0.1.49

Choose a tag to compare

@fbobe321 fbobe321 released this 02 Jul 20:33

OmniTerm v0.1.49

Fix: cursor stepping backward then redrawing while typing

This affected every session (SSH and local) since early versions. Cause: with the blinking block cursor, xterm renders the cursor on a throttled timer that lags the character write - so the cursor briefly stayed on the previous cell (looking like it jumped back over the last letter) then caught up. Disabling cursor blink makes the cursor track input in lockstep, so no more backward jump.

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm

v0.1.48

Choose a tag to compare

@fbobe321 fbobe321 released this 02 Jul 20:25

OmniTerm v0.1.48

Fix: cursor jumps back then redraws (Windows local terminals)

On Windows, local/Home terminals are backed by ConPTY (via pywinpty), which redraws the input line by repositioning the cursor - so each keystroke looked like the cursor stepped back and the letter re-appeared. OmniTerm now enables xterm.js Windows-PTY mode for local/Home terminals, which handles ConPTY's redraws correctly. SSH sessions (remote) are unaffected.

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm

v0.1.47

Choose a tag to compare

@fbobe321 fbobe321 released this 02 Jul 20:16

OmniTerm v0.1.47

Drag to reorder tabs

Terminal tabs are now movable - drag them along the tab bar to reorder.

Typing flicker (stronger fix)

The terminal now uses the WebGL GPU renderer (falling back to canvas, then DOM). This should eliminate the remaining per-keystroke flicker that the canvas renderer didn't fully fix inside Qt WebEngine.

Layouts: auto-capture conda env

Save Current Layout now queries each shell (via an invisible OSC marker) for its current directory and active conda environment, pre-filling each terminal's init as cd <path> && conda activate <env>. Still fully editable before saving.

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm

v0.1.46

Choose a tag to compare

@fbobe321 fbobe321 released this 02 Jul 20:07

OmniTerm v0.1.46

Save & restore layouts (workspaces)

Save your open workspace and bring it back later - sessions, split arrangement, working directories, and env activations.

  • Sessions -> Save Current Layout...: names the layout and captures every open tab and its split grouping. Each terminal gets an editable init command pre-filled with its known directory (cd <path>) - add && conda activate <env> (or anything) per pane.
  • Sessions -> Open Layout...: pick a saved layout to re-open all its sessions, recreate the splits, and run each init command after connecting. (Also lets you Delete layouts.)

Works for SSH, local, and Home terminals. Init runs on the remote for SSH and locally for local/home.

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm

v0.1.45

Choose a tag to compare

@fbobe321 fbobe321 released this 02 Jul 19:59

OmniTerm v0.1.45

Fix: activity dot

Two fixes to the tab activity indicator:

  • It no longer blinks forever - the dot now stops ~2.5s after output ends (it indicates active output, not just unread).
  • It no longer changes the tab width - every tab keeps a fixed-size icon slot and the blink swaps a blue dot with a same-size transparent icon, so tabs stay put.

Upgrade

python -m pip install --upgrade --no-cache-dir omniterm