diff --git a/README.md b/README.md index c319edf..ea24e4d 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,8 @@ Table of content - [Installing Plugins](https://arijitbasu.in/xplr/en/installing-plugins.html) - [Writing Plugins](https://arijitbasu.in/xplr/en/writing-plugins.html) - [Awesome Plugins](https://arijitbasu.in/xplr/en/awesome-plugins.html) +- [Integration](https://arijitbasu.in/xplr/en/integration.html) + - [Awesome Integrations](https://arijitbasu.in/xplr/en/awesome-integrations.html) - [TODO](https://arijitbasu.in/xplr/en/todo.html) - [Alternatives](https://arijitbasu.in/xplr/en/alternatives.html) - [Upgrade Guide](https://arijitbasu.in/xplr/en/upgrade-guide.html) diff --git a/docs/en/src/SUMMARY.md b/docs/en/src/SUMMARY.md index bac7fff..c27f39b 100644 --- a/docs/en/src/SUMMARY.md +++ b/docs/en/src/SUMMARY.md @@ -19,6 +19,8 @@ A hackable, minimal, fast TUI file explorer - [Installing Plugins](installing-plugins.md) - [Writing Plugins](writing-plugins.md) - [Awesome Plugins](awesome-plugins.md) +- [Integration](integration.md) + - [Awesome Integrations](awesome-integrations.md) - [TODO](todo.md) - [Alternatives](alternatives.md) - [Upgrade Guide](upgrade-guide.md) diff --git a/docs/en/src/awesome-integrations.md b/docs/en/src/awesome-integrations.md new file mode 100644 index 0000000..2c128ca --- /dev/null +++ b/docs/en/src/awesome-integrations.md @@ -0,0 +1,34 @@ +Awesome Integrations +==================== + +Here's a list of awesome xplr integrations that you might want to check out. + +If none of the following integrations work for you, you can create your own and +[let us know](https://github.com/sayanarijit/xplr/discussions/categories/show-and-tell). + + +Categories +---------- + +- [Editor](#editor) +- [Shell](#shell) +- [Security Tools](#security-tools) + + +Editor +------ + +- [xplr.vim](https://github.com/sayanarijit/xplr.vim) +- [vim-floaterm](https://github.com/voldikss/vim-floaterm#xplr) + + +Shell +----- + +- [powerlevel10k](https://github.com/romkatv/powerlevel10k/blob/191d1b89e325ee3b6d2d75a394654aaf4f077a7c/internal/p10k.zsh#L4756-L4768) + + +Security Tools +-------------- + +- [gpg-tui](https://github.com/orhun/gpg-tui#importreceive) diff --git a/docs/en/src/awesome-plugins.md b/docs/en/src/awesome-plugins.md index 68fa3c2..2c49393 100644 --- a/docs/en/src/awesome-plugins.md +++ b/docs/en/src/awesome-plugins.md @@ -1,6 +1,11 @@ Awesome Plugins =============== +Here's a list of awesome xplr plugins that you might want to check out. If none +of the following plugins work for you, it's very easy to +[write your own](./writing-plugins.md). + + Categories ---------- diff --git a/docs/en/src/integration.md b/docs/en/src/integration.md new file mode 100644 index 0000000..5b83217 --- /dev/null +++ b/docs/en/src/integration.md @@ -0,0 +1,7 @@ +Integration +=========== + +xplr is designed to integrate well with other other tools and commands. If can +be used as a file picker or an integrated file manager. + +- [Awesome Integrations](awesome-integrations.md) diff --git a/docs/en/src/introduction.md b/docs/en/src/introduction.md index a75f687..7a7758b 100644 --- a/docs/en/src/introduction.md +++ b/docs/en/src/introduction.md @@ -13,3 +13,103 @@ GUI file managers. Rather, it aims to integrate them all and expose an intuitive, scriptable, keyboard controlled, real-time visual interface, also being an ideal candidate for further integration, enabling the users to achieve insane terminal productivity. + + +Features +-------- + +### Hackable + +xplr is built with configurability in mind. So it allows you to perform a vast +set of operations and make it behave just the way you want. + +A few things you can do with the [`xplr`][xplr] configuration + +- [Hack the layout](layouts.md) +- [Hack the key bindings](modes.md) +- [Extend with plugins](awesome-plugins.md) + + +## Fast + +Although speed is not the primary concern, [`xplr`][xplr] is already fast +enough so that you can take it out for a walk into your `node_modules` or +`/nix/store` any time you want. I currently +[measure the most commonly used operations](https://github.com/sayanarijit/xplr/tree/main/benches) +and I have seen it improve significantly over time, and it's only the start. + +**Tip:** A quick and easy way to optimize UI rendering is reducing the number +of columns in the table. + +**Note:** If you feel [`xplr`][xplr] is not behaving at its optimal, this is +probably because I am waiting for someone to complain. I want to avoid +optimizing things I don't need to, because optimization often requires either +complexity or feature sacrifice or both. + + +## Minimalist + +[`xplr`][xplr] prefers to stay minimal, both in terms of features and binary +size, but just like speed, minimalism isn't as aggressively pursued as +configurability. If adding some feature, lines of code, or a dependency allows +the users to be a little more productive or allows [`xplr`][xplr] to be a +little more configurable, it will be considered. But of-course, the `bulk vs +productivity gain per user` balance will also be considered in the +decision-making. + + +## Other features + +- [Embedded LuaJIT](https://github.com/sayanarijit/xplr/discussions/183) for + portability and extensibility. +- **Switchable recover mode:** Saves you from doing unwanted things when in a + hurry. +- **Sane (vim-like) defaults:** + - Use h, j, k, l or arrow keys + for basic navigation. + - Go to top using gg, and bottom using G. + - Travel history using ctrl-o and ctrl-i. + - Go to home directory using ~. + - Enter search mode with / or ctrl-f. + - Go to absolute index (e.g. `4`) using 4enter or + :4enter. + - Go to relative index (e.g. `4 down`) using 4down or + :4down. + - Follow symlink using gf. + - Open in GUI using gx. + - Spawn terminal using :!. + - Toggle selection using v or space. + - Toggle select all using V or ctrl-a. + - Clear selections using ctrl-u. +- **Separate keys for navigation:** navigation keys are separated from the + action keys (e.g. file opening action) to avoid mistakenly performing + unwanted actions while navigating. +- **Always visible panels** to save you brain cycles: + - Selection list. + - Help menu. + - Input & logs. + - Filter and sort pipeline. +- **Batch creation:** Create multiple files and directories without repeating + keys. +- **Batch sort & filter:** Apply sorters and filters in without repeating keys. +- **Custom file properties:** Display custom file properties with custom colors + in the table using Lua functions. +- **Input buffer:** Read user input using the built-in input buffer with + customizable behavior. +- **Switchable layouts:** Switch layouts dynamically without leaving `xplr`. +- **Saved locations:** Never lose context when traveling back and forth + directories. +- **Auto refresh state:** Auto refresh app state when the `$PWD` changes. +- **Manually refresh UI** when other apps mess it up. +- **FIFO-based previews:** Easy to manage FIFO file that can be used to + [integrate with previewers](https://github.com/sayanarijit/xplr/pull/229). +- **Different quit options:** + - Quit with success without any output (q). + - Quit with success and the result printed on stdout (enter). + - Quit with success and the present working directory printed on stdout + (:qp). + - Quit with success and the path under focus printed on stdout + (:qf). + - Quit with success and the selection printed on stdout + (:qs). + - Quit with failure (ctrl-c). diff --git a/docs/en/src/writing-plugins.md b/docs/en/src/writing-plugins.md index 0e4688a..70e1e29 100644 --- a/docs/en/src/writing-plugins.md +++ b/docs/en/src/writing-plugins.md @@ -56,6 +56,9 @@ When publishing plugins on GitHub or other repositories, it's a best practice to append `.xplr` to the name to make them distinguishable. Similar to the `*.nvim` naming convention for [Neovim](https://neovim.io) plugins. +Finally, after publishing, don't hesitate to +[let us know](https://github.com/sayanarijit/xplr/discussions/categories/show-and-tell). + Examples --------