summaryrefslogtreecommitdiff
path: root/fedora/.config/yazi/plugins/smart-enter.yazi
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-12-11 11:46:09 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-12-11 11:46:09 +0900
commit8c0fe8d0d0dd4bbd16c1095e25b2e3ffa1fdb0d3 (patch)
tree597b8dfd730eda9b410fb6082b0bee7fcc7e70e2 /fedora/.config/yazi/plugins/smart-enter.yazi
parent74713d79880967f5f0f8652c6741bc5fa63a8794 (diff)
updates
Diffstat (limited to 'fedora/.config/yazi/plugins/smart-enter.yazi')
-rw-r--r--fedora/.config/yazi/plugins/smart-enter.yazi/README.md40
-rw-r--r--fedora/.config/yazi/plugins/smart-enter.yazi/main.lua11
2 files changed, 51 insertions, 0 deletions
diff --git a/fedora/.config/yazi/plugins/smart-enter.yazi/README.md b/fedora/.config/yazi/plugins/smart-enter.yazi/README.md
new file mode 100644
index 0000000..742f2e1
--- /dev/null
+++ b/fedora/.config/yazi/plugins/smart-enter.yazi/README.md
@@ -0,0 +1,40 @@
+# smart-enter.yazi
+
+[`Open`][open] files or [`enter`][enter] directories all in one key!
+
+## Installation
+
+```sh
+ya pkg add yazi-rs/plugins:smart-enter
+```
+
+## Usage
+
+Bind your <kbd>l</kbd> key to the plugin, in your `~/.config/yazi/keymap.toml`:
+
+```toml
+[[mgr.prepend_keymap]]
+on = "l"
+run = "plugin smart-enter"
+desc = "Enter the child directory, or open the file"
+```
+
+## Advanced
+
+By default, `--hovered` is passed to the [`open`][open] command, make the behavior consistent with [`enter`][enter] avoiding accidental triggers,
+which means both will only target the currently hovered file.
+
+If you still want `open` to target multiple selected files, add this to your `~/.config/yazi/init.lua`:
+
+```lua
+require("smart-enter"):setup {
+ open_multi = true,
+}
+```
+
+## License
+
+This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.
+
+[open]: https://yazi-rs.github.io/docs/configuration/keymap/#mgr.open
+[enter]: https://yazi-rs.github.io/docs/configuration/keymap/#mgr.enter
diff --git a/fedora/.config/yazi/plugins/smart-enter.yazi/main.lua b/fedora/.config/yazi/plugins/smart-enter.yazi/main.lua
new file mode 100644
index 0000000..e9e2ec6
--- /dev/null
+++ b/fedora/.config/yazi/plugins/smart-enter.yazi/main.lua
@@ -0,0 +1,11 @@
+--- @since 25.5.31
+--- @sync entry
+
+local function setup(self, opts) self.open_multi = opts.open_multi end
+
+local function entry(self)
+ local h = cx.active.current.hovered
+ ya.emit(h and h.cha.is_dir and "enter" or "open", { hovered = not self.open_multi })
+end
+
+return { entry = entry, setup = setup }