Releases: Byron/dua-cli
v2.36.0
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
messagecolor yellow, instead of red.
It's less alarming, red should only be used to signal 'danger'. - don't show unapplicable global options in
configsubcommand.
New Features
-
add
config show-defaultsub-command with option to reset configuration file
Adddua config show-defaultto print the current built-in default
configuration, making newly introduced configuration keys discoverable without
opening the editor.Support
dua config show-default --overwrite-with-defaultto overwrite the active configuration
file with the built-in defaults while keeping stdout reserved for the default
TOML content. -
allow to set the
formatin 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
i18nmodule: aLanguageenum, env detection split into a pure
detect()plus a thinfrom_env(), and anEN/JAtranslation 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.
- New
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
configsubcommand. (d02a65e)
- Don't show unapplicable global options in
- Uncategorized
- Merge pull request #339 from Byron/fix-336 (9975c07)
- Make
messagecolor yellow, instead of red. (08bda9f) - Address auto-review (e5627c0)
- Add
config show-defaultsub-command with option to reset configuration file (db3e267) - Allow to set the
formatin 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
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
Ito mark all currently visible Git-ignored entries, orito 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, theno.Because
--oncedoes 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 withshift + X.When browsing a directory,
duadetects existing directories with well-known cleanup names, including:targetnode_modules__pycache__.pytest_cache.mypy_cache.ruff_cache.tox.venvvenv
Press
Xto 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
buildanddistare not selected automatically. -
cycle modified time display modes
Users can now enable the modified-time column without changing the current sort:- Press
Mwhile sorting by size, count, or name. - The modified-time column is shown.
- Press
Magain to hide it.
To sort by modified time:
- Press
mto sort by mtime descending. - Press
magain to sort by mtime ascending. - Press
Mwhile 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.
- Press
Commit Statistics
- 6 commits contributed to the release.
- 4 commits were understood as conventional.
- 2 unique issues were worked on: #328, #331
Commit Details
v2.34.0
This upcoming release improves day-to-day usability with a new configuration file.
For users, the main additions are:
- A persistent configuration file for
duawith keyboard settings under[keys]. - A new
dua config editcommand 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_backnow defaults totrue. This is a change from previous versions where it wasfalseimplicitly.
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 from04:41:37 [INFO]to
[2026-02-06 05:41:32.146 +01:00 INFO src/main.rs:55]
New Features
- add
duaconfiguration 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 writing25.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
duaconfiguration 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
New Features
- Add environment variable support for all global arguments
DUA_THREADS→--threadsDUA_FORMAT→--formatDUA_APPARENT_SIZE→--apparent-sizeDUA_COUNT_HARD_LINKS→--count-hard-linksDUA_STAY_ON_FILESYSTEM→--stay-on-filesystemDUA_IGNORE_DIRS→--ignore-dirsDUA_LOG_FILE→--log-file
- Mark shared arguments as global for general accessibility
- Added
global = trueto all arguments shared between aggregate and interactive subcommands - Removed duplicate
inputfields 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
- Added
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
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
'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
v2.32.0
New Features
Ctrl+fin 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+fin 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
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,
duawill 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
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
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)