From 75575496aab97d12ab449ac9c1842a2e60006ea0 Mon Sep 17 00:00:00 2001 From: yh-sb Date: Sat, 20 Dec 2025 14:45:25 +0200 Subject: [PATCH] feat: lz and lz4 archives support --- yazi-config/preset/theme-dark.toml | 2 +- yazi-config/preset/theme-light.toml | 2 +- yazi-config/preset/yazi-default.toml | 4 ++-- yazi-plugin/preset/plugins/extract.lua | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/yazi-config/preset/theme-dark.toml b/yazi-config/preset/theme-dark.toml index 56f46344..035b4029 100644 --- a/yazi-config/preset/theme-dark.toml +++ b/yazi-config/preset/theme-dark.toml @@ -243,7 +243,7 @@ rules = [ # Media { mime = "{audio,video}/*", fg = "magenta" }, # Archive - { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "red" }, + { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,*lzip,*lz4,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "red" }, # Document { mime = "application/{pdf,doc,rtf}", fg = "cyan" }, # Virtual file system diff --git a/yazi-config/preset/theme-light.toml b/yazi-config/preset/theme-light.toml index d6aef72b..b78ee1c8 100644 --- a/yazi-config/preset/theme-light.toml +++ b/yazi-config/preset/theme-light.toml @@ -243,7 +243,7 @@ rules = [ # Media { mime = "{audio,video}/*", fg = "magenta" }, # Archive - { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "red" }, + { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,*lzip,*lz4,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "red" }, # Document { mime = "application/{pdf,doc,rtf}", fg = "cyan" }, # Virtual file system diff --git a/yazi-config/preset/yazi-default.toml b/yazi-config/preset/yazi-default.toml index b74651cd..924a7b32 100644 --- a/yazi-config/preset/yazi-default.toml +++ b/yazi-config/preset/yazi-default.toml @@ -74,7 +74,7 @@ rules = [ # Media { mime = "{audio,video}/*", use = [ "play", "reveal" ] }, # Archive - { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", use = [ "extract", "reveal" ] }, + { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,*lzip,*lz4,lzma,compress,archive,cpio,arj,xar,ms-cab*}", use = [ "extract", "reveal" ] }, # JSON { mime = "application/{json,ndjson}", use = [ "edit", "reveal" ] }, { mime = "*/javascript", use = [ "edit", "reveal" ] }, @@ -148,7 +148,7 @@ previewers = [ # PDF { mime = "application/pdf", run = "pdf" }, # Archive - { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", run = "archive" }, + { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,*lzip,*lz4,lzma,compress,archive,cpio,arj,xar,ms-cab*}", run = "archive" }, { mime = "application/{debian*-package,redhat-package-manager,rpm,android.package-archive}", run = "archive" }, { url = "*.{AppImage,appimage}", run = "archive" }, # Virtual Disk / Disk Image diff --git a/yazi-plugin/preset/plugins/extract.lua b/yazi-plugin/preset/plugins/extract.lua index d271f3cd..e7b5f2f7 100644 --- a/yazi-plugin/preset/plugins/extract.lua +++ b/yazi-plugin/preset/plugins/extract.lua @@ -112,7 +112,7 @@ function M.tmp_name(url) return ".tmp_" .. ya.hash(string.format("extract//%s//% function M.trim_ext(name) -- stylua: ignore - local exts = { ["7z"] = true, apk = true, bz2 = true, bzip2 = true, cbr = true, cbz = true, exe = true, gz = true, gzip = true, iso = true, jar = true, rar = true, tar = true, tgz = true, xz = true, zip = true, zst = true } + local exts = { ["7z"] = true, apk = true, bz2 = true, bzip2 = true, cbr = true, cbz = true, exe = true, gz = true, gzip = true, iso = true, jar = true, lzip = true, lz = true, lz4 = true, rar = true, tar = true, tgz = true, xz = true, zip = true, zst = true } while true do local s = name:gsub("%.([a-zA-Z0-9]+)$", function(s) return (exts[s] or exts[s:lower()]) and "" end)