Skip to content

Releases: runa-fm/runa

runa v0.15.1

Choose a tag to compare

@github-actions github-actions released this 28 Oct 19:14
Immutable release. Only release title and notes can be modified.
v0.15.1
2f070fa

Fix to tabs at startup.

Fixed

Tabs: Startup now loads the shown tab correctly.

Internal

Dependencies: Cargo update.

runa v0.15.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 14:31
Immutable release. Only release title and notes can be modified.
v0.15.0
2dde80f

Organization migration, crate rename, performance improvements and internal cleanup.

[BREAKING CHANGES]

  • runa has moved to the runa-fm/runa GitHub organization. This includes the:

  • crates.io: The crate is now published under the new name runa-fm, replacing runa-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 FileOp counts to the UI instead of reading directly from the workers.
  • Runtime: root.rs and terminal.rs are now part of the runtime module. root.rs now only holds the RunaRoot struct.
  • Core: Moved command.rs into the core module.
  • App:
    • Separated AppContainer from root.rs and moved it to its own app/container.rs module.
    • Moved overlays.rs into the app module.

runa v0.14.2

Choose a tag to compare

@github-actions github-actions released this 24 Oct 23:07
Immutable release. Only release title and notes can be modified.
v0.14.2
a562b7d

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 WorkerTask enum. Task types live in workers/task.rs.
    • Directory loads now carry a DirRequest, which routes their response back to the pane that requested it.
  • App:
    • RunaRoot, AppContainer and Clipboard live in their own modules, and all the AppState handlers live under app/state/.
    • Fields of AppState, TabManager, RunaRoot and Clipboard are 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

Choose a tag to compare

@github-actions github-actions released this 22 Oct 23:26
Immutable release. Only release title and notes can be modified.
v0.14.1
c1e043e

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.toml inside 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

Choose a tag to compare

@github-actions github-actions released this 22 Oct 19:31
Immutable release. Only release title and notes can be modified.
v0.14.0
3ba78d6

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.gz and .gz can open differently.
    • Put the file anywhere in a command with {path}, {name}, {dir}, {stem} and {unused_stem} (example: zip = ["7z", "x", "{path}", "-o{stem}"] extracts photos.zip into photos).
    • {unused_stem} works like {stem} but picks photos_1 when photos already exists, so nothing gets overwritten.
    • Run tools like 7z, tar and 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.

Fixed

  • UI: Last line of a file preview is now correctly drawn while in split border mode.
  • Config: Full runa.toml writes 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.rs and the command arguments to command.rs.
  • Core: File previews moved to core/preview.rs and metadata formatting to core/metadata.rs.
  • Workers: Added the runner worker 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

Choose a tag to compare

@github-actions github-actions released this 21 Oct 16:39
Immutable release. Only release title and notes can be modified.
v0.12.3
0273aa5

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 -V or --version with -v/--verbose (example: -vV) to also show the rustc version, target and build profile.

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: -V is now the flag for --version. -v alone no longer prints the version, as it is now the --verbose modifier.

Internal

  • Build: Added a build.rs to generate the version output with the git commit, rustc version 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

Choose a tag to compare

@github-actions github-actions released this 20 Oct 19:20
Immutable release. Only release title and notes can be modified.
v0.12.2
168b168

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 to helper.
  • Documentation: Fixed the Scoop install command in the configuration docs and in the README.

Changed

  • Dependencies:
    • Removed home crate to instead use the std::env::home_dir function.
    • Updated dependencies.
  • 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 g prefix to go_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.
  • Constants:
    • Tab limit, overlay message durations, default date formats and event_loop poll interval are now constants.
    • Throttle times, delays and message durations are grouped in Timings.
  • App: Clean-up of event_loop and added active AppState accessors.
  • CI: cross version now set in one place.

runa v0.12.1

Choose a tag to compare

@github-actions github-actions released this 03 Oct 03:52
Immutable release. Only release title and notes can be modified.
v0.12.1
59c93d4

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, report and disk.
    • report counts allocations and memory per operation
    • disk uses a temporary sandbox directory to bench directory loads and previews on 10k entries.
    • time benches 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. rn is now a wrapper around it.
  • CI: Scheduled maintenance checks now run weekly instead of daily.

runa v0.12.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 09:16
Immutable release. Only release title and notes can be modified.
v0.12.0
a2653cd

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.toml config 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

Choose a tag to compare

@github-actions github-actions released this 06 May 19:30
Immutable release. Only release title and notes can be modified.
v0.11.3
040623b

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 to move_file and moved to handlers/file_actions.