summaryrefslogtreecommitdiff
path: root/mac/.config/yazi/plugins.bak/zoom.yazi
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-09-13 17:14:51 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-09-13 17:14:51 +0900
commita3ed0a3cb36d192c37e040d0dfe57c42113f2161 (patch)
treec216d680c4bfbe2e53232af1496c9655e347d79b /mac/.config/yazi/plugins.bak/zoom.yazi
parent2e6d3671d0e01ff5751893075e7fc5c53b288f95 (diff)
updates
Diffstat (limited to 'mac/.config/yazi/plugins.bak/zoom.yazi')
-rw-r--r--mac/.config/yazi/plugins.bak/zoom.yazi/README.md56
-rw-r--r--mac/.config/yazi/plugins.bak/zoom.yazi/main.lua119
2 files changed, 0 insertions, 175 deletions
diff --git a/mac/.config/yazi/plugins.bak/zoom.yazi/README.md b/mac/.config/yazi/plugins.bak/zoom.yazi/README.md
deleted file mode 100644
index 9be8025..0000000
--- a/mac/.config/yazi/plugins.bak/zoom.yazi/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-> [!NOTE]
-> The latest Yazi nightly build is required to use this plugin at the moment.
-
-# zoom.yazi
-
-Enlarge or shrink the preview image of a file, which is useful for magnifying small files for viewing.
-
-Supported formats:
-
-- Images - requires [ImageMagick](https://imagemagick.org/) (>= 7.1.1)
-
-Note that, the maximum size of enlarged images is limited by the [`max_width`][max_width] and [`max_height`][max_height] configuration options, so you may need to increase them as needed.
-
-https://github.com/user-attachments/assets/b28912b1-da63-43d3-a21f-b9e6767ed4a9
-
-[max_width]: https://yazi-rs.github.io/docs/configuration/yazi#preview.max_width
-[max_height]: https://yazi-rs.github.io/docs/configuration/yazi#preview.max_height
-
-## Installation
-
-```sh
-ya pkg add yazi-rs/plugins:zoom
-```
-
-## Usage
-
-```toml
-# keymap.toml
-[[mgr.prepend_keymap]]
-on = "+"
-run = "plugin zoom 1"
-desc = "Zoom in hovered file"
-
-[[mgr.prepend_keymap]]
-on = "-"
-run = "plugin zoom -1"
-desc = "Zoom out hovered file"
-```
-
-## Advanced
-
-If you want to apply a default zoom parameter to image previews, you can specify it while setting this plugin up as a custom previewer, for example:
-
-```toml
-[[plugin.prepend_previewers]]
-mime = "image/{jpeg,png,webp}"
-run = "zoom 5"
-```
-
-## TODO
-
-- [ ] Support more file types (e.g., videos, PDFs), PRs welcome!
-
-## License
-
-This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
diff --git a/mac/.config/yazi/plugins.bak/zoom.yazi/main.lua b/mac/.config/yazi/plugins.bak/zoom.yazi/main.lua
deleted file mode 100644
index 8aea0cd..0000000
--- a/mac/.config/yazi/plugins.bak/zoom.yazi/main.lua
+++ /dev/null
@@ -1,119 +0,0 @@
---- @since 25.6.11
-
-local get = ya.sync(function(st, url) return st.last == url and st.level end)
-
-local save = ya.sync(function(st, url, new)
- local h = cx.active.current.hovered
- if h and h.url == url then
- st.last, st.level = url, new
- return true
- end
-end)
-
-local lock = ya.sync(function(st, url, old, new)
- if st.last == url and st.level == old then
- st.level = new
- return true
- end
-end)
-
-local move = ya.sync(function(st)
- local h = cx.active.current.hovered
- if not h then
- return
- end
-
- if st.last ~= h.url then
- st.last, st.level = Url(h.url), 0
- end
-
- return { url = h.url, level = st.level }
-end)
-
-local function end_(job, err)
- if not job.old_level then
- ya.preview_widget(job, err and ui.Text(err):area(job.area):wrap(ui.Wrap.YES))
- elseif err then
- ya.notify { title = "Zoom", content = tostring(err), timeout = 5, level = "error" }
- end
-end
-
-local function canvas(area)
- local cw, ch = rt.term.cell_size()
- if not cw then
- return rt.preview.max_width, rt.preview.max_height
- end
-
- return math.min(rt.preview.max_width, math.floor(area.w * cw)),
- math.min(rt.preview.max_height, math.floor(area.h * ch))
-end
-
-local function peek(_, job)
- local url = job.file.url
- local info, err = ya.image_info(url)
- if not info then
- return end_(job, Err("Failed to get image info: %s", err))
- end
-
- local level = ya.clamp(-10, job.new_level or get(Url(url)) or tonumber(job.args[1]) or 0, 10)
- local sync = function()
- if job.old_level then
- return lock(url, job.old_level, level)
- else
- return save(url, level)
- end
- end
-
- local max_w, max_h = canvas(job.area)
- local min_w, min_h = math.min(max_w, info.w), math.min(max_h, info.h)
- local new_w = min_w + math.floor(min_w * level * 0.1)
- local new_h = min_h + math.floor(min_h * level * 0.1)
- if new_w > max_w or new_h > max_h then
- if job.old_level then
- return sync() -- Image larger than available preview area after zooming
- else
- new_w, new_h = max_w, max_h -- Run as a previewer, render the image anyway
- end
- end
-
- local tmp = os.tmpname()
- -- stylua: ignore
- local status, err = Command("magick"):arg {
- tostring(url),
- "-auto-orient", "-strip",
- "-sample", string.format("%dx%d", new_w, new_h),
- "-quality", rt.preview.image_quality,
- string.format("JPG:%s", tmp),
- }:status()
-
- if not status then
- end_(job, Err("Failed to run `magick` command: %s", err))
- elseif not status.success then
- end_(job, Err("`magick` command exited with error code %d", status.code))
- elseif sync() then
- ya.image_show(Url(tmp), job.area)
- end
- end_(job)
-end
-
-local function entry(self, job)
- local st = move()
- if not st then
- return
- end
-
- local motion = tonumber(job.args[1]) or 0
- local new = ya.clamp(-10, st.level + motion, 10)
- if new ~= st.level then
- peek(self, {
- area = ui.area("preview"),
- args = {},
- file = { url = st.url }, -- FIXME: use `File` instead of a dummy file
- skip = 0,
- new_level = new,
- old_level = st.level,
- })
- end
-end
-
-return { peek = peek, entry = entry }