Skip to content

Releases: sxyazi/yazi

v0.2.0

15 Jan 17:00
cb80ca8
Compare
Choose a tag to compare

This version has added support for custom previewers and custom preloaders, as well as completed most of the work on the concurrent plugin system.

In addition, it includes many performance optimizations, such as rewriting the entire file system, refactoring the entire UI rendering architecture, enhancing the task scheduling system, and implementing partial rendering for frequently updated components.

This version also introduces many meaningful new features, such as path auto-completion, real-time file filtering, Kitty Unicode placeholders protocol support. Read the changelog below for details.

This is a breaking change version, please refer to our upgrade guide: Migrating to Yazi v0.2.0

What's Changed

  • refactor(nix): add shell completion and avoid impure by @XYenon in #293
  • refactor: publish to crates.io by @sxyazi in #298
  • feat: add a new Folder:icon() API to make it easier for users to extend icons by @sxyazi in #301
  • feat: add config support for coordinate and size adjustment for ueberzugpp image preview by @15cm in #304
  • fix: clear Sixel image with empty characters instead of \x2B[K to be compatible with GNOME VTE by @linsui in #309
  • fix: nix flakes by @sxyazi in #306
  • fix: change the rust tool chain in shell.nix from stable to nightly by @15cm in #314
  • feat: support image preview on WSL by @sxyazi in #315
  • fix: use WAYLAND_DISPLAY and DISPLAY to detect Wayland/X11 when XDG_SESSION_TYPE is not set by @sxyazi in #312
  • fix: channel blockage caused by fuse permissions under the root user by @sxyazi in #321
  • fix: jq previews empty when the user sets tab_size=8 by @sxyazi in #320
  • chore: add .vscode and .idea to .gitignore by @XOR-op in #322
  • feat: add an identifier before the extension to prevent file conflicts rather than after by @rick-yao in #316
  • ci: add Rust target "aarch64-unknown-linux-gnu" to release workflow by @nifr in #326
  • feat: add overlays to flake.nix by @musjj in #218
  • docs: update readme links to website by @uncenter in #332
  • feat: use USERPROFILE to retrieve readable path on Windows by @sravioli in #331
  • feat: auto-completion for input component by @XOR-op in #324
  • perf: fallback to plain highlighter for long text by @sxyazi in #329
  • fix: the parent does not hover properly on switching the hidden state by @sxyazi in #339
  • feat: better Zellij support with multi-factor detection involving emulator types by @sxyazi in #336
  • fix: precache n-1 and n+1 pages by @Hanaasagi in #349
  • feat: new reveal command by @sxyazi in #341
  • refactor: extracting commands into separate files to make them easier to maintain by @sxyazi in #338
  • feat: make width of completion relative to input by @XOR-op in #353
  • feat: raise open file descriptors limit at startup by @sxyazi in #342
  • fix: prefix matching should have higher priority in completion by @XOR-op in #352
  • feat: display the number of deleted files in the prompt by @sxyazi in #359
  • fix: Rust panics instead of returning an error when file times are invalid by @sxyazi in #357
  • feat: add support for opening a file on startup by @sxyazi in #358
  • feat: new kitty graphics protocol implementation for better compatibility with tmux through Unicode placeholders by @sxyazi in #365
  • perf: precache small images to avoid cache misses; use symlink_metadata instead of metadata by @sxyazi in #367
  • refactor: use more reasonable numeric field types for configs by @sxyazi in #368
  • perf: clear only limited cells when hiding images by @sxyazi in #369
  • perf: reduce peak memory footprint during decoding large images by @sxyazi in #375
  • feat: make Input and Select positions customizable by @Hanaasagi in #361
  • feat: expose image max alloc and bound to allow for more control by @sxyazi in #376
  • feat: add more optimization options by @Walker-00 in #377
  • fix: directories are recreated after deletion did not update the watcher tracking properly by @sxyazi in #381
  • feat: make emacs readline keybindings configurable by @sxyazi in #382
  • feat: cursor and page key navigation parity with Vim bindings by @flexiondotorg in #386
  • feat: add more mime-types, file extensions and icons to the preset theme by @flexiondotorg in #387
  • feat: include commit hash in yazi --version by @Hanaasagi in #393
  • fix: popup components (Input, Select, etc.) being covered by previewed images by @sxyazi in #360
  • fix: stepwise renaming causes uncertain sorting order by @sxyazi in #398
  • refactor: move event to shared by @sxyazi in #403
  • feat: support sorting by file extension by @JYShaw in #405
  • refactor: integrate tasks into scheduler by @sxyazi in #406
  • fix: catchup with the latest stable Rust by @XYenon in #409
  • fix: build with rust-overlay by @XYenon in #410
  • fix: crashes when selection indicator exceeds the visible area while a wrong folder_offset specified by @sxyazi in #416
  • feat: new config option to suppress pre-caching tasks by @againstpetra in #430
  • fix: do not use LuaJIT in riscv64 and loongarch64 architecture by @eatradish in #439
  • feat: copy content over SSH by @sxyazi in #447
  • feat!: custom preloader & previewer by @sxyazi in #401
  • feat: filter files in real-time by @Rolv-Apneseth in #454
  • fix: panic caused by set_hook by @sxyazi in #459
  • feat: fine-grained scheduling priority by @sxyazi in #462
  • fix: add --follow option to paste command by @eatradish in #436
  • feat: support ANSI themes by @smores56 in #460
  • perf: new UI rendering architecture by @sxyazi in #468
  • fix: resize isn't triggered on app restoring by @sxyazi in #483
  • feat: image orientation support by @sxyazi in #488
  • refactor: quit command by @aserowy in #484
  • feat: icon color and ordered icon rules support by @sxyazi in #503
  • fix: prevent recursive caching - don't cache files in the cache directory by @sxyazi in #504
  • chore: add schema urls to preset config by @uncenter in #506
  • fix: update paged files after filter done by @sxyazi in #505
  • feat: add support for highlighting by file type by @Akmadan23 in #510
  • perf: partial rendering progress and composite into a complete UI to reduce CPU consumption caused by frequent progress updates by @sxyazi in #509
  • feat: add --empty and --cursor options to the rename command by @Akmadan23 in #513
  • feat: add YAZI_LEVEL env variable for shells by @isti115 in #514

New Contributors

Read more

v0.1.5

21 Oct 06:00
283f937
Compare
Choose a tag to compare

This is the biggest update ever, with 36 new features, 24 bug fixes, and 3 performance improvements.

Thank you to every contributor for making Yazi better and better!

What's Changed

  • feat: add Mintty (Git Bash) image preview support by @sxyazi in #103
  • refactor: use Url instead of PathBuf by @sxyazi in #107
  • fix: mime of javascript by @XYenon in #106
  • perf: load large folders in chunks by @sxyazi in #117
  • fix: set cursor block after closing input prompt from insert mode by @auvred in #109
  • fix: doesn't redirect the stderr of the clipboard command to null by @sxyazi in #119
  • feat: suspend process (Ctrl-Z) by @sxyazi in #120
  • fix: notification of file changes in linked directories by @sxyazi in #121
  • feat: file size sorting under the simplified file system by @sxyazi in #123
  • fix: show_hidden not properly applied to hovered folder by @sxyazi in #124
  • fix: recognize symlink directories as files by @sxyazi in #125
  • fix: respect symlink paths without canonicalizing them by @sxyazi in #126
  • feat: make Input streamable by @sxyazi in #127
  • perf: doesn't wait for the process of killing by @sxyazi in #128
  • feat: find by @sxyazi in #104
  • feat: tab-specific sorting by @sxyazi in #131
  • feat: new V, D, C keybinding for Input component by @sxyazi in #139
  • fix: swap description for search commands by @knutwalker in #141
  • fix: image position calculation by @sxyazi in #144
  • feat: support for image preview within tmux by @sxyazi in #147
  • feat: show keywords when in search mode by @sxyazi in #152
  • feat: fallback to built-in highlighting if jq is not installed by @ndtoan96 in #151
  • feat: make the glob expr case insensitive by default, and prepend \s to make it sensitive by @sxyazi in #156
  • fix: check relative path on expand_path by @sxyazi in #165
  • feat: support for FreeBSD permission type by @yggdr in #169
  • feat: multiple openers for a single rule by @Linus789 in #154
  • fix: leave upwards only if an IO error occurs in current by @sxyazi in #172
  • docs: add archlinuxcn installation guide by @Integral-Tech in #176
  • fix: image preview not working on Zellij by @Eric-Song-Nop in #181
  • feat: make trash optional by @sxyazi in #178
  • fix: inconsistent Shift key behavior on Unix and Windows by @ndtoan96 in #174
  • feat: new force option added for the remove command, which does not show the confirmation dialog on trashing/deleting by @sxyazi in #173
  • fix: typo of LICENSE file by @conradojordan in #201
  • feat: add flake.nix by @XYenon in #205
  • feat: include ignored files on search when hidden files are shown by @PhotonQuantum in #212
  • feat: new orphan option for opener rules, to keep the process running even when Yazi exited by @sxyazi in #216
  • feat: scroll half/full page with arrow percentage supported, and new Vi-like <C-u>, <C-d>, <C-b>, and <C-f> keybindings added by @TD-Sky in #213
  • feat: highlight matching words on finding by @PhotonQuantum in #211
  • feat: add BackTab support by @sxyazi in #209
  • fix: set stdio to null when orphan is true by @sxyazi in #229
  • feat: new force option for creating and renaming by @sxyazi in #208
  • feat: loop through to find by @ndtoan96 in #234
  • feat: backward/forward by @ndtoan96 in #230
  • perf: reimplement optimized natural sorting algorithm, speed up ~6 times for case-insensitive sorting by @sxyazi in #237
  • chore: changing the finding key to n/N to keep with Vim's conventions by @sxyazi in #238
  • feat: added new options to the `find' command for smart-case/case-insensitive finds by @ndtoan96 in #240
  • feat: add new --no-cwd-file option to quit command for flexible cwd-file setting by @XOR-op in #245
  • fix: avoid adding non-regular paths to backstack by @ndtoan96 in #249
  • fix: support RGBA16 images by @sxyazi in #250
  • feat: support trash for NetBSD by @sxyazi in #251
  • feat: support environment variable in cd path by @ndtoan96 in #241
  • feat: new theme system by @sxyazi in #161
  • fix: cannot cd if there is whitespace in path by @ndtoan96 in #255
  • fix: add application/x-wine-extension-ini to text mime by @ndtoan96 in #259
  • fix: collect and fix all hard coded themes and color by @Eric-Song-Nop in #221
  • fix: some colors not readable in light mode by @sxyazi in #264
  • feat: better file hover state by @sxyazi in #269
  • refactor: split commands into separate files by @sxyazi in #272
  • feat: cancel selected items automatically on entering, leaving, copying, or cutting by @sxyazi in #273
  • feat: add a new Bar component, and make border styles customizable by @sxyazi in #278
  • fix: adapt another $TERM value of foot-extra for foot by @sxyazi in #277
  • refactor: simplify building conditions by @sxyazi in #280
  • chore: add git rev to nix pkg version by @XYenon in #206
  • feat: new Manager component for better style extensions by @sxyazi in #284
  • feat: cross-system opener rule support by @sxyazi in #289
  • fix: delegate the SIGINT signal of processes with orphan=true to their parent by @sxyazi in #290
  • feat: line mode by @sxyazi in #291
  • feat: shell completions & auto releasing by @TD-Sky in #282

New Contributors

Full Changelog: v0.1.4...v0.1.5

v0.1.4

01 Sep 08:08
e9218f8
Compare
Choose a tag to compare

⭐️ Highlights

  • Support Windows
  • Copy file path, with multi-selection support
  • Customizable UI layout
  • Better file change detection: update mime-type and preview in real-time after a change
  • New sorting method: natural mode
  • Scrollable preview, support videos, PDFs, archives, directories, etc.
  • Simplified file system for better overall performance
  • Help for all components, quick view of the key bindings
  • Allow customization of Yazi config paths and cache persistence
  • Adapt Black Box for the image preview

What's Changed

  • feat: message about deleting files should be different by @g-plane in #64
  • fix: wrong height of Select component by @sxyazi in #65
  • docs: update opener rules to the new format by @sxyazi in #66
  • feat: choose-file mode by @Eric-Song-Nop in #69
  • feat: prepare for Windows by @g-plane in #44
  • feat: copy file path, with multi-selection support by @sxyazi in #72
  • feat: allow references to the selected files during shell execution by @sxyazi in #73
  • feat: add xclip and xsel support by @sxyazi in #74
  • feat: windows clipboard support by @sxyazi in #75
  • feat: custom manager layout by @sxyazi in #76
  • fix: don't follow the symbolic link on Linux by @sxyazi in #77
  • docs: install with Homebrew by @Surinrasu in #80
  • feat: update mime-type after file changes detected by @sxyazi in #78
  • feat: organize keys for logical behavior by @asim215 in #83
  • feat: sort naturally by @asim215 in #82
  • feat: make the preview scrollable by @sxyazi in #86
  • feat: respect EDITOR environment variable, close #90 by @sxyazi in #91
  • refactor: simplify filesystem design to improve performance by @sxyazi in #89
  • feat: help by @sxyazi in #93
  • feat: new cache_dir option by @sxyazi in #96
  • feat: new YAZI_CONFIG_HOME env variable by @sxyazi in #97
  • feat: add Black Box image preview support by @sxyazi in #99
  • feat: deprecate --cwd in favor of the positional argument by @sxyazi in #100

New Contributors

Full Changelog: v0.1.3...v0.1.4

v0.1.3

15 Aug 11:52
15fbb72
Compare
Choose a tag to compare

This is the biggest update ever, with 22 new features, 9 bug fixes, and 5 performance improvements.

Thank you to every contributor for making Yazi better!

What's Changed

  • refactor: use workspace to speed up builds by @sxyazi in #13
  • feat: support transparent images along with Sixel being used by @sxyazi in #14
  • fix: adaptor export by @fzdwx in #15
  • docs: add yazi-bin AUR package by @g-plane in #16
  • feat: show the output of running tasks in real-time by @sxyazi in #17
  • feat: add pdf preview with pdftoppm by @Eric-Song-Nop in #18
  • fix: no matches of some icons by @sxyazi in #19
  • feat: make highlighting tasks cancelable even though its CPU-bound by @sxyazi in #20
  • refactor(md5): replace md5 wtih md-5 by @TD-Sky in #21
  • feat: more language support in highlighting by @sxyazi in #22
  • feat: improve the performance of highlighting big JSON file by @sxyazi in #23
  • feat: running shell by @sxyazi in #24
  • feat: highlight the inputs when highlighting mode turns on by @sxyazi in #25
  • fix: tasks number format by @fzdwx in #26
  • feat: fix and enhance unset mode by @sxyazi in #27
  • fix: does not generate the necessary PDF cache when max_width is set too large by @sxyazi in #28
  • docs: add unstable version for Nix users, thank @XYenon by @sxyazi in #29
  • feat: allow to customize status section separator by @g-plane in #30
  • feat: add display_name to opener by @XYenon in #31
  • refactor: avoid hard coding tmp dir by @g-plane in #32
  • Fix theme doc path typo by @Eric-Song-Nop in #34
  • fix: unknown mime-type of inode/x-empty by @sxyazi in #36
  • chore: rename bin by @g-plane in #33
  • refactor: introduce Clippy by @sxyazi in #38
  • feat: automatically change the current working directory after closing yazi by @sxyazi in #40
  • feat: add interactive cd by @XYenon in #43
  • feat: show current dir name in tab by @g-plane in #41
  • fix: show_hidden not working by @sxyazi in #47
  • feat: enhanced execution format by @sxyazi in #45
  • feat: add sort_dir_first option by @Eric-Song-Nop in #49
  • feat: add command template support for shell by @fzdwx in #48
  • fix: crashes caused by pop-up components by @sxyazi in #52
  • feat: new task-related config options by @sxyazi in #53
  • feat: bulk rename by @TD-Sky in #50
  • refactor: improve bulk rename performance by @TD-Sky in #54
  • refactor: improve stdout performance by using BufWriter by @sxyazi in #55
  • refactor: simplify the flow with let-else by @sxyazi in #56
  • refactor: introduces the validator by @sxyazi in #57
  • fix: tab name width calculating by @sxyazi in #58
  • fix: selection rect out of bounds by @sxyazi in #59
  • refactor: dispatchers no longer go through async scheduling to improve reactivity by @sxyazi in #60
  • refactor: implement RoCell to replace OnceCell by @sxyazi in #63

New Contributors

Full Changelog: v0.1.2...v0.1.3

v0.1.2

30 Jul 08:10
f702226
Compare
Choose a tag to compare

What's Changed

  • fix: fn import by @fzdwx in #3
  • feat: which-key and multi-key support by @sxyazi in #4
  • feat: enable bracketed paste by @sxyazi in #5
  • feat: the ability to close input using Esc, and the new op of Cut by @sxyazi in #6
  • feat: switch sorting by key; precalculate and cache directory size when sorting by size; use BTreeMap to improve performance by @sxyazi in #7
  • feat: make folder openable by @sxyazi in #9
  • feat: auto hover the file after it created by @sxyazi in #10
  • feat: avoid duplicating the same task of precaching the size by @sxyazi in #11
  • feat: support for Überzug++ for image previews with X11/wayland environment by @sxyazi in #12

New Contributors

  • @sxyazi made their first contribution in #4

Full Changelog: v0.1.1...v0.1.2

v0.1.1

22 Jul 16:23
43e731b
Compare
Choose a tag to compare

What's Changed

  • docs: update installation guide by @g-plane in #1
  • feat: open support enter dir by @fzdwx in #2

New Contributors

Full Changelog: v0.1.0...v0.1.1

v0.1.0

19 Jul 01:10
36b13ac
Compare
Choose a tag to compare
Merge branch 'main' of github.com:sxyazi/yazi