Repository navigation
Releases: omnipty-terminal/omnipty
Release list
OmniPTY v0.9.0
Changed
- Oxide is now OmniPTY. Same terminal, new name: there's an unrelated
company called Oxide and the clash was confusing people. If you already had
Oxide installed, this update does the move for you: the app becomes
OmniPTY.app, yourconfig.toml, themes and pinned workspaces are copied
to~/.config/omniptyand~/.cache/omnipty(the old directories are left
as they were), andtheme = "oxide"still selects the same palette, now
also calledomnipty. Shells getOMNIPTY_SESSIONandOMNIPTY_VERSION;
the oldOXIDE_*names stay exported through 0.9.x, so update any
dotfiles that read them before 0.10. A Dock icon pinned to the old
Oxide.apppath needs re-adding. Homebrew users:brew upgradestill
works once, then switch casks withbrew uninstall --cask oxide-terminal && brew install --cask omnipty-terminal/tap/omnipty. The website is now
omnipty.com; the old addresses redirect. OMNIPTY_MANIFEST_URLpoints the updater at a different manifest, for
testing a release before it's published.
Oxide v0.8.2
Changed
- What's New opens on its own after this update (instead of the usual
toast), so the note above about the upcoming rename is seen once. The
next update goes back to the toast.
Security
- The status bar and file tree poll
git statusin whatever directory a
pane is in. Git runs thecore.fsmonitorcommand from a repository's own
.git/configduringstatus, so an unpacked archive or shared folder
carrying a planted one could run code the moment youcdinto it. Those
polls, and the git segment of Oxide's generated prompt, now switch
fsmonitor off. - Dragging a file into the terminal, "Insert Path", and the
cdfallback
used without shell integration type the quoted path at the prompt. A
filename holding control characters (^U, carriage return) could clear
the line and run a command of its own. Such names are refused with a
notice instead. - OSC 8 hyperlinks only open
http,httpsandmailtotargets. Because
the link's text can say anything, a hiddenfile://or app-scheme target
could launch something on a cmd-click. While you hold cmd over a link,
the real address is shown in the pane's corner, browser-style, and the
whole link is underlined rather than one cell. - OSC 7 working-directory reports are ignored while the pane's foreground
process isssh, so a remote host can't point the file tree and git
status at a local directory of its choosing.
Oxide v0.8.1
Fixed
- A markdown preview (and Help → What's New) now re-flows to fit its pane
when the pane is resized. A preview opened in a thin split stayed that
thin after the split was widened; now the text, tables and code boxes
are laid out again for the new width. - Running
source ~/.bashrcin a bash tab no longer crashes the shell.
Re-running starship's setup wrapped Oxide's prompt hook inside
starship's, and the two then called each other until bash ran out of
stack and segfaulted, taking the tab's unsaved history with it. The hook
now notices when it is already running and steps aside, and sourcing
Oxide's own init file twice can no longer make it call itself.
Oxide v0.8.0
Added
- Inline images. Oxide now draws the pictures programs send, over all three
protocols in use: kitty graphics (kitten icat, yazi, snacks.nvim,
timg), iTerm2's (imgcat,wezterm imgcat) and sixel (img2sixel,
lsix,chafa -f sixel). PNG, JPEG, WebP and GIF (the first frame) are
all read, and on a Retina display images are drawn at the display's full
resolution. A picture is part of the scrollback like the text around it:
it scrolls, survives a window resize and a font zoom, goes when you
clearor presscmd-k, and a selection copied across one is just the
text. kitty's Unicode placeholders are supported, which is what lets
images through tmux (set -g allow-passthrough on). Not there yet:
animation, and kitty's layers — text printed over an image replaces that
part of it instead of sitting on top. A new[images]section has
enabled, andmemory_limitfor how much decoded image memory a pane may
hold (128 MB by default). - Opening a picture shows the picture.
enteron a PNG, JPEG, GIF, WebP or
BMP in the file tree — or picking one in thecmd-pfinder, or
cmd-clicking its path in output — opens it in a tab of its own, scaled
down to fit when it's larger than the pane. Any key closes it. Set
images.preview_in = "split"to have it open beside what you're doing
instead. It used to be handed to$EDITORlike any other file.
Changed
- Programs now see Oxide for what it is, and see its real size.
TERM_PROGRAMis alwaysOxide— a shell launched from another terminal
used to inherit that terminal's name, and tools would speak its dialect.
The window's pixel size is reported in real device pixels (it used to be
in points, rounded down, so image tools on a Retina display drew at half
resolution), and stays right after a font zoom or a move to another
display. Queries for the cell size (CSI 16 t) and the terminal's name
and version (XTVERSION) are answered where they used to be ignored. With
images on, the device-attributes reply is now?62;4;22crather than
?6c: the4is how sixel programs learn they can draw. Worth knowing if
anything of yours matched the old value.
Oxide v0.7.3
Fixed
- A startup command that opens an interactive session —
ssh -tinto
another machine, a REPL — now shows what you type when your shell is bash.
bash handed the command its line editor's terminal settings, with echo
off, andsshcarried them over to the remote machine: the remote prompt
came up, but your typing stayed invisible. zsh wasn't affected.
Oxide v0.7.2
Added
- The text inputs — the command palette, the file finder, command history,
the new/rename/move prompts, startup commands, and the tree's filter — now
take the mouse and a selection. Click to put the cursor somewhere, drag or
shift-click to select, or holdshiftwith any of the keys that move the
cursor (shift-←,shift-opt-←,shift-cmd-→…). Typing or pasting
replaces the selection. In the palette, finder, history, prompts and
startup commands,cmd-aselects everything andcmd-c/cmd-x/
cmd-vcopy, cut and paste (ctrl-shift-on Linux).
Changed
- A new app icon: the terminal prompt in a ring that's rusting away at one
edge. It's in the Dock, the Linux app menu and on oxideterminal.com.
Fixed
- A long startup command wraps onto more lines instead of running off the
edge of its box, both while you type it and in the list of a workspace's
commands. The other inputs wrap the same way.
Oxide v0.7.1
Added
bell = "sound"now plays the system bell sound on Linux, through
canberra-gtk-playorpaplay. With neither installed, it falls back to
the visual flash. ((#4),
thanks @agustux for contributing!)- Dragging a file or directory in the file tree scrolls the tree when the
drag nears its top or bottom edge, so a destination that's out of view is
one drag away instead of a drag, a scroll, and another drag. - The file tree keeps a strip of empty space at the bottom of its panel. A
tree full of directories used to leave nowhere to drop for the root; now
there always is, wherever the tree is scrolled to. - The file tree's right-click menu does more. On a file or directory it adds
Rename… and Delete (to the Trash, after the sameythedkey
asks for); on a directory, New file or folder… inside it. Right-click
the root's name at the top, or the empty space under the rows, to add to
the root. P(shift-p) in the file tree previews the selected markdown file, the
same as Preview markdown on right-click. It's thetree::preview
action, if you'd rather bind another key (palone is "select parent").- Selecting text with the mouse scrolls the terminal when the drag reaches
the pane's first or last row, and keeps scrolling for as long as you hold
it there — faster once you're past the pane's edge — so a selection can
run longer than the screen. - Each workspace in the drawer has a
×that deletes it, straight away.
dstill asks for ayfirst. tabs.close_last = "workspace" | "new_tab"chooses what closing a
workspace's last tab does."workspace"(the default, and how it has
always worked) closes the workspace with it, and the window with the last
workspace."new_tab"keeps the workspace and leaves it a fresh tab in
your home directory.- Double-click the drawer's right edge to put it back to
tree.width.
Fixed
- Text in the small input boxes (the palette, rename, the tree's filter and
prompts) stays put as the cursor moves through it. The caret used to push
the letters after it sideways, so they jiggled with every arrow key. - A tab's
×closes the whole tab when it's the workspace's last one, as it
does for any other tab. It used to close only the focused pane of a split. - A new workspace is named
workspace 1again once nothing else has that
name, and otherwise takes the lowest number that's free. The number used
to keep counting up for as long as the window was open, so deleting
workspace 1and adding another gave youworkspace 2. - A drag in a program that tracks the mouse (neovim, tmux, lazygit) keeps
going when the pointer leaves the pane: the program hears about the
nearest cell, and about the release. It used to hear nothing past the
pane's edge, so a neovim selection stopped scrolling there and the
program could be left thinking the button was still down. Drags are also
reported once per cell rather than sixty times a second on macOS. - A mouse selection that ends outside the pane it started in now ends there.
The pane used to miss the release and keep selecting the next time the
pointer crossed it with a button down.
Oxide v0.7.0
Added
-
Updates now come from downloads.oxideterminal.com and are signed. Oxide
checks each downloaded update against a key built into the app before
offering to install it, and never installs one that doesn't match — even if
the download or the server were tampered with. GitHub is no longer in the
update path on macOS, so the check works even when GitHub is rate-limiting
or down. Linux reads the same source to learn about a release; the pill
still opens the release page, since packages come from the AUR or the
tarball. -
Drag a file or directory in the file tree to move it: drop it on a
directory to move it inside, on a file to move it beside that file, or on
the empty space below the rows to move it to the tree's root. Nothing is
overwritten, same asm. -
Drag a workspace in the drawer to reorder it, the way tabs already work.
cmd-alt-1..9follow the new order, and so do pinned workspaces after a
restart. -
Drag the drawer's right edge to resize it. The width is remembered across
launches; changingtree.widthin the config resets it. -
markdown.preview_in = "tab" | "split"chooses where a markdown preview
opens."split"puts it beside the pane you're in, laid out for that
narrower width. The default is still a new tab. -
editor.open_in = "tab" | "split"chooses where a file opens when the
focused pane can't take it (see Fixed). The default is a new tab.
Changed
- The markdown preview (and Help → What's New) now reads all of markdown,
not the subset it used to. New:strikethrough,_underscore_
emphasis, lists nested to any depth with paragraphs and code inside
their items, numbered lists that keep their numbers, quotes inside
quotes, GitHub's> [!NOTE]alerts, footnotes, reference-style links,
<https://…>autolinks, headings underlined with===, indented code
blocks, definition lists, YAML front matter, and backslash escapes.
Styles nest properly, so a bold or struck-through sentence withcodein
it stays bold or struck through to its end. Long lines wrap under their
own text instead of back at the left edge, and blocks are set apart by a
blank line. - Adding, renaming, and moving in the file tree, and adding and renaming
workspaces, now ask for the name in a small modal in the middle of the
window, titled with what you're doing ("Rename main.rs"), instead of a
line squeezed into the drawer's footer. Renaming a tab uses the same one.
The tree's/filter stays in the drawer, next to the rows it filters.
Fixed
- The scroll wheel scrolls the view in Neovim, LazyGit, and other programs
that track the mouse. It was being sent as arrow keys, so it moved the
cursor instead. Programs that don't track the mouse (less,man) still
get arrow keys, and shift + scroll still bypasses the program. - Opening a second file from the file tree, the file finder, or a
cmd-clickwhile a terminal editor still has the first one open no longer
does nothing. The file opens in a new tab (or a split, with
editor.open_in) that closes when you quit the editor. The same goes for
Open Settings, and for any pane that's busy running something else. - macOS:
window.blur = trueblurs what's behind a translucent window
again. On recent macOS it did nothing, and windows behind Oxide showed
through sharp. window.opacitynow applies to the whole window evenly. The file tree,
tab bar, and status bar used to stay solid while the workspaces panel was
more see-through than the terminal. The terminal also came out more
opaque than the number you set (0.5 looked like 0.75); it now matches, so
an existing setting will look a little more transparent than before.
Panes dimmed bywindow.inactive_pane_opacitystay as see-through as the
focused one: only their contents fade, where before the dimming also made
them more solid.
The active tab is the same: lighter than the bar, not more solid.
Opening the command palette or any other modal no longer turns a
translucent window dark and solid; the modal simply sits on top.- Changing
window.opacityorwindow.blurin the config applies to open
windows straight away, including going between solid and translucent.
That used to need a restart. - A markdown preview or What's New page shorter than the pane opens at the
top of it, not pushed down to the bottom. - Text fields have a real cursor and word editing everywhere: the command
palette, command history, file finder, startup commands, the tree filter,
and the new prompt modal. Option+Left/Right move by word, Option+Delete
deletes the word before the cursor, Cmd+Left/Right jump to the ends, and
Cmd+Delete clears back to the start (Ctrl+arrows and Ctrl+Backspace on
Linux). Before, most of these fields could only append and backspace.
Oxide v0.6.3
Fixed
- macOS: Option+Left/Right now jump by word and Option+Delete deletes the
previous word in zsh and bash, matching Terminal.app and Ghostty. Before,
Option+arrows rang the bell and printed;3Dor;3C, and Option+Delete
only deleted one character. Works regardless ofoption_as_meta. Linux
keeps the standard xterm encoding for Alt+arrows, which tmux, vim and fish
depend on. (#3)
Oxide v0.6.2
Fixed
- Linux: the release tarball starts again on Ubuntu 24.04, Debian 12 and any
other distro with a glibc older than 2.44. Earlier tarballs were built on
Arch and inherited its glibc 2.44, so everywhere else they died with a
GLIBC_2.43 not founderror before a window appeared. Releases are now
built against glibc 2.35 — Ubuntu 22.04, Debian 12, Fedora 36 and
everything newer — and the packaging step refuses to ship a binary that
needs more. (#2)