Skip to content

Releases: Byron/dua-cli

v2.36.0

17 Jun 05:48
b14fa90

Choose a tag to compare

The headline feature is the optional localization of the interactive help screen, selected from the standard POSIX locale
environment variables (LC_ALL > LC_MESSAGES > LANG). English remains the default; Japanese
(ja) is now available for UTF-8 locales and locales without an explicit codeset, e.g. LANG=ja_JP.UTF-8 dua i.

Bug Fixes

  • Make message color yellow, instead of red.
    It's less alarming, red should only be used to signal 'danger'.
  • don't show unapplicable global options in config subcommand.

New Features

  • add config show-default sub-command with option to reset configuration file
    Add dua config show-default to print the current built-in default
    configuration, making newly introduced configuration keys discoverable without
    opening the editor.

    Support dua config show-default --overwrite-with-default to overwrite the active configuration
    file with the built-in defaults while keeping stdout reserved for the default
    TOML content.

  • allow to set the format in the configuration file.

  • optional i18n for the interactive help screen
    Localize the interactive help pane via the standard POSIX locale
    environment variables, honoring the usual precedence
    LC_ALL > LC_MESSAGES > LANG, with English as the default. Japanese is
    the first added translation. No new dependencies; only the help screen
    is translated.

    • New i18n module: a Language enum, env detection split into a pure
      detect() plus a thin from_env(), and an EN/JA translation table.
    • The help pane resolves the language with Language::from_env() when it
      is rendered (only while the pane is open).
    • Key names, the ^ continuation markers and the symbolic legend stay
      untranslated; the block title is localized.

Commit Statistics

  • 11 commits contributed to the release.
  • 5 commits were understood as conventional.
  • 1 unique issue was worked on: #336

Commit Details

view details
  • #336
    • Don't show unapplicable global options in config subcommand. (d02a65e)
  • Uncategorized
    • Merge pull request #339 from Byron/fix-336 (9975c07)
    • Make message color yellow, instead of red. (08bda9f)
    • Address auto-review (e5627c0)
    • Add config show-default sub-command with option to reset configuration file (db3e267)
    • Allow to set the format in the configuration file. (c1a759f)
    • Merge pull request #334 from bellsmarket/feat/help-i18n (c171b44)
    • Address auto-review comments (e180b1f)
    • Review (71f4532)
    • Optional i18n for the interactive help screen (e902598)
    • Merge pull request #333 from xfocus3/fix/install-respects-cargo-home-279 (d4f5671)

v2.35.0

16 Jun 14:33
26c8da1

Choose a tag to compare

New Features

  • Add gitignore-aware cleanup marking
    Ignored files and directories are detected from the repository’s ignore rules, including .gitignore. Git-ignored entries are shown dimmed in the entries list.

    Press I to mark all currently visible Git-ignored entries, or i to disable Git support.

    Ignored directories are handled recursively: if a directory such as target/ is ignored, entries shown after entering that directory are treated as ignored as well.

    Git-ignored entries are separate from built-in cleanup candidates. An entry can be both Git-ignored and a cleanup candidate; in that case, both visual styles apply.

  • add dua i --once[="keys"] to make it easier to debug interactive mode in the real.
    Run interactive mode once, print the final TUI to the main terminal screen, then exit.

    dua i --once
    dua i --once=<keys>

    <keys> is optional. Each character is replayed after traversal finishes:

    dua i --once=jko

    Acts like pressing j, k, then o.

    Because --once does not use the alternate screen, the output stays visible in scrollback.

  • add interactive cleanup candidate marking with X
    Interactive mode can now highlight and select common cleanup directories in the current view with shift + X.

    When browsing a directory, dua detects existing directories with well-known cleanup names, including:

    • target
    • node_modules
    • __pycache__
    • .pytest_cache
    • .mypy_cache
    • .ruff_cache
    • .tox
    • .venv
    • venv

    Press X to mark all detected cleanup candidates in the current directory.
    The marked entries then appear in the mark pane, where they can be reviewed before using the existing delete or trash actions.

    Cleanup detection is intentionally conservative. Ambiguous names such as build and dist are not selected automatically.

  • cycle modified time display modes
    Users can now enable the modified-time column without changing the current sort:

    1. Press M while sorting by size, count, or name.
    2. The modified-time column is shown.
    3. Press M again to hide it.

    To sort by modified time:

    1. Press m to sort by mtime descending.
    2. Press m again to sort by mtime ascending.
    3. Press M while mtime sorting is active to cycle the mtime strategy:
      • normal entry mtime
      • newest descendant mtime
      • oldest descendant mtime

    The selected mtime strategy is preserved when toggling between ascending and descending mtime sort.

Commit Statistics

  • 6 commits contributed to the release.
  • 4 commits were understood as conventional.
  • 2 unique issues were worked on: #328, #331

Commit Details

