v25.12.29Desktop
Added 22
- Remote file management
- Virtual file system
- Shell formatting
- Multi-entry support for plugin system
- Zoom in or out of the preview image
- Improve the UX of the pick and input components
- Show progress of each task in task manager
- New fs.copy() and fs.rename() APIs
- New experimental ya.async() API
- New overall option to set the overall background color
- Rounded corners for indicator bar
- New bulk_rename action always renames files with the editor
- key-* DDS events to allow changing or canceling user key events
- New --bg flag specifying image background color in the preset SVG and ImageMagick previewers
- Filter by full path in search view instead of just filename
- New casefy action for case conversion of the input content
- Allow dynamic adjustment of layout ratio via rt.mgr.ratio
- Support .deb packages
- Support invalid UTF-8 paths throughout the codebase
- Allow upgrading only specific packages with ya pkg
- New duplicate DDS event for copying files
- New ind-sort and key-sort DDS events to change sorting in Lua
Changed 4
- Rename name to url for open, fetchers, spotters, preloaders, previewers, filetype, and globs icon rules to support virtual file system
- Rename mime fetcher to mime.local, and introduce mime.dir fetcher to support folder MIME types
- Reclassify hovered and preview_hovered under [mgr] of theme.toml into [indicator] as current and preview, respectively
- Return Path instead of Url from Url:strip_prefix() and File.link_to to enforce type safety
Fixed 4
- User-prepended open rules do not override presets
- Respect user's system media opener instead of hardcoding mpv
- Incorrect $0 and $@ parameters in shell action under empty directories
- Avoid appending a newline when reading clipboard contents
Removed 1
- Remove $0 parameter in opener rules to make the open action work under empty directories
Deprecated 6
- Deprecate $n, $@ (*nix) and %n, %* (Windows) in shell action and opener rules in favor of new shell formatting
- Deprecate ya.hide, ya.render, and ya.truncate in favor of ui.hide, ui.render, and ui.truncate
- Deprecate position property of ya.input() in favor of pos to align with ya.confirm() and its type ui.Pos
- Deprecate cx.tasks.progress in favor of cx.tasks.summary
- Deprecate frag property of Url in favor of domain
- Deprecate ui.Rect.default in favor of ui.Rect {}
Added
- Remote file management ([#3396])
- Virtual file system ([#3034], [#3035], [#3094], [#3108], [#3187], [#3203])
- Shell formatting ([#3232])
- Multi-entry support for plugin system ([#3154])
- Zoom in or out of the preview image ([#2864])
- Improve the UX of the pick and input components ([#2906], [#2935])
- Show progress of each task in task manager ([#3121], [#3131], [#3134])
- New
fs.copy()andfs.rename()APIs ([#3467]) - New experimental
ya.async()API ([#3422]) - New
overalloption to set the overall background color ([#3317]) - Rounded corners for indicator bar ([#3419])
- New
bulk_renameaction always renames files with the editor ([#2984]) key-*DDS events to allow changing or canceling user key events ([#3005], [#3037])- New
--bgspecifying image background color in the preset SVG and ImageMagick previewers ([#3189]) filterby full path (prefix + filename) in search view instead of just filename ([#2915])- New
casefyaction for case conversion of the input content ([#3235]) - Allow dynamic adjustment of layout ratio via
rt.mgr.ratio([#2964]) - Support
.debpackages ([#2807], [#3128], [#3209]) - Port several widespread GUI keys to the input component ([#2849])
- Support invalid UTF-8 paths throughout the codebase ([#2884], [#2889], [#2890], [#2895], [#3023], [#3290], [#3369])
- Allow upgrading only specific packages with
ya pkg([#2841]) - Respect the user's
image_filtersetting in the preset ImageMagick previewer ([#3286]) - New
duplicateDDS event for copying files ([#3456]) - New
ind-sortandkey-sortDDS events to change sorting in Lua ([#3391]) - Allow custom mouse click behavior for individual files ([#2925])
- Display newlines in input as spaces to improve readability ([#2932])
- Fill in error messages if preview fails ([#2917], [#3383], [#3387])
- Search view shares file selection and yank state ([#2855])
- Offload mimetype fetching on opening files to the task scheduler ([#3141])
- Increase terminal response timeout to better tolerate slow SSH network environments ([#2843])
Changed
- Rename
nametourlfor open, fetchers, spotters, preloaders, previewers, filetype, andglobsicon rules to support virtual file system ([#3034]) - Rename
mimefetcher tomime.local, and introducemime.dirfetcher to support folder MIME types ([#3222]) - Reclassify
hoveredandpreview_hoveredunder[mgr]oftheme.tomlinto[indicator]ascurrentandpreview, respectively ([#3419]) - Remove
$0parameter in opener rules to make theopenaction work under empty directories ([#3226]) - Return
Pathinstead ofUrlfromUrl:strip_prefix()andFile.link_toto enforce type safety ([#3361], [#3385]) - Use
bodyinstead of the termcontentin confirmations ([#2921]) - Use
u16instead ofu32as the type ofmax_widthandmax_heightoptions to avoid memory exhaustion ([#3313]) - Implement
__pairsmetamethod instead of__indexfor the callback argument of the@yankDDS event ([#2997])
Deprecated
- Deprecate
$n,$@(*nix) and%n,%*(Windows) inshellaction and opener rules in favor of new shell formatting ([#3232]) - Deprecate
ya.hide,ya.render, andya.truncatein favor ofui.hide,ui.render, andui.truncate([#2939]) - Deprecate
positionproperty ofya.input()in favor ofposto align withya.confirm()and its typeui.Pos([#2921]) - Deprecate
cx.tasks.progressin favor ofcx.tasks.summary([#3131]) - Deprecate
fragproperly ofUrlin favor ofdomain([#3034]) - Deprecate
ui.Rect.defaultin favor ofui.Rect {}([#2927])
Fixed
- User-prepended open rules do not override presets ([#3360])
- Respect user's system media opener instead of hardcoding
mpv([#2959]) - Incorrect
$0and$@parameters inshellaction under empty directories ([#3225]) - Avoid appending a newline when reading clipboard contents ([#3059])
- Renew package
revonly when it's empty ([#3200]) - Suspend only when there is a parent process ([#3008])
- Preserve open order for files with post-resolved MIME types ([#2931])
- A race condition in concurrent directory loading on a slow device ([#3271])
- Erase overlapping image portions when previewing errors ([#3067])
- Force Git checkout for plugin cache repositories ([#3169])
- Check compatibility when reusing previewer bytecode cache ([#3190])
- Disable kitty keyboard protocol on Windows due to
crossterminability to handle it ([#3250]) - Prevent quotes in file(1) arguments from being stripped under MSYS2 ([#3364])
- Expose
yaCLI in the Snap build ([#2904]) - Fallback to
PollWatcherfor file changes watching on NetBSD ([#2941]) - Generate unique image IDs for Kgp to tolerate tmux ([#3038])
Improved
- Make copy, cut, delete, link, hardlink, download, and upload tasks immediately cancellable ([#3429])
- Make preload tasks discardable ([#2875])
- Reduce file change event frequency ([#2820])
- Upload and download of a single file over SFTP in chunks concurrently ([#3393])
- Do not listen for file changes in inactive tabs ([#2958])
- Switch to a higher-performance hash algorithm ([#3083])
- Sequence-based rendering merge strategy ([#2861])
- Store only
Urninstead of fullUrlin find results ([#2914]) - Zero-copy
UrlBuftoUrlconversion ([#3117]) - String interning to reduce memory usage of mimetype and URL domain ([#3084], [#3091])
- Do not pre-allocate memory for Lua tables ([#2879])
- Copy-on-write on command data, and avoid converting primitive types to strings thereby allocating memory ([#2862])
- Use
AnyUserData::type_id()to reduce stack pushes ([#2834]) - App data instead of Lua registry to reduce stack pushes ([#2880])