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
2021-05-08 12:44:08 +05:30
Arijit Basu
474c17b493
Minor fix
2021-05-07 20:08:16 +05:30
Arijit Basu
0584a43c7c
Add SwitchModeBuiltin and SwitchModeCustom
...
Also, use a better prompt symbol.
Ref: https://github.com/sayanarijit/xplr/issues/107
2021-05-07 20:08:52 +05:30
Arijit Basu
c0c4f27ef8
Update version
2021-05-01 20:53:00 +05:30
Arijit Basu
2c7ec47253
Fix cd
on first focus
...
Fix issue where running `xplr /path/to/file` doesn't `cd` into the
parent directory.
2021-05-01 20:31:46 +05:30
Arijit Basu
1c967cfef6
Update version
2021-04-30 17:40:51 +05:30
aflying pumpkin
c9d62d6061
Fixed indentation
...
Fixed indentation
2021-04-30 10:13:44 +05:30
aflying pumpkin
d0fd1c6bce
added ctrl-n and ctrl-p as rebinds for down and up inside of search mode, to improve usability
2021-04-30 10:13:44 +05:30
Arijit Basu
36af3e8ced
Fix pipes not updating properly
...
Let's not optimize things until we have tests.
2021-04-29 08:27:56 +05:30
Arijit Basu
4dad10815a
Fix support for filenames starting with - (hiphen)
...
Make it possible to create, delete, copy, move, rename filenames starting
with a - (hiphen).
2021-04-28 08:09:40 +05:30
Arijit Basu
2437fd67cf
Fix distorted screen when opening files in GUI
...
Fixes: https://github.com/sayanarijit/xplr/issues/111
2021-04-27 23:58:00 +05:30
Arijit Basu
8ddc000895
Make config private
2021-04-26 12:45:07 +05:30
Arijit Basu
2470827aac
Organize tests
2021-04-26 12:45:07 +05:30
Arijit Basu
f38398e900
Make internals private
2021-04-26 12:45:07 +05:30
Arijit Basu
33e500a16d
Move pipe writing logic from runner to app
...
Ref: https://github.com/sayanarijit/xplr/issues/103
2021-04-26 12:45:07 +05:30
Arijit Basu
eca35c73a2
Update version
2021-04-24 22:22:32 +05:30
Arijit Basu
d0c5801474
Fix terminal output redirection when piping stdout
...
Now, when you do `xplr > out.txt` and invoke the terminal, the stdout
won't be redirected.
2021-04-24 08:57:26 +05:30
Arijit Basu
d81111c134
Reduce col_spacing to 1
2021-04-23 14:53:20 +05:30
Arijit Basu
014043d330
Fix formatting the global help menu
2021-04-23 12:58:07 +05:30
Arijit Basu
e9b5dfe478
Fix incompatible config version
...
Fixes: https://github.com/sayanarijit/xplr/issues/97
2021-04-23 11:04:58 +05:30
Arijit Basu
36c2c9cc2b
Update version
2021-04-23 00:17:43 +05:30
Arijit Basu
1a08318593
Improve CPU usage attempt 2
...
Fixes: https://github.com/sayanarijit/xplr/issues/10
2021-04-22 22:53:31 +05:30
Arijit Basu
871a4c79aa
Fix divide by zero error
2021-04-22 11:50:43 +05:30
Arijit Basu
1ffa85f30f
Do not exit on permission denial
...
While trying to enter restricted directories, log error instead or
exiting.
2021-04-21 08:28:02 +05:30
Arijit Basu
2e541fbf04
Minor UI improvement
2021-04-20 21:35:06 +05:30
Arijit Basu
ad3dd8eec2
Update version
2021-04-20 21:20:28 +05:30
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.
2021-04-20 20:56:16 +05:30
Arijit Basu
c11099f651
Fix follow symlink behavior.
...
Use `gf` to follow symlinks instead of `enter`/`l`.
Or use the message `FollowSymlink`.
2021-04-19 23:23:28 +05:30
Arijit Basu
87cd6ff015
Fix global help menu not displaying sort & filter
2021-04-19 21:01:20 +05:30
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
2021-04-19 18:32:00 +05:30
Arijit Basu
1783834a2e
Fix ctrl-l breaking UI
...
Also improve the filter mode key bindings
Fixes: https://github.com/sayanarijit/xplr/issues/88
2021-04-19 17:23:42 +05:30
Arijit Basu
ca13ebb193
Added inode size
...
Also supports sorting by inode size.
Closes: https://github.com/sayanarijit/xplr/issues/84
2021-04-19 14:48:45 +05:30
Arijit Basu
b53f0c21bb
Improve read-only mode
...
Do not include non-read-only actions in the in read-only mode. i.e. do
not display non-read-only actions in help menu.
Ref: https://github.com/sayanarijit/xplr/issues/22
2021-04-19 14:33:42 +05:30
Arijit Basu
21f87d6a08
Add read-only mode
...
Ref: https://github.com/sayanarijit/xplr/issues/22
2021-04-19 10:27:27 +05:30
Arijit Basu
4d21a89050
Use ctrl-r to refresh, ctrl-l to clear selection
2021-04-19 00:58:04 +05:30
Arijit Basu
e70fa57228
Fix selection
...
Fixes: https://github.com/sayanarijit/xplr/issues/81
2021-04-19 00:58:04 +05:30
Arijit Basu
9fce3b1d14
Fix space input
2021-04-19 00:45:41 +05:30
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
2021-04-19 00:00:43 +05:30
Maxim Baz
468cf7f3df
Allow empty icons
2021-04-18 20:24:13 +05:30
Arijit Basu
f582f49ad8
Make search and filter case insensitive
2021-04-18 16:57:33 +05:30
Arijit Basu
1546ba0a75
Add filter key binding
2021-04-18 16:57:33 +05:30
Arijit Basu
a8896740c8
Add sorting support
...
Also improve filtering.
Closes: https://github.com/sayanarijit/xplr/issues/58
2021-04-18 16:14:17 +05:30
Arijit Basu
bbd5c1ba8b
Map V to ctrl-a
2021-04-15 15:58:39 +05:30
Arijit Basu
3ab9bcb4c9
Fix UI style priority
...
Fixes: https://github.com/sayanarijit/xplr/issues/68
2021-04-15 15:55:06 +05:30
Arijit Basu
54bad4aa09
Add mode selection commands
...
- SelectAll
- SelectPath
- UnSelectAll
- UnSelectPath
- ToggleSelectAll
- ToggleSelectionByPath
2021-04-15 14:36:52 +05:30
Arijit Basu
1dba3d5e8e
Fix overwriting of default config.
...
This fixes the overwriting of default configuration.
Also, add tests to validate the new logic.
Fixes: https://github.com/sayanarijit/xplr/issues/68
2021-04-15 13:55:42 +05:30
Arijit Basu
0c82a645d9
Add history pipe
2021-04-14 21:16:16 +05:30
Arijit Basu
d0342260fe
Add support for NO_COLOR
...
Also, add `general.logs` to the config.
Ref: https://no-color.org/
2021-04-14 08:38:00 +05:30
Arijit Basu
af1cda5762
Better symlink support
...
Closes: https://github.com/sayanarijit/xplr/issues/37
2021-04-13 08:48:50 +05:30
Arijit Basu
0d4cd29a08
Fix panic on permission denied
...
Issue:
$PWD watch service panics when visiting restricted directories.
Fix:
Log error instead of panic.
2021-04-13 08:01:20 +05:30
Arijit Basu
ea42b1969a
Improve scrolling behaviour
...
Closes: https://github.com/sayanarijit/xplr/issues/54
2021-04-12 21:51:59 +05:30
Arijit Basu
c640edc4d9
Improve number mode clear behaviour
2021-04-12 12:16:59 +05:30
Arijit Basu
49ffd8e1f1
Fix exit error codes
...
Also remove cucumber-rust (will try https://github.com/rust-rspec/rspec )
Fixes: https://github.com/sayanarijit/xplr/issues/33
2021-04-12 11:13:31 +05:30
Arijit Basu
55e1a6a0fa
Add basic history navigation
...
Use `ctrl-i` (tab) and `ctrl-o` to navigate history.
Closes: https://github.com/sayanarijit/xplr/issues/49
2021-04-12 11:03:57 +05:30
Arijit Basu
f247acf626
Fix remap behaviour and help menu
...
Remapping a key should overwrite default. Also, remapped keys shouldn't
be redundantly visible in help menu.
Also, display log time.
2021-04-11 22:22:36 +05:30
Arijit Basu
055c1083d6
Support easier key remaps
...
Also,
- Add key binding `~` to go to homedir.
- Add customizable cursor and prompts.
- Improve the help menus.
2021-04-11 21:15:01 +05:30
Arijit Basu
080e1686f3
Improve version compatibility
...
From this version, xplr won't annoy the users to visit the upgrade guide
when there is no need.
Also, users will only get upgrade related notification when it is
there is one.
2021-04-11 21:15:01 +05:30
Arijit Basu
3598be0f19
Improve config defaults
...
- Rename `custom` field for node metadata to `meta`.
- Move `icon` to `meta.icon`.
- Rename `normal_ui` to `default_ui`.
- Rename `filetypes` to `node_types`.
- Split `modes` into `modes.builtin` and `modes.custom`.
- Add the missing `create file` mode.
- Rename `focused_ui` to `focus_ui`.
- Make `general.table.header` non-nullable.
- Add support for incremental configuration updates.
Ref: https://github.com/sayanarijit/xplr/issues/45
2021-04-11 21:15:01 +05:30
Arijit Basu
6aa3df301e
Separate config.yml file from rust files
...
Also be less aggressive for version compatibility.
Use the following logic:
Knowing that we use `{major}.{minor}.{patch}` versioning,
- Major version mismatch are incompatible. Fail with error, suggesting to
visit the Upgrade Guide.
- Minor version updates and patch fixes are compatible. Suggest user to
update the config file version manually. Or visit the Upgrade Guide.
- However, if the config file has greater value for minor version
than the app, also fail with error. Suggesting the user to visit Upgrade
Guide. Though in this case, the user will be downgrading.
Ref: https://github.com/sayanarijit/xplr/issues/45
2021-04-09 23:57:39 +05:30
Arijit Basu
233f6d44a5
Update version
2021-04-09 16:26:45 +05:30
Arijit Basu
2af1b4c70a
Fix exit screen
2021-04-09 15:50:09 +05:30
Arijit Basu
2596c0c4c3
Remove task priority
...
Since we are now blocking on task inputs, the priority is no longer
required.
2021-04-09 15:29:05 +05:30
Arijit Basu
5030749ab1
Use cp -vr
instead of cp -v
2021-04-09 14:32:53 +05:30
Arijit Basu
9f78a1fcff
Ability to call commands silently
...
Some commands doesn't require to capture stdout and stderr.
They can be called without needing to reset the screen.
Add `CallSilently` and `BashExecSilently` to execute those commands
faster.
Also, some optimization.
2021-04-09 14:28:32 +05:30
deadjakk
be2911e073
Fixed error preventing compilation
...
Removed comma.
Error was as follows:
error: no rules expected the token `,`
--> src/input.rs:373:29
|
373 | | Self::Num9,
| ^ no rules expected this token in macro call
error: aborting due to previous error
2021-04-09 12:07:19 +05:30
Arijit Basu
588a50af7e
Add support for custom metadata for table row UI
...
Example:
```yaml
filetypes:
directory:
custom:
foo: bar
...
```
Where `foo` and `bar` can be anything string.
It can be accessed with the `{{{custom.foo}}}` variable.
2021-04-09 11:57:24 +05:30
Arijit Basu
a68fec0c11
No need to clone selection
2021-04-09 10:56:39 +05:30
Arijit Basu
b50ce48264
Revert "Optimize the main thread"
...
This reverts commit 097c9dd8c5
.
Queued tasks might create unexpected issues. We need a test suit first.
2021-04-09 10:54:20 +05:30
Arijit Basu
097c9dd8c5
Optimize the main thread
2021-04-09 10:51:48 +05:30
Arijit Basu
b9e9601a71
Fix failed build and update version
2021-04-09 08:21:30 +05:30
Arijit Basu
b5986c59d6
Fix logs for being written in the pipe
...
Don't depend on `Refresh`, always write to the pipes.
2021-04-09 08:06:32 +05:30
Arijit Basu
2b0572228d
Draw once
...
Draw on the terminal only once i.e. when `Refresh`ing.
2021-04-09 07:18:47 +05:30
Arijit Basu
ededb49bd4
Fix the help menu
...
`esc` no longer exits from the `default` mode.
2021-04-09 07:00:56 +05:30
Maxim Baz
70a3794857
Fix symlink support
...
canonicalize() and metadata() both resolve symlinks, thus showing symlinks as regular files
2021-04-09 06:43:58 +05:30
Arijit Basu
c06a3cb51e
Update version
2021-04-09 04:19:26 +05:30
Arijit Basu
6d0ea06d7b
Add pwd watcher
...
Also optimize the main thread.
2021-04-09 04:19:44 +05:30
Arijit Basu
0a3cf7b5c1
Update version
2021-04-09 01:29:38 +05:30
Arijit Basu
832016bb18
Stay in search mode when entering or leaving a directory
...
This might be a little counter intuitive to the `nnn` users, but I think
this will add to the productivity and should be the default.
Since we have a real-time mode indicator, users shouldn't face much of
an issue switching to the alternate default.
2021-04-09 01:12:26 +05:30
Arijit Basu
1e7e2ecc2f
Add :e
for "open in editor"
2021-04-08 18:48:29 +05:30
Arijit Basu
fa4d4168cd
Don't quit on esc
...
Issue:
`esc` is generally used to get back to the `default` mode and mistakenly
pressing `esc` while in `default` mode will annoyingly terminate the
session.
Fix:
Remove `esc` from the `default` mode's key bindings. Use `q` or `crtl-c`
instead.
2021-04-08 14:44:10 +05:30
Arijit Basu
fa37cd1c10
Improve search and filter
...
Concern:
Using `ResetNodeFilters` to clear the filters while searching or exiting
from search unexpectedly resets the `show hidden` mode because the
action not only removes the target filter, it resets all the other
filters as well.
Solution:
Implement `RemoveNodeFilterFromInput` to be able to clear or remove
target filters without having to reset it.
2021-04-08 08:01:10 +05:30
Arijit Basu
e2b49ab4fd
Display help menu using $PAGER
...
Also, use `open` to open files when `xdg-open` is missing.
2021-04-08 08:00:44 +05:30
Arijit Basu
45a95a792d
Clear screen before exit
2021-04-08 07:42:31 +05:30
Arijit Basu
91a319fc80
Update version
2021-04-07 19:57:25 +05:30
Arijit Basu
57494f8ebf
Do not print command outputs to the main screen.
...
Print all the outputs of xplr commands on the alternate screen. Not on
the real stdout.
2021-04-07 19:22:33 +05:30
Arijit Basu
7661019fd9
Make dir colors cyan
...
Fixes: https://github.com/sayanarijit/xplr/issues/11
2021-04-07 18:43:22 +05:30
Arijit Basu
23b51cf8fe
Fix failed build and re-publish
2021-04-07 03:06:47 +05:30
Arijit Basu
2bd2b743fb
Fix renaming
2021-04-07 02:42:20 +05:30
Arijit Basu
a484c2fd39
Update default.nix
2021-04-07 02:14:43 +05:30
Arijit Basu
e34755b11b
Update version
...
Also fix nix hash
2021-04-07 01:59:02 +05:30
Arijit Basu
09abda29a3
Several optimizations
...
- Write to pipes only when the value changes.
- Sleep when not reading key event or messages.
Fixes: https://github.com/sayanarijit/xplr/issues/10
2021-04-07 01:59:02 +05:30
Arijit Basu
65ddb0ee4b
Release 0.3.2
2021-04-06 18:55:57 +05:30
Arijit Basu
53fd92b680
Fix debug formatting
2021-04-06 18:33:59 +05:30
Arijit Basu
65b7412579
Add XPLR_APP_VERSION and XPLR_CONFIG_VERSION
...
Since users don't need to update config file version for minor app
releases, we have to differentiate between app and config version.
Also, expose them via `$XPLR_CONFIG_VERSION` and `$XPLR_APP_VERSION`.
2021-04-06 18:23:19 +05:30
Arijit Basu
0272284f40
Fix print formatting
2021-04-06 17:40:16 +05:30
Quentin Guilloteau
a9309a52c0
add comment to remind to update the version in the default.nix file
2021-04-06 16:59:58 +05:30
Arijit Basu
175699ac63
Expose $XPLR_PIPE_MODE_OUT
...
Also, add new line character to `$XPLR_PIPE_MODE_OUT` and
`$XPLR_FOCUS_PATH` for consistency.
2021-04-06 07:52:37 +05:30
Arijit Basu
eeee3394bc
Improve version incompatibility error
...
With this change, `xplr` will only raise version incompatibility error
if the major version changes. Minor version updates are assumed to be
backwards compatible.
If the major version is `v0`, the minor version will be considered as
the major version and the security/patch version will be considered as
minor version and the same logic will apply.
2021-04-06 06:43:51 +05:30
Arijit Basu
981ead8c36
Fix large env vars breaking the subprocess
...
Bug:
When you call some command in a directory with a large number of hosts,
xplr will fail setting the environment vars as the command will become
too large to handle.
Fix:
Port the value of multi-line variables from env vars to pipes and set
the name of the pipe as env var instead. And deprecate the variables
that doesn't make much sense.
In other words,
- `$XPLR_APP_YAML` has been removed.
- `$XPLR_RESULT` has been ported to `$XPLR_PIPE_RESULT_OUT`.
- `$XPLR_GLOBAL_HELP_MENU` has been ported to
`$XPLR_PIPE_GLOBAL_HELP_MENU_OUT`.
- `$XPLR_DIRECTORY_NODES` has been ported to
`$XPLR_PIPE_DIRECTORY_NODES_OUT`.
- `$XPLR_LOGS` has been ported to `$XPLR_PIPE_LOGS_OUT`.
- `$XPLR_PIPE_RESULT` has been ported to `$XPLR_PIPE_RESULT_OUT`.
Hence, instead of `<<< $VAR`, `< $VAR_PIPE_OUT` should be used.
2021-04-05 20:28:35 +05:30
Arijit Basu
9747c8667b
Autocomplete the relative path while renaming
...
By default, while renaming a file, autocomplete the relative path i.e.
the filename instead of the absolute path in the input buffer.
2021-04-05 13:50:53 +05:30
Arijit Basu
67f2094a4c
Autorefresh, BashExec and basename
...
- Auto `Refresh` every second.
- Add alias `BashExec` to message `Call` with args [`-c`, `bash` ...].
Also, Create alias `BashExec` to message `Call` with arguments [`bash`, `-c`]
2021-04-05 12:51:31 +05:30
Arijit Basu
dba8631911
Add CI/CD gh actions
...
Mostly stolen from https://github.com/Rigellute/spotify-tui .
2021-04-05 12:32:40 +05:30
Arijit Basu
8dae2fef4d
Add native support for renaming
2021-04-04 16:47:03 +05:30
Arijit Basu
2f409a2117
Add support for :{number}
like vim
2021-04-04 15:47:14 +05:30
Arijit Basu
2432673483
Log error if command fails
2021-04-04 15:18:13 +05:30
Arijit Basu
b03618737c
Remove skim from dependency
2021-04-04 11:56:44 +05:30
Arijit Basu
4d2caf512e
Log explorer errors
2021-04-04 10:05:52 +05:30
Arijit Basu
e93e815bc4
Add upgrade instructions for incompatibility error
2021-04-04 09:17:53 +05:30
Arijit Basu
a11dca5a1c
Finish documenting the messages
2021-04-04 08:54:42 +05:30
Arijit Basu
b98812fe06
Fix "Input" case
2021-04-03 21:38:09 +05:30
Arijit Basu
500f15bd32
Make UI lowercase
2021-04-03 21:35:50 +05:30
Arijit Basu
1b1cd393bc
Document a little
2021-04-03 15:27:15 +05:30
Arijit Basu
af8a637030
Logging, testing and other improvements
2021-04-03 11:32:05 +05:30
Arijit Basu
71a23e1f64
Implement native search and filter
2021-04-03 06:49:59 +05:30
Arijit Basu
7cbb9d2baf
Saner key bindings
2021-04-02 19:56:18 +05:30
Arijit Basu
c0ca596539
Fix create mode, refactor readers, fix init focus
2021-04-02 18:03:56 +05:30
Arijit Basu
3990200232
Anyhow handle errors
2021-04-02 17:11:18 +05:30
Arijit Basu
56d63a2316
Move, Copy, Create, Delete
2021-04-02 16:12:10 +05:30
Arijit Basu
eb6bc6b6be
Minor buggy improvements
2021-04-02 09:28:20 +05:30
Arijit Basu
107211a69c
Add ctrl-c handler
2021-04-02 07:53:13 +05:30
Arijit Basu
f43ba87a2b
Finish Selected -> Selection renaming
2021-04-02 07:45:00 +05:30
Arijit Basu
8a6da63936
Rename selected -> selection
2021-04-02 07:40:51 +05:30
Arijit Basu
b70682ecb5
Fix term resize handler
2021-04-02 05:59:56 +05:30
Arijit Basu
54b6a8e4da
Minor fix
2021-04-01 22:39:29 +05:30
Arijit Basu
2c56b80fde
Minor fixes
2021-04-01 22:34:12 +05:30
Arijit Basu
f176655325
Some improvements and cleanup
2021-04-01 19:34:45 +05:30
Arijit Basu
341d11a0f3
Fix pipes config
2021-04-01 16:24:03 +05:30
Arijit Basu
c066201777
Read config from file
2021-04-01 15:28:32 +05:30
Arijit Basu
3572d26b95
Too big of a rewrite
2021-04-01 15:17:24 +05:30
Arijit Basu
98920637f9
Number input
2021-03-15 14:49:30 +05:30
Arijit Basu
53b18ae8f4
Use # instead of ? to debug app
2021-03-14 10:54:58 +05:30
Arijit Basu
d5bfe6630f
Use app.task instead of separate variables
2021-03-13 15:31:25 +05:30
Arijit Basu
21e4a178c7
Fix escaping relative path
...
Either escape or quote. Don't do both at once.
2021-03-09 14:43:43 +05:30
Arijit Basu
d3f88a1fa5
Display mode in help menu title
2021-03-06 10:11:59 +05:30
Arijit Basu
096489dee4
Use "esc" instead of "escape"
2021-03-04 20:50:33 +05:30
Arijit Basu
669151c70e
Show help menu
2021-03-04 20:12:47 +05:30
Arijit Basu
7beaec1763
Easier key handling
2021-03-04 11:42:32 +05:30
Arijit Basu
8221140756
Refresh after running command
2021-03-03 20:55:01 +05:30
Arijit Basu
044b7860a1
Fixed fzf search added pwd shell option
...
Now I can finally use it to replace nnn
2021-03-03 00:15:21 +05:30
Arijit Basu
980fb8728a
Editor fix
2021-03-02 16:16:55 +05:30
Arijit Basu
03fffd19e2
Minor fixes
2021-03-02 16:07:02 +05:30
Arijit Basu
df8c03ce2d
Add shell words escaper
2021-03-02 15:35:33 +05:30
Arijit Basu
2e551ce38d
Support for command action
2021-03-02 14:24:43 +05:30
Arijit Basu
758f362fee
Lazy programmer hack for key bindings
2021-03-02 09:07:48 +05:30
Arijit Basu
720ba38b4d
Some important fix (don't look)
2021-03-02 08:42:35 +05:30
Arijit Basu
41713f9aff
Basically working now.
2021-03-01 21:58:07 +05:30
Arijit Basu
f9c3edee06
Not yet doing what it's supposed to
2021-03-01 16:53:04 +05:30