view details
  • #328
    • Add interactive cleanup candidate marking with X (cb11cac)
  • #331
    • Cycle modified time display modes (5991f98)
  • Uncategorized
    • Merge pull request #338 from Byron/auto-clean (7c31299)
    • Add gitignore-aware cleanup marking (a346eff)
    • Add dua i --once[="keys"] to make it easier to debug interactive mode in the real. (a6482de)
    • Merge pull request #337 from Byron/recursive-mod-date (99840d0)

v2.34.0

20 Feb 08:14
19df299

Choose a tag to compare

This upcoming release improves day-to-day usability with a new configuration file.

For users, the main additions are:

  • A persistent configuration file for dua with keyboard settings under [keys].
  • A new dua config edit command to open the configuration in $EDITOR.
  • Automatic creation of the configuration directory/file with sensible defaults when editing for the first time.

Configuration defaults and behavior in this release:

  • keys.esc_navigates_back now defaults to true. This is a change from previous versions where it was false implicitly.

You are welcome to contribute more settings as you see fit.

Chore

  • Replace simplelog with fern and jiff for timestamped logging
    Note that this changes the log format from

    04:41:37 [INFO]
    

    to

    [2026-02-06 05:41:32.146 +01:00 INFO src/main.rs:55]
    

New Features

  • add dua configuration file, with setting for ESC going back only.

Bug Fixes

  • outdated link to NixOS package search
    Channel 23.11 was for Nov. 2023.
    This update removes explicitly specifying a channel in the query, defaulting to the current latest stable NixOS nixpkgs channel (at the time of writing 25.11

Refactor

  • remove crosstermion and tui-react dependencies

Commit Statistics

  • 17 commits contributed to the release over the course of 45 calendar days.
  • 45 days passed between releases.
  • 4 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #320 from tonisives/feat/disable-esc (9d2fac5)
    • Prepare changelog for upcoming release (9496afe)
    • Refactor (f275703)
    • Apply suggestions from Copilot code review (fd3468b)
    • Add dua configuration file, with setting for ESC going back only. (c72cb52)
    • Merge pull request #318 from Byron/copilot/remove-crosstermion-tui-react (7480277)
    • Remove crosstermion and tui-react dependencies (a1aaaa5)
    • Merge pull request #317 from musicinmybrain/no-atty (6c0203c)
    • Replace atty with standard-library functionality (since Rust 1.70) (31aaa0c)
    • Merge pull request #315 from Byron/copilot/switch-time-crate-to-jiff (017e716)
    • Refactor (60812a2)
    • Replace simplelog with fern and jiff for timestamped logging (3dc120f)
    • Merge pull request #314 from Byron/dependabot/cargo/time-0.3.47 (2cb64fb)
    • Bump time from 0.3.44 to 0.3.47 (5980a79)
    • Merge pull request #313 from Quoteme/patch-1 (abe15b2)
    • Outdated link to NixOS package search (c7def68)
    • Cargo fmt (d8db05a)

v2.33.0

05 Jan 17:54
1799773

Choose a tag to compare

New Features

  • Add environment variable support for all global arguments
    • DUA_THREADS--threads
    • DUA_FORMAT--format
    • DUA_APPARENT_SIZE--apparent-size
    • DUA_COUNT_HARD_LINKS--count-hard-links
    • DUA_STAY_ON_FILESYSTEM--stay-on-filesystem
    • DUA_IGNORE_DIRS--ignore-dirs
    • DUA_LOG_FILE--log-file
  • Mark shared arguments as global for general accessibility
    • Added global = true to all arguments shared between aggregate and interactive subcommands
    • Removed duplicate input fields from Interactive and Aggregate subcommands
    • Updated main.rs to use opt.input instead of subcommand-specific input
    • Global arguments now work with both subcommands and can be specified before or after the subcommand

Commit Statistics

  • 10 commits contributed to the release over the course of 64 calendar days.
  • 69 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #309 from Byron/copilot/add-env-support-global-arguments (72f149c)
    • Add environment variable support for all global arguments (85c7c72)
    • Merge pull request #307 from Byron/copilot/mark-global-arguments-in-clap (a2973a6)
    • Mark shared arguments as global for general accessibility (2f720cf)
    • Merge pull request #300 from drkane/drkane-patch-1 (8570c15)
    • Add winget instructions to readme - fixes issue #282 (ec159b6)
    • Merge pull request #298 from Byron/updates (4bb7ebd)
    • Cargo update (1a38653)
    • Cargo fmt (38d985e)
    • Upgrade the rustc version and switch to edition 2024 (ccd0b74)

v2.32.2

28 Oct 06:44
6e91054

Choose a tag to compare

Bug Fixes

  • don't let 'q' quit instantly if it's still collecting files.

Commit Statistics

  • 1 commit contributed to the release.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Don't let 'q' quit instantly if it's still collecting files. (847af46)

v2.32.1

28 Oct 05:03
d55602a

Choose a tag to compare

'q' to quit is now more usable as it will insta-quit if the traversal took less than 10s and
if nothing is still marked for deletion.

This makes it easy to use in 'quick-view' scenarios.

Bug Fixes

  • instantly quit when no items marked for deletion

Commit Statistics

  • 6 commits contributed to the release.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Prepare next release changelog (fb8571f)
    • Merge pull request #297 from Byron/copilot/fix-instant-quit-on-q (938ae33)
    • Only quit immediately if the traversal didn't take too long. (7f27170)
    • Update dependencies (d0f66d6)
    • Refactor (b710cb1)
    • Instantly quit when no items marked for deletion (d769de9)

v2.32.0

15 Sep 04:00
3f364c1

Choose a tag to compare

New Features

  • Ctrl+f in the glob prompt now toggles the mode from case-insensitive to sensitive.

Commit Statistics

  • 4 commits contributed to the release over the course of 43 calendar days.
  • 43 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #293 from Byron/copilot/fix-2a5bb691-5ca0-4cf5-af1c-895f4fcb1f06 (91bc45d)
    • Ctrl+f in the glob prompt now toggles the mode from case-insensitive to sensitive. (bbe368f)
    • Implement case-sensitive glob search with '^f' shortcut (32ab50f)
    • See if the windows-2022 image will work for us. (7abf86a)

v2.31.0

02 Aug 05:45
5daa8d5

Choose a tag to compare

This release prominently adds a prompt that shows before quitting the app. When you pressed esc or q, the status bar will show the prompt first. To really quit, you need to press esc or q again. You can also cancel the quit operation by pressing any key else. Meanwhile, ctrl-c still quits the app directly since it's a combination key.

That way, dua will not cause users to accidentally quit the app when they only want to dismiss some other panels. It's especially frustrating if the scan took a long time

New Features

  • prompt before quitting
    This release prominently adds a prompt that shows before quitting the app. When you pressed esc or q, the status bar will show the prompt first. To really quit, you need to press esc or q again. You can also cancel the quit operation by pressing any key else. Meanwhile, ctrl-c still quits the app directly since it's a combination key.

    That way, dua will not cause users to accidentally quit the app when they only want to dismiss some other panels. It's especially frustrating if the scan took a long time.

Commit Statistics

  • 11 commits contributed to the release.
  • 83 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • Uncategorized
    • Bump minor version and add changelog notes (d238dbb)
    • Update dependencies (39ca5e6)
    • Prompt before quitting (f3c9bf6)
    • Prompt user before quitting (b096939)
    • Re-introduce io::ErrorKind matching. (f93f120)
    • Merge pull request #288 from fgimian/completions (1b7f535)
    • Thanks clippy (f983e60)
    • Refactor (a0f78b2)
    • Add the ability to generate shell completions (e919541)
    • Merge pull request #285 from kianmeng/fix-typos (63b129b)
    • Fix typos (d9d643e)

v2.30.1

10 May 18:50
ebf906a

Choose a tag to compare

In this release, the size of directories is also taken into consideration, for more realistic sizes similar to what du does.

Commit Statistics

  • 6 commits contributed to the release.
  • 0 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • Uncategorized
    • Prepare changelog for next release. (4ed0acf)
    • Merge pull request #284 from joehasson/feat/include-directory-inodes-in-size-calculations (b5b411b)
    • Include directory inode in directory size aggregation (a93b28e)
    • Merge pull request #283 from Byron/dependabot/cargo/crossbeam-channel-0.5.15 (ca6122f)
    • Thanks clippy (49bbd2c)
    • Bump crossbeam-channel from 0.5.13 to 0.5.15 (af3f3fe)

v2.30.0

27 Jan 08:53
b5377bc

Choose a tag to compare

New Features

  • allow sorting by name in interactive mode

Bug Fixes

  • formatting in src/interactive/app/handlers.rs
  • on MacOS use only 3 threads by default.
    Otherwise, it would get very slow and the difference is enormous.
    16 threads for example take 4.1s on a workload, whereas this only takes
    550ms with 3 threads.

Style

  • simplify some statements for readability

Commit Statistics

  • 9 commits contributed to the release over the course of 55 calendar days.
  • 84 days passed between releases.
  • 4 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • Uncategorized
    • Merge pull request #275 from joehasson/feat/interactive-mode-sort-by-name (364f732)
    • Thanks clippy (092a6c5)
    • Allow sorting by name in interactive mode (73224e6)
    • Merge pull request #274 from musicinmybrain/petgraph0.7 (14a276e)
    • Update petgraph to 0.7 (b83a2f6)
    • Merge pull request #271 from hamirmahal/style/simplify-some-statements-for-readability (3bc25bd)
    • Formatting in src/interactive/app/handlers.rs (0a4d09e)
    • Simplify some statements for readability (c1dc1b2)
    • On MacOS use only 3 threads by default. (8933be4)