Commit Graph

58 Commits (ae8a391064bc3953a5499c0af46c1f8893203997)

Author SHA1 Message Date
Arijit Basu ae8a391064 Introduce `PopMode`
This change requires manual `Refresh` after mode switches.
Also, fix the rename operation.
3 years ago
Arijit Basu 65fa408fea Stay in filter mode after applying filters
Also stay in create mode after creating files and directories.
3 years ago
Arijit Basu c68bd96253 Add reckless mode
Pressing an invalid key will take you to the "reckless" mode. All you
need to do is calm down, escape that mode, and try again.

Closes: https://github.com/sayanarijit/xplr/issues/142
3 years ago
Arijit Basu efec86c616 Clear selection after copy 3 years ago
Arijit Basu e0f8207900 Improve key bindings
Stay in the current mode when key input is not recognised. It's better
to do nothing than doing something wrong, at least when dealing with
important files and folders.
3 years ago
Arijit Basu 50d6edb168 Fix search 3 years ago
Arijit Basu 3e812045e6
Fix release 3 years ago
Arijit Basu 92545f6387 Fix rename breaking UI 3 years ago
Arijit Basu 7c5468cabe Fix exploring and escaping paths
This PR targets 2 pain points.

1. The `Explore` message was async, which caused some unexpected
   behavior. This was fixed by splitting `Explore` into `ExplorePwd`,
   `ExplorePwdAsync` and `ExploreParentsAsync`. `ExploreParentsAsync`
   is similar to the former `Explore`, which is mainly used when loading
   `xplr` for the first time. However, what we'll be using frequently
   are `ExplorePwd` and `ExplorePwdAsync` messages.

2. Files with spaces caused some unexpected behavior. This was fixed by
   escaping the paths properly. This also fixed focusing of a file after
   creating or renaming it.

Anothor breaking change is that `XPLR_PIPE_FOCUS_OUT` has been removed.
`XPLR_FOCUS_PATH` is all we need. So, the rule of thumb is if a variable
contains one liner value, it can be used directly from the env vars.
Variables that can contain multi-line values, will be exposed via the
pipes.

Minor changes are

- Add `switch_mode` mode to the global key binding help menu
- Moved some UI related code from config.rs to ui.rs.
- Fixed compilation issue on `rustc 1.50.0`.
3 years ago
Arijit Basu 52fbaef189 Fix displaying global help menu
Also support toggle selection in search mode.
And use a pager to display logs.
3 years ago
Arijit Basu 9e89c6503d Use key `tab` to select files in search mode
Select files fzf style in search mode, without losing the search input.

Also, make background tasks failsafe and measure ui rendering.
3 years ago
Arijit Basu 38812e733b Improve config inheritance for layout UI
With this commit, users will be able to define the common configuration
as super config and inherit from them in each layout.
3 years ago
Arijit Basu fd92d8ee01 Make modifiers more intuitive
It's difficult to calculate the bits for adding and removing modifiers.
With this commit, we be will use words `Bold`, `Italic` instead of `bits: x`.
3 years ago
Arijit Basu 59b55ee192 Add more UI styling options
With this commit, the following can be done:

- Define layout constraints based on screen size and relative panel
  size.
- Define borders.
- Define panel style.
- Define panel title and title style.
3 years ago
Arijit Basu b8df831248 Add `Nothing` layout config inheritance workaround
Any layouts will default to `Nothing` which resembles blank screen.
However, they will be overwritten when there is a more specific layout
available either in the super config or in the sub config.
3 years ago
Arijit Basu b3e6679b50 Add feature dynamic UI
Now, users can change the UI layout via the `SwitchLayout{Builtin|Custom}`
message, or by using key `ctrl-w`.

There are 3 default layout options -

- default
- no_help
- no_selection
- no_help_no_selection

Also, the initial mode and the initial layout can be specified in the
config.

Closes: https://github.com/sayanarijit/xplr/issues/107
3 years ago
Arijit Basu 0584a43c7c Add SwitchModeBuiltin and SwitchModeCustom
Also, use a better prompt symbol.

