summaryrefslogtreecommitdiff
path: root/config/broot/verbs.hjson
diff options
context:
space:
mode:
Diffstat (limited to 'config/broot/verbs.hjson')
-rw-r--r--config/broot/verbs.hjson200
1 files changed, 200 insertions, 0 deletions
diff --git a/config/broot/verbs.hjson b/config/broot/verbs.hjson
new file mode 100644
index 0000000..8ea42ff
--- /dev/null
+++ b/config/broot/verbs.hjson
@@ -0,0 +1,200 @@
+###############################################################
+# This file contains the verb definitions for broot
+#
+# Some verbs here are examples and not enabled by default: you
+# need to uncomment them if you want to use them.
+#
+# Documentation at https://dystroy.org/broot/verbs/
+###############################################################
+
+verbs: [
+
+ # You should customize this standard opening of text files.
+ # If you edit text files in your terminal (vi, emacs, helix, eg.), then
+ # you'll find it convenient to change the 'key' from 'ctrl-e' to 'enter'.
+ #
+ # If $EDITOR isn't set on your computer, you should either set it using
+ # something similar to
+ # export EDITOR=/usr/local/bin/nvim
+ # or just replace it with your editor of choice in the 'execution'
+ # pattern.
+ # If your editor is able to open a file on a specific line, use {line}
+ # so that you may jump directly at the right line from a preview or
+ # a content search.
+ # Examples depending on your favourite editor:
+ # external: "nvim +{line} {file:space-separated}"
+ # external: "helix {file}:{line}"
+ {
+ invocation: edit
+ shortcut: e
+ key: ctrl-e
+ apply_to: text_file
+ external: "$EDITOR {file:space-separated}"
+ leave_broot: false
+ }
+
+ # Example 1: launching `tail -n` on the selected file (leaving broot)
+ # {
+ # name: tail_lines
+ # invocation: tl {lines_count}
+ # external: "tail -f -n {lines_count} {file}"
+ # }
+
+ # Example 2: creating a new file without leaving broot
+ # {
+ # name: touch
+ # invocation: touch {new_file}
+ # external: "touch {directory}/{new_file}"
+ # leave_broot: false
+ # }
+
+ # Zip selected file(s) into a new archive named <name>.zip
+ # This can be called on the staging area after having staged several
+ # files or directories
+ {
+ invocation: "zip {name}"
+ external: [
+ "zip"
+ "-r"
+ "{name:path-from-directory}.zip"
+ "{file:space-separated}"
+ ]
+ leave_broot: false
+ working_dir: "{root}"
+ }
+
+ # A convenient shortcut to create a new text file in
+ # the current directory or below
+ {
+ invocation: create {subpath}
+ execution: "$EDITOR {directory}/{subpath}"
+ leave_broot: false
+ }
+
+ {
+ invocation: git_diff
+ shortcut: gd
+ leave_broot: false
+ execution: "git difftool -y {file}"
+ }
+
+ {
+ invocation: depth {depth}
+ execution: ":set_max_depth {depth}"
+ }
+
+ {
+ invocation: goto {where}
+ execution: ":focus {where}"
+ }
+
+ # On ctrl-b, propose the creation of a copy of the selection.
+ # While this might occasionally be useful, this verb is mostly here
+ # as an example to demonstrate rare standard groups like {file-stem}
+ # and {file-dot-extension} and the auto_exec verb property which
+ # allows verbs to stay unexecuted until you hit enter
+ {
+ invocation: "backup {version}"
+ key: ctrl-b
+ leave_broot: false
+ auto_exec: false
+ execution: "cp -r {file} {parent}/{file-stem}-{version}{file-dot-extension}"
+ }
+
+ # By default, `rm` does the system rm, and completely removes
+ # the file. If you prefer to have the file moved to the system
+ # trash, you may use the ':trash' internal with the verb below:
+ # {
+ # invocation: "rm"
+ # internal: "trash"
+ # leave_broot: false
+ # }
+
+ # This verb lets you launch a terminal on ctrl-T
+ # (on exit you'll be back in broot)
+ {
+ invocation: terminal
+ key: ctrl-t
+ execution: "$SHELL"
+ set_working_dir: true
+ leave_broot: false
+ }
+
+ # Scroll the rightest panel on alt-pagedown and alt-pageup,
+ # while keeping the focus on your current panel
+ {
+ key: alt-pagedown
+ internal: page_down
+ impacted_panel: right
+ }
+ {
+ key: alt-pageup
+ internal: page_up
+ impacted_panel: right
+ }
+
+
+ # Here's an example of a verb needing the shell capabilities.
+ # It copies all children of the currently selected directory
+ # to a destination you type.
+ # It uses a star, which needs the shell for expansion. That's
+ # why such verb must have the `from_shell: true` parameter.
+ # {
+ # invocation: "cpa {dest}"
+ # external: "cp -r {directory}/* {dest}"
+ # from_shell: true
+ # }
+
+ # Here's an example of a shortcut bringing you to your home directory
+ # {
+ # invocation: home
+ # key: ctrl-home
+ # execution: ":focus ~"
+ # }
+
+ # Here's going to the work-dir root of the current git repository
+ # {
+ # invocation: gtr
+ # execution: ":focus {git-root}"
+ # }
+
+ # A popular set of shortcuts for going up and down:
+ #
+ # {
+ # key: ctrl-k
+ # execution: ":line_up"
+ # }
+ # {
+ # key: ctrl-j
+ # execution: ":line_down"
+ # }
+ # {
+ # key: ctrl-u
+ # execution: ":page_up"
+ # }
+ # {
+ # key: ctrl-d
+ # execution: ":page_down"
+ # }
+
+ # If you develop using git, you might like to often switch
+ # to the git status filter:
+ # {
+ # key: alt-g
+ # execution: ":toggle_git_status"
+ # }
+
+ # You can reproduce the bindings of Norton Commander
+ # on copying or moving to the other panel:
+ # {
+ # key: F5
+ # external: "cp -r {file} {other-panel-directory}"
+ # leave_broot: false
+ # }
+ # {
+ # key: F6
+ # external: "mv {file} {other-panel-directory}"
+ # leave_broot: false
+ # }
+]
+