diff options
author | qkzk <qkzk@users.noreply.github.com> | 2023-03-25 15:53:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-25 15:53:46 +0100 |
commit | 64d88ee791ee544aea618dd1795c5cf90cd51b68 (patch) | |
tree | 6792f620f02ad878f1ba6f25dd681c70903182ac | |
parent | 6361846412ac39e906ae5700960da94e219f824c (diff) | |
parent | b1afb80b43133c25a89d4be5fb74230024d150f3 (diff) |
Merge pull request #76 from qkzk/v0.1.20-devv0.1.20
V0.1.20 dev
42 files changed, 2214 insertions, 1244 deletions
@@ -81,6 +81,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] +name = "async-trait" +version = "0.1.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] name = "atty" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -164,6 +175,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] +name = "bytes" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +dependencies = [ + "byteorder", + "iovec", +] + +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" + +[[package]] name = "bzip2" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -817,7 +844,7 @@ dependencies = [ [[package]] name = "fm-tui" -version = "0.1.19" +version = "0.1.20" dependencies = [ "anyhow", "chrono", @@ -826,13 +853,15 @@ dependencies = [ "copypasta", "flate2", "fs_extra", + "futures 0.3.27", "gag", "indicatif", "log", "log4rs", + "nvim-rs", "pathdiff", "pdf-extract", - "rand", + "rand 0.8.5", "regex", "rust-lzma", "sanitize-filename", @@ -845,6 +874,7 @@ dependencies = [ "syntect", "sysinfo", "tar", + "tokio", "tuikit", "ueberzug", "url-escape", @@ -865,6 +895,103 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] +name = "futures" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + +[[package]] +name = "futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" + +[[package]] +name = "futures-executor" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" + +[[package]] +name = "futures-macro" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" + +[[package]] +name = "futures-task" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures 0.1.31", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", + "tokio-io", +] + +[[package]] name = "fuzzy-matcher" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -905,6 +1032,17 @@ dependencies = [ [[package]] name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" @@ -1038,6 +1176,15 @@ dependencies = [ ] [[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] name = "is-terminal" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1270,6 +1417,18 @@ dependencies = [ ] [[package]] +name = "mio" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.45.0", +] + +[[package]] name = "nix" version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1349,6 +1508,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] +name = "nvim-rs" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "970500bd39aa62735edf3080e75edd2b297fec806c8c4a0940180fa13a6d3f7a" +dependencies = [ + "async-trait", + "futures 0.3.27", + "log", + "parity-tokio-ipc", + "rmp", + "rmpv", + "tokio", + "tokio-util", +] + +[[package]] name = "objc" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1427,6 +1602,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" [[package]] +name = "parity-tokio-ipc" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" +dependencies = [ + "futures 0.3.27", + "libc", + "log", + "rand 0.7.3", + "tokio", + "winapi", +] + +[[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1456,11 +1645,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", - "rand_core", + "rand_core 0.6.4", "subtle", ] [[package]] +name = "paste" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" + +[[package]] name = "pathdiff" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1501,6 +1696,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] name = "pkg-config" version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1609,13 +1816,36 @@ dependencies = [ [[package]] name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", ] [[package]] @@ -1625,7 +1855,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", ] [[package]] @@ -1634,7 +1873,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.8", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", ] [[package]] @@ -1674,7 +1922,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom", + "getrandom 0.2.8", "redox_syscall", "thiserror", ] @@ -1706,6 +1954,27 @@ dependencies = [ ] [[package]] +name = "rmp" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmpv" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754" +dependencies = [ + "num-traits", + "rmp", +] + +[[package]] name = "rust-lzma" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1926,6 +2195,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" [[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] name = "skim-qkzk" version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1955,6 +2233,15 @@ dependencies = [ ] [[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] name = "smallvec" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1989,6 +2276,16 @@ dependencies = [ ] [[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] name = "standback" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2343,6 +2640,63 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] +name = "tokio" +version = "1.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" +dependencies = [ + "autocfg", + "bytes 1.4.0", + "libc", + "memchr", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.45.0", +] + +[[package]] +name = "tokio-io" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.31", + "log", +] + +[[package]] +name = "tokio-macros" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes 1.4.0", + "futures-core", + "futures-io", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + +[[package]] name = "tuikit" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2516,6 +2870,12 @@ dependencies = [ [[package]] name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" @@ -1,6 +1,6 @@ [package] name = "fm-tui" -version = "0.1.19" +version = "0.1.20" authors = ["Quentin Konieczko <qu3nt1n@gmail.com>"] edition = "2021" license-file = "LICENSE.txt" @@ -36,10 +36,12 @@ content_inspector = "0.2.4" copypasta = "0.8.1" flate2 = "1.0" fs_extra = "1.2.0" +futures = "0.3" gag = "1.0.0" indicatif = { version = "0.17.1", features= ["in_memory"] } log = { version = "0.4.0", features = ["std"] } log4rs = {version = "1.2.0", features = ["rolling_file_appender", "compound_policy", "size_trigger", "fixed_window_roller"] } +nvim-rs = { version = "0.3", features = ["use_tokio"] } pathdiff = "0.2.1" pdf-extract = "0.6.4" rand = "0.8.5" @@ -59,4 +61,5 @@ tuikit = "0.5.0" url-escape = "0.1.1" users = "0.11.0" zip = "0.6.4" +tokio = "1" ueberzug = "0.1.0" diff --git a/config_files/fm/tuis.yaml b/config_files/fm/tuis.yaml index b880ecc..c393a9d 100644 --- a/config_files/fm/tuis.yaml +++ b/config_files/fm/tuis.yaml @@ -8,3 +8,5 @@ btop: cwd: false glances: cwd: false +mocp: + cwd: true diff --git a/development.md b/development.md index 911de17..282e20d 100644 --- a/development.md +++ b/development.md @@ -430,6 +430,29 @@ New view: Tree ! Toggle with 't', fold with 'z'. Navigate normally. - [x] colors in menus. Use a repeated gradient of lime colors in menus +### Version 0.1.20 + +- [x] display version in help +- [x] replace FmResult & FmError by anyhow +- [x] update the readme +- [x] replace nvim-send by internal implemention +- [x] mount an iso file by opening it + - [x] recognize iso files + - [x] mkdir /run/media/$USER/fm_iso + - [x] sudo mount -o loop /path/filename.iso /run/media/$USER/fm_iso +- [x] preview the content of a iso file. Require the application isoinfo +- [x] fuzzy finder for keybindings with alt+h. The found keybinding will be run immediatly +- [x] rename: use current name instead of empty string +- [x] don't fail at first error in config.yaml. Allow parsing continuation. +- [x] common trait between cryptdevice and iso_file +- [x] Preview more filetypes - inspired by ranger + - [x] preview SVG like [ranger](https://github.com/ranger/ranger/pull/2537/files) does + - [x] preview font with fontimage like [ranger](https://github.com/ranger/ranger/blob/46660c277c2ceb7c7c41ffce794d68f8f559030f/ranger/data/scope.sh#L207-L225) + - [x] preview doc with pandoc or odt2txt [ranger](https://github.com/ranger/ranger/blob/46660c277c2ceb7c7c41ffce794d68f8f559030f/ranger/data/scope.sh#L84-L93) + - [x] preview notebooks +- [x] mocp go to song: `mocp -Q %file` with alt+enter (lack of a better keybinding) +- [x] display openers in help + ## TODO - [ ] remote control @@ -455,20 +478,22 @@ New view: Tree ! Toggle with 't', fold with 'z'. Navigate normally. - [ ] read events from stdin ? can't be done from tuikit. Would require another thread ? - [ ] pushbullet ? -- [ ] Version 0.1.20 - + - [ ] update the animation - [ ] exec multiple flagged files - [ ] shell menu - [ ] allow non tui like wttr, diff, bat, tail -n etc. - [ ] more options like "use flagged files" for diff - - [ ] replace FmResult & FmError by anyhow since I'm already using it... - [ ] build option to force reset of config file, warn the user at first start - - [ ] update readme & animation - [ ] optionable "plugin" started from config file. Would require every option to be `Option<Plugin>` and may cause problems with the borrow checker. - [ ] edit folder like a buffer [oil like](https://github.com/stevearc/oil.nvim) - [ ] allow pipe in execution + - [ ] refactor cryptdevice and iso_file + - [ ] mode to handle those mounts. ATM it's all over the place... + - [ ] allow mounting some other devices + - [ ] list non mounted devices, list all mount points + - [ ] act on them - [ ] sub window / menu for completion / selection. @@ -51,17 +51,20 @@ If you added the [recommanded function](#cd-on-quit) to your bashrc/zshrc, simpl ## Features +Some features depends on external programs to keep fm from being really bloated. + - Navigate with the arrows or the mouse (left select, right open, wheel) - Open a file with o, enter or right click - Execute a file with a custom command with e - Copy / move / symlinks / delete with c, p, s, x - Create files, directory, rename with n, d, r - Open a new shell in this directory with s +- Start a configured TUI application with S - Flag a bunch of file, change panel with TAB and move/copy them ! - Many ways to jump somewhere : - g: type the full address (with completion enabled), - - G: a predefined shortcut (default root folders, home and mount points), + - G: a predefined shortcut (default root folders, home and mount points, gitroot, config folder), - j: by jumping to a flagged file, - ': by creating your own marks and jumping to them @@ -69,16 +72,24 @@ If you added the [recommanded function](#cd-on-quit) to your bashrc/zshrc, simpl - Preview most of files (text, highlighted code, binary, pdf, exif details, video/audio details, archives) with P - Display a tree view of directory by previewing it - Decompress an archive by opening it (o, enter, right click) +- Compress flagged files with C. Pick the desired algorithm from a menu. - Copy a filename/filepath to clipboard with Ctrl+n, Ctrl+p -- Rename a bunch of file with B. Flag files, B, edit the names and save the file. The renaming is done. +- Rename or create a bunch of file with B. Flag files, B, edit the names and save the file. The renaming is done. + You can create nested files with `a/b/c` which will create every intermediate folder if needed. - Use the integrated fuzzy finder (forked version of skim, an fzf clone) with Ctrl+f to navigate quickly +- The same fuzzy finder can find specific lines in files with Ctrl+s - Filter the view (by extension, name, directory only, all files) with F - Find files with / (with completion), flag files matching a regex with w - Detect removable disks automatically and jump to them in a few keystrokes (G, up, enter) - Drag and drop files (requires dragon-drop installed) with Alt+D - Trash a file with X, open the trash with Alt+o. x to remove permanently, enter to restore. Wipe the trash with Alt+x. -- Toggle the tree view with t. Fold folders with z. Unfold every folder with Z, fold every folder with Alt+z. +- Toggle the tree view with t. Fold selected folder with z. Unfold every folder with Z, fold every folder with Alt+z. - Open and mount encrypted devices. Open the menu with Shift+e, mount with m, unmount with u. +- diff the first two files / folders with D. +- Enter preview mode with Alt+P. Every file is previewed in the second pane. +- Contol MOCP with Ctrl+arrows. Ctrl+Left, Ctrl+Right: previous or next song. Ctrl+Down: Toggle pause. Ctrl+Up: add current folder to playlist +- Set the selected image as wallpaper with W. +- _Experimental_ enter "command mode" with ':'. Type the name of a command and it will be executed. Most of those features are inspired by ranger and alternatives (Midnight commander), the look and feel by dired. @@ -92,8 +103,6 @@ It should always work, even outside of neovim. It's also possible to pass the RPC server address with `fm -s address`. -This feature requires `nvim-send` to be installed (`cargo install nvim-send`) - ## cd on quit |