Ref: https://github.com/sayanarijit/xplr/issues/107
3 years ago
Arijit Basu c0c4f27ef8 Update version 3 years ago
Arijit Basu 1c967cfef6 Update version 3 years ago
aflying pumpkin c9d62d6061 Fixed indentation
Fixed indentation
3 years ago
aflying pumpkin d0fd1c6bce added ctrl-n and ctrl-p as rebinds for down and up inside of search mode, to improve usability 3 years ago
Arijit Basu 36af3e8ced Fix pipes not updating properly
Let's not optimize things until we have tests.
3 years ago
Arijit Basu 4dad10815a Fix support for filenames starting with - (hiphen)
Make it possible to create, delete, copy, move, rename filenames starting
with a - (hiphen).
3 years ago
Arijit Basu 2437fd67cf Fix distorted screen when opening files in GUI
Fixes: https://github.com/sayanarijit/xplr/issues/111
3 years ago
Arijit Basu eca35c73a2 Update version 3 years ago
Arijit Basu d81111c134 Reduce col_spacing to 1 3 years ago
Arijit Basu e9b5dfe478 Fix incompatible config version
Fixes: https://github.com/sayanarijit/xplr/issues/97
3 years ago
Arijit Basu 36c2c9cc2b
Update version 3 years ago
Arijit Basu 1ffa85f30f Do not exit on permission denial
While trying to enter restricted directories, log error instead or
exiting.
3 years ago
Arijit Basu 2e541fbf04
Minor UI improvement 3 years ago
Arijit Basu ad3dd8eec2
Update version 3 years ago
Arijit Basu 785c20de13 Sync pwd
Sync session's $PWD with `xplr`'s current directory.
If you use alacritty, every window will open in `xplr`'s current
directory.
3 years ago
Arijit Basu c11099f651 Fix follow symlink behavior.
Use `gf` to follow symlinks instead of `enter`/`l`.

Or use the message `FollowSymlink`.
3 years ago
Arijit Basu 87cd6ff015 Fix global help menu not displaying sort & filter 3 years ago
Arijit Basu 1f99e8ba99 Follow file symlinks
Follow symlink to files to it's parent directory.

Also, hide file size for directories.

Ref: https://github.com/sayanarijit/xplr/issues/84
3 years ago
Arijit Basu 1783834a2e Fix ctrl-l breaking UI
Also improve the filter mode key bindings

Fixes: https://github.com/sayanarijit/xplr/issues/88
3 years ago
Arijit Basu ca13ebb193 Added inode size
Also supports sorting by inode size.

Closes: https://github.com/sayanarijit/xplr/issues/84
3 years ago
Arijit Basu 21f87d6a08 Add read-only mode
Ref: https://github.com/sayanarijit/xplr/issues/22
3 years ago
Arijit Basu 4d21a89050 Use ctrl-r to refresh, ctrl-l to clear selection 3 years ago
Arijit Basu 1bb2622f24 Improve key inputs
Add support proper implementations of -

- backspace
- ctrl-w
- ctrl-u

Also, improved sort and filter behavior.

Fixes: https://github.com/sayanarijit/xplr/issues/77
3 years ago
Maxim Baz 468cf7f3df Allow empty icons 3 years ago
Arijit Basu f582f49ad8 Make search and filter case insensitive 3 years ago
Arijit Basu 1546ba0a75 Add filter key binding 3 years ago
Arijit Basu a8896740c8 Add sorting support
Also improve filtering.

Closes: https://github.com/sayanarijit/xplr/issues/58
3 years ago
Arijit Basu bbd5c1ba8b
Map V to `ctrl-a` 3 years ago
Arijit Basu 54bad4aa09 Add mode selection commands
- SelectAll
- SelectPath
- UnSelectAll
- UnSelectPath
- ToggleSelectAll
- ToggleSelectionByPath
3 years ago
Arijit Basu d0342260fe Add support for NO_COLOR
Also, add `general.logs` to the config.

Ref: https://no-color.org/
3 years ago
Arijit Basu af1cda5762 Better symlink support
Closes: https://github.com/sayanarijit/xplr/issues/37
3 years ago
Arijit Basu 0d4cd29a08 Fix panic on permission denied
Issue:
$PWD watch service panics when visiting restricted directories.

Fix:
Log error instead of panic.
3 years ago
Arijit Basu ea42b1969a Improve scrolling behaviour
Closes: https://github.com/sayanarijit/xplr/issues/54
3 years ago