diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-11 11:46:09 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-11 11:46:09 +0900 |
| commit | 8c0fe8d0d0dd4bbd16c1095e25b2e3ffa1fdb0d3 (patch) | |
| tree | 597b8dfd730eda9b410fb6082b0bee7fcc7e70e2 /fedora/.config/yazi/plugins/chmod.yazi/main.lua | |
| parent | 74713d79880967f5f0f8652c6741bc5fa63a8794 (diff) | |
updates
Diffstat (limited to 'fedora/.config/yazi/plugins/chmod.yazi/main.lua')
| -rw-r--r-- | fedora/.config/yazi/plugins/chmod.yazi/main.lua | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/fedora/.config/yazi/plugins/chmod.yazi/main.lua b/fedora/.config/yazi/plugins/chmod.yazi/main.lua new file mode 100644 index 0000000..a50a864 --- /dev/null +++ b/fedora/.config/yazi/plugins/chmod.yazi/main.lua @@ -0,0 +1,42 @@ +--- @since 25.5.31 + +local selected_or_hovered = ya.sync(function() + local tab, paths = cx.active, {} + for _, u in pairs(tab.selected) do + paths[#paths + 1] = tostring(u) + end + if #paths == 0 and tab.current.hovered then + paths[1] = tostring(tab.current.hovered.url) + end + return paths +end) + +return { + entry = function() + ya.emit("escape", { visual = true }) + + local urls = selected_or_hovered() + if #urls == 0 then + return ya.notify { title = "Chmod", content = "No file selected", level = "warn", timeout = 5 } + end + + local value, event = ya.input { + title = "Chmod:", + pos = { "top-center", y = 3, w = 40 }, + position = { "top-center", y = 3, w = 40 }, -- TODO: remove + } + if event ~= 1 then + return + end + + local status, err = Command("chmod"):arg(value):arg(urls):spawn():wait() + if not status or not status.success then + ya.notify { + title = "Chmod", + content = string.format("Chmod on selected files failed, error: %s", status and status.code or err), + level = "error", + timeout = 5, + } + end + end, +} |
