Repository navigation
Releases: runa-fm/runa
Releases · runa-fm/runa
Release list
runa v0.15.1
Immutable
release. Only release title and notes can be modified.
Fix to tabs at startup.
Fixed
Tabs: Startup now loads the shown tab correctly.
Internal
Dependencies: Cargo update.
runa v0.15.0
Immutable
release. Only release title and notes can be modified.
Organization migration, crate rename, performance improvements and internal cleanup.
[BREAKING CHANGES]
-
runa has moved to the
runa-fm/runaGitHub organization. This includes the: -
crates.io: The crate is now published under the new name
runa-fm, replacingruna-tui.
Note: runa remains a TUI file manager, this change is solely for naming consistency. -
Migration Notice: Users who previously added the Scoop bucket or the Homebrew tap should update their tap/bucket references to the new locations.
- Homebrew:
brew uninstall runa brew untap alexm-dev/tap brew tap runa-fm/tap brew install runa
- Scoop:
scoop uninstall runa scoop bucket rm alexm-dev scoop bucket add runa-fm https://github.com/runa-fm/scoop-bucket scoop install runa
- Crates
cargo uninstall runa-tui cargo install runa-fm
Internal
- Frame: Compute frame layouts before drawing to the UI resulting in performance improvements.
- FileOp: Pass
FileOpcounts to the UI instead of reading directly from the workers. - Runtime:
root.rsandterminal.rsare now part of theruntimemodule.root.rsnow only holds theRunaRootstruct. - Core: Moved
command.rsinto thecoremodule. - App:
- Separated
AppContainerfromroot.rsand moved it to its ownapp/container.rsmodule. - Moved
overlays.rsinto theappmodule.
- Separated
runa v0.14.2
Immutable
release. Only release title and notes can be modified.
Directory cache and clipboard fixes, internal cleanup.
Fixed
- Navigation: Revisiting a directory no longer shows an outdated listing after its content changed.
- Clipboard: Unmarking the lest copied entry now correctly clears the clipboard, so a paste no longer runs an empty copy.
Changed
- Performance: Markers and clipboard entries are now borrowed instead of copied per frame.
Internal
- Workers:
- Each worker has its own task type instead of a shared
WorkerTaskenum. Task types live inworkers/task.rs. - Directory loads now carry a
DirRequest, which routes their response back to the pane that requested it.
- Each worker has its own task type instead of a shared
- App:
RunaRoot,AppContainerandClipboardlive in their own modules, and all theAppStatehandlers live underapp/state/.- Fields of
AppState,TabManager,RunaRootandClipboardare all private.
- Coding Style: Named types for huge nested std types, one import per std module, no inline full paths unless needed.
- CI: Release runs only start when the repo owner triggers them.
- Dependencies:
cargo update.
runa v0.14.1
Immutable
release. Only release title and notes can be modified.
Navigation, preview and config watcher fixes.
Fixed
- Navigation:
- Fast moves into or out of directories no longer leave previous or stale entries on screen.
- Moving through a directory whose files keep changing (like build outputs) no longer jumps back or skips entries.
- Preview: Errors from other panes no longer replace the preview.
- Config:
- Without a config folder, runa no longer watches the parent directory recursively.
- Only the actual
runa.tomlinside the config directory triggers a reload.
Internal
- Workers: Busy worker keeps newest request instead of dropping it. Errors on directory loads are routed by request and path.
Tip
The previous version, 0.14.0, added a lot of new features.
Read through its changelog to get up to speed,
and see the editor doc and commands doc to set them up.
runa v0.14.0
Immutable
release. Only release title and notes can be modified.
Archive preview, custom commands, directory scrolling and more.
Added
- Preview:
- Directory previews are now scrollable.
- Archives can preview their contents as a tree. Off by default, set it up in
[display.preview_options.archive]. - Color the tree lines and mark archive content with
[theme.archive]
- Commands: Bind your own commands to keys with
[commands](example:lazygit = { keys = "<m-g>", cmd = "lazygit" }) - Editor:
- Map multi-part extensions to their own command (example:
"tar.gz" = ["tar", "-xf"]). The longest match wins, so.tar.gzand.gzcan open differently. - Put the file anywhere in a command with
{path},{name},{dir},{stem}and{unused_stem}(example:zip = ["7z", "x", "{path}", "-o{stem}"]extractsphotos.zipintophotos). {unused_stem}works like{stem}but picksphotos_1whenphotosalready exists, so nothing gets overwritten.- Run tools like
7z,tarand more without leaving runa (example:pdf = { cmd = ["zathura"], terminal = false }). Failures show as a message. - Open files with the default app of your system (example:
system = ["pdf", "png", "html"]). Works the same on Windows, macOS and Linux.
- Map multi-part extensions to their own command (example:
Fixed
- UI: Last line of a file preview is now correctly drawn while in
splitborder mode. - Config: Full
runa.tomlwrites the actual internal defaults again. - Docs: Config reference matches the internal defaults and lists all key names.
Changed
- Editor: Editor commands always get the absolute path of the file.
Internal
- Preview: Directory previews only build their visible rows.
- Editor: Editor config module moved to
config/editor.rsand the command arguments tocommand.rs. - Core: File previews moved to
core/preview.rsand metadata formatting tocore/metadata.rs. - Workers: Added the
runnerworker thread which starts editor commands in the background. - CI: Documentation deployment now runs after the release workflow.
- Clean-up: Removed redundant tests and made module-local functions private.
Note
There is no 0.13.0, this release follows 0.12.3.
runa v0.12.3
Immutable
release. Only release title and notes can be modified.
Smooth preview scrolling, preview fixes and better version output.
Added
- CLI: Version output now includes the git commit hash and date when built from a git checkout.
- Combine
-Vor--versionwith-v/--verbose(example:-vV) to also show therustcversion, target and build profile.
- Combine
Fixed
- Preview:
- File preview no longer stays a few lines behind when scrolling.
- Scrolling to the end of a file no longer makes the preview bounce back and forth.
- File previews can now scroll past line 65,535.
Changed
- Preview: Scrolling a file preview is now smooth and no longer jumps several lines at once.
- CLI:
-Vis now the flag for--version.-valone no longer prints the version, as it is now the--verbosemodifier.
Internal
- Build: Added a
build.rsto generate the version output with the git commit,rustcversion and the target. - CI: Pushing a release tag now runs the full release automatically:
- First the CI, then the documentation, then the release, for the tag that was pushed.
- Release now publishes the binaries built and tested by the CI run, instead of building them a second time.
- Added manual dry runs that build and package the release without publishing.
runa v0.12.2
Immutable
release. Only release title and notes can be modified.
Performance improvements and fixes.
Fixed
- File Info: File info now always matches the selected entry after very fast navigation.
- Input: Moving the input cursor over non-ASCII characters no longer crashes.
- Sort: The sort help widget now closes after its timeout, similar to the
go tohelper. - Documentation: Fixed the
Scoopinstall command in the configuration docs and in the README.
Changed
- Dependencies:
- Removed
homecrate to instead use thestd::env::home_dirfunction. - Updated dependencies.
- Removed
- README: runa is now marked for stable use.
- CONTRIBUTING: Feature requests are now linked to GitHub Discussions.
Internal
- Performance: Entry names are now stored in a single allocation, improving efficiency.
- Keymap: Simplified prefix key handling and renamed the internal
gprefix togo_to. - Workers: Moved worker thread implementations to sub-modules of
core::workers. - Config:
- Default theme style getters are now generated by a single
builtin_styles!macro. - Show info options are deserialized directly, with named default formats.
- Dialog size and position enums moved from the UI module to the config module, which also resolves their defaults.
- Default theme style getters are now generated by a single
- Constants:
- Tab limit, overlay message durations, default date formats and
event_looppoll interval are now constants. - Throttle times, delays and message durations are grouped in
Timings.
- Tab limit, overlay message durations, default date formats and
- App: Clean-up of
event_loopand added activeAppStateaccessors. - CI:
crossversion now set in one place.
runa v0.12.1
Immutable
release. Only release title and notes can be modified.
Stability fixes, plus a benchmarking suite.
Fixed
- Preview: Throttled preview requests are now not dropped. Fixes the delaying of preview requests.
- Idling: Fixed constant redrawing after actions like clearing markers while the preview was already loaded.
- File Entries: Fixed a crash on file names containing certain Unicode characters whose lowercase form has a different length.
- Tabs: Fixed a crash when opening a new tab while the current directory could not be openend.
Changed
- Move file: The "not a directory" error now shows the target path.
- Dependencies: Updated dependencies.
Internal
- Benchmarks: Added a benchmarking suite for
time,reportanddisk.reportcounts allocations and memory per operationdiskuses a temporary sandbox directory to bench directory loads and previews on 10k entries.timebenches entry creation, sorting, filtering, the directory cache and previews.
- Library crate: Moved the code into a library target so the benchmarks can link against it.
rnis now a wrapper around it. - CI: Scheduled maintenance checks now run weekly instead of daily.
runa v0.12.0
Immutable
release. Only release title and notes can be modified.
Stability improvements and pane synchronization.
Added
- Watcher Thread: Added a dedicated filesystem watcher thread to keep the panes in sync with filesystem changes.
- UI Reloading: Added a manual UI reload keybind (default
<c-r>).
Fixed
- Preview Paths: Fixed an issue where the preview could unreliably or wrongly load the path during preview changes.
Changed
- Config Watcher: The
runa.tomlconfig watcher is now tied to the new watcher thread instead. - Message Widget: Notification message text is now center aligned by default.
- Cargo Update: Updated runas dependencies
runa v0.11.3
Immutable
release. Only release title and notes can be modified.
Fixes to file actions and tabs
Fixed
- Stale panes: Fixed an issue where file actions (such as
move_file) would not correctly update the preview or parent pane. - Tab switch:
- Fixed a race condition where switching tabs would not initialize the startup tabs, causing them to be empty.
- Fixed an issue where the status line information section could sometimes fail to render during tab switches.
Changed
- Cargo update: Updated dependencies
Internal
handle_move: Renamed tomove_fileand moved tohandlers/file_actions.