diff --git a/README.md b/README.md index 9eb255c..23e58ca 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,10 @@ Imagine being able to search your shell history based on both the command itself - :x: allow searchnig by metadata - :x: app contians different search modes +- :heavy_check_mark: Provide a `reshctl` utility to control and interact with the project + - :heavy_check_mark: zsh completion + - :heavy_check_mark: bash completion + - :x: Synchronize recorded history between devices - :x: Provide an API to make resh extendable @@ -63,6 +67,8 @@ Imagine being able to search your shell history based on both the command itself - :heavy_check_mark: Be compatible with Linux and macOS +- :heavy_check_mark: Require very little prerequisite software + - :white_check_mark: Show cool graphs based on recorded history - :heavy_check_mark: Provide a tool to sanitize the recorded history @@ -103,6 +109,8 @@ curl -s https://raw.githubusercontent.com/curusarn/resh/master/scripts/rawinstal ## Examples +### View the recorded history + Resh history is saved to `~/.resh_history.json` Each line is a JSON that represents one executed command line. @@ -113,6 +121,60 @@ You can install `jq` using your favourite package manager or you can use other J ![screenshot](img/screen.png) +*Recorded metadata will be reduced to only include useful information in the future.* + +### Update + +Check for updates and update + +```sh +reshctl update +``` + +### Arrow key bindings + +Resh provides arrow key bindings. + +These bindings do regular stepping through history and prefix search. + +They allow resh to record bindings usage metadata. + +![bindings metadata](img/screen-recall.png) + +*In example above I pressed UP, pressed DOWN, pressed UP (prefix search `make`) and the command line after the last command line retrieved from history was `make build` so we see that I executed the retrieved command without editing it.* + +Arrow key bindings are enabled by default in zsh and they are disabled by default in bash because there are some performance issues. + +Enable/disable arrow key bindnigs for THIS shell session: + +```sh +reshctl enable arrow_key_bindings + +reshctl disable arrow_key_bindings +``` + +Enable/disable for FUTURE shell sessions: + +```sh +reshctl enable arrow_key_bindings_global + +reshctl disable arrow_key_bindings_global +``` + +See what your current setting is: + +```sh +reshctl status +``` + +### Graphs + +:clock10: *coming soon* + +Sneak peak + +![graph of command sequences](img/graph-command-sequences.png) + ## Known issues ### Q: I use bash on macOS and resh doesn't work diff --git a/img/screen-recall.png b/img/screen-recall.png new file mode 100644 index 0000000..021e4f1 Binary files /dev/null and b/img/screen-recall.png differ diff --git a/scripts/install.sh b/scripts/install.sh index e79d465..c21a8d0 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -173,9 +173,9 @@ echo " please give me some contact info using this form: https://forms.gle/227SoyJ5c2iteKt98 ARROW KEY BINDINGS - Resh arrow key bindings replicate the default behaviour (for now). - That means stepping through history and prefix search. - They also provide very precious usage metadata. + Resh provides arrow key bindings. + These bindings do regular stepping through history and prefix search. + They allow resh to record bindings usage metadata. * Enabled by default in zsh * Disabled by default in bash