diff options
| author | aura <nw@moneybot.cc> | 2026-05-13 03:38:13 +0200 |
|---|---|---|
| committer | aura <nw@moneybot.cc> | 2026-05-13 03:38:13 +0200 |
| commit | a5003496fae29e95ba58062fa2a094f0e5c53c4d (patch) | |
| tree | 8b1109ea4fb4c3b0b6f1f65a558ad40d368931fd /config/broot/verbs.hjson | |
| parent | 9e2e988236e7180c9299b20b503b143e35d3b198 (diff) | |
cool
Diffstat (limited to 'config/broot/verbs.hjson')
| -rw-r--r-- | config/broot/verbs.hjson | 200 |
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 + # } +] + |
