Improve docs

Add features and integration docs.
pull/294/head
Arijit Basu 3 years ago
parent ea9c33539a
commit 4d61f2e9ad
No known key found for this signature in database
GPG Key ID: 0F8EF5258DC38077

@ -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)

@ -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)

@ -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)

@ -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
----------

@ -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)

@ -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 <kbd>h</kbd>, <kbd>j</kbd>, <kbd>k</kbd>, <kbd>l</kbd> or arrow keys
for basic navigation.
- Go to top using <kbd>g</kbd><kbd>g</kbd>, and bottom using <kbd>G</kbd>.
- Travel history using <kbd>ctrl-o</kbd> and <kbd>ctrl-i</kbd>.
- Go to home directory using <kbd>~</kbd>.
- Enter search mode with <kbd>/</kbd> or <kbd>ctrl-f</kbd>.
- Go to absolute index (e.g. `4`) using <kbd>4</kbd><kbd>enter</kbd> or
<kbd>:</kbd><kbd>4</kbd><kbd>enter</kbd>.
- Go to relative index (e.g. `4 down`) using <kbd>4</kbd><kbd>down</kbd> or
<kbd>:</kbd><kbd>4</kbd><kbd>down</kbd>.
- Follow symlink using <kbd>g</kbd><kbd>f</kbd>.
- Open in GUI using <kbd>g</kbd><kbd>x</kbd>.
- Spawn terminal using <kbd>:</kbd><kbd>!</kbd>.
- Toggle selection using <kbd>v</kbd> or <kbd>space</kbd>.
- Toggle select all using <kbd>V</kbd> or <kbd>ctrl-a</kbd>.
- Clear selections using <kbd>ctrl-u</kbd>.
- **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 (<kbd>q</kbd>).
- Quit with success and the result printed on stdout (<kbd>enter</kbd>).
- Quit with success and the present working directory printed on stdout
(<kbd>:</kbd><kbd>q</kbd><kbd>p</kbd>).
- Quit with success and the path under focus printed on stdout
(<kbd>:</kbd><kbd>q</kbd><kbd>f</kbd>).
- Quit with success and the selection printed on stdout
(<kbd>:</kbd><kbd>q</kbd><kbd>s</kbd>).
- Quit with failure (<kbd>ctrl-c</kbd>).

@ -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
--------

Loading…
Cancel
Save