Headline Features
- Directory tabs in each panel.
- Trash support -
F8now moves to the freedesktop trash instead of unlinking. - SSH key authentication, so hosts with
PasswordAuthentication nowork. - Permission-denied recovery - retry a refused file operation as root instead of losing the whole transfer.
- Content search worth using - streaming, regex-capable, with line numbers.
- System clipboard over OSC 52, working across SSH and tmux.
- Panels refresh themselves when something else changes the directory.
Added
Directory tabs
Each panel keeps as many open directories as you like.
Ctrl-Nopens a tab,Alt-Kcloses one,Ctrl-PageDown/Ctrl-PageUpcycle them, andAlt-Jlists them to pick from.Ctrl-Tabalso works on terminals that don't reserve it.- A tab remembers its directory, view format, sort, filter, marks and cursor.
- Local tabs are restored on the next run (
panel_tabs/panel_tab_activeinconfig.toml). - The tab strip only appears once a panel has more than one tab.
- New tab, Close tab and Next tab are in the command palette.
Trash
F8moves the selection to the freedesktop trash (~/.local/share/Trash), written natively rather than by shelling out togio— so GNOME Files, Dolphin andgio trash --listall see it and can restore it.Shift-F8(orCtrl-F8, for terminals that don't report Shift-F8) deletes permanently, with its prompt drawn in the red danger style.- Files on another mount go to a trash directory on their own volume (
$topdir/.Trash/$uid, else.Trash-$uid), as the spec requires. A cross-filesystem trash is a real copy, so it shows progress and can be aborted. - Command palette gains a Go to Trash entry and a Use trash bin toggle (
use_trashinconfig.toml). - Linux/BSD only. macOS and Windows keep deleting permanently — their recycle bins need formats/APIs
rcdoes not speak. - Never applies to remote panels or inside archives: there is nowhere to move the file to, so
F8deletes outright and says so.
SSH key authentication
- SFTP/SCP now authenticate the way
sshitself does: ssh-agent first, then key files (~/.ssh/id_ed25519,id_ecdsa,id_rsa, or one named in the connect dialog), then the password. - An encrypted key prompts for its passphrase.
- Unknown host keys are recorded in
~/.ssh/known_hostson first use; a changed host key is refused. - The chosen key file is remembered per saved server (
key_file; passphrases are never stored).
Permission-denied recovery for file operations
When a copy/move/delete is refused for lack of permissions, the operation pauses on that file and offers to:
- retry it as root (asking for your sudo password once, the way the disk manager does),
- skip just that file, or
- skip every later one,
instead of failing the whole operation.
Change directory on exit
rc --print-last-dir <FILE>writes the directory the active panel was showing when it quit.- Shell wrappers ship for bash/zsh (
rc.sh) and fish (rc.fish) - source one and usercd. The PowerShell equivalent is documented in the README. - On a remote or in-archive panel it falls back to that panel's last local directory, so you always land somewhere your shell can go.
Content search in Find file
- The Content field now uses the same matcher as the viewer's and editor's search, with a new Content is a regular expression checkbox. Case sensitive applies to it too.
- Files are read in streaming windows rather than loaded whole, so searching a tree of large files costs a fixed amount of memory. Previously every candidate file was read entirely into RAM, lowercased, and scanned with a plain substring match.
- Files that look binary (a NUL byte near the start) are skipped, as
grepdoes. - Results record the matching line, and
F3on a hit opens the viewer at that line.
System clipboard (Ctrl-Ins)
- Copies the cursor's path, or every marked path one per line, to the system clipboard. File → Copy path to clipboard, and three palette entries (full path / bare name / selection).
- In the editor,
Ctrl-CandCtrl-Xnow put the marked block on the system clipboard as well as the editor's own. - Uses the terminal's OSC 52 sequence rather than a clipboard daemon, so it needs no X or Wayland session and works over SSH — copying on a remote server lands the text on the clipboard of the machine in front of you. tmux and GNU screen are wrapped for automatically (tmux needs
set -g allow-passthrough on). - Oversized copies (>64 KiB) are refused rather than truncated, since a half-written sequence would silently replace the clipboard with a fragment.
- Copy-out only: terminals disable clipboard reads by default, so
Ctrl-Vin the editor keeps pasting from the editor's own clipboard. - Copying stuff from the editor or viewer no longer keeps trailing spaces when doing so from your terminal.
Auto-refreshing panels
- A panel re-reads itself when something else changes the directory it is showing — a command in the subshell, a build in another window, a file arriving over the network.
Ctrl-Rstill works but is rarely needed. - The cursor stays on the same file by name and marks survive.
- Events are coalesced: one
cporgit checkoutproduces one re-listing, about a third of a second after things go quiet. - Local directories only — a remote panel, an archive, and a find-results listing have nothing to watch (re-reading a results listing would throw the results away). Watching is non-recursive.
- Toggle Auto-refresh panels in the command palette, or set
auto_refresh = falseinconfig.toml.
Changed
- Copies preserve the source's timestamp and permissions, like
cp -p. Re-running a directory sync therefore only moves what actually changed. Ctrl-Inserton a panel now copies to the clipboard. It previously fell through to the plain-Inserthandler and tagged the file.
Configuration
New keys in config.toml:
| Key | Default | Meaning |
|---|---|---|
use_trash
| true
| F8 moves to the trash instead of unlinking
|
auto_refresh
| true
| Re-read a panel when its directory changes on disk |
panel_tabs
| []
| Each panel's saved directory tabs |
panel_tab_active
| 0
| Which tab each panel had open |
key_file (per saved server)
| ""
| SSH key to use; blank means agent / default keys |
Full Changelog: v1.7.7...v1.8.0