diff options
Diffstat (limited to 'bindings.bb')
| -rw-r--r-- | bindings.bb | 215 |
1 files changed, 0 insertions, 215 deletions
diff --git a/bindings.bb b/bindings.bb deleted file mode 100644 index 3688228..0000000 --- a/bindings.bb +++ /dev/null @@ -1,215 +0,0 @@ -# This file defines the key bindings for bb -# The format is: <key>(,<key>)*:[ ]*#<description>(\n[ ]+script)+ -Section: BB Commands -?,F1: # Show Help menu - bbcmd help -q,Q: # Quit - bbcmd quit -Ctrl-c: # Send interrupt signal - kill -INT $PPID -Ctrl-z: # Suspend - kill -TSTP $PPID -Ctrl-\: # Quit and generate core dump - kill -QUIT $PPID - -Section: File Navigation -j,Down: # Next file - bbcmd move:+1 -k,Up: # Previous file - bbcmd move:-1 -h,Left: # Parent directory - bbcmd cd:.. -l,Right: # Enter directory - if [ -d "$BBCURSOR" ]; then bbcmd cd:"$BBCURSOR"; fi -Ctrl-f: # Search for file - file="$( - find $BBGLOB -mindepth 1 -printf '%P\0' | bbpick "Find: " - )" && bbcmd goto:"$file" -/: # Pick a file - file="$(printf "%s\0" $BBGLOB | bbpick "Pick: ")" || exit - bbcmd goto:"$file" -*: # Set the glob - glob="$(bbask "Show files matching: ")" && bbcmd glob:"$glob" -Ctrl-g: # Go to directory - cd="$(bbask "Go to directory: ")" && bbcmd cd:"$cd" -m: # Mark this directory - mkdir -p "$XDG_CONFIG_HOME/bb/marks" - ln -sT "$2" "$XDG_CONFIG_HOME/bb/marks/$1" 2>/dev/null - mark="$(bbask "Mark: ") && ln -s "$PWD" "$XDG_CONFIG_HOME"/bb/marks/"$mark" -': # Go to a marked directory - [ -d "$XDG_CONFIG_HOME"/bb/marks ] || exit - mark="$(find "$XDG_CONFIG_HOME"/bb/marks/ -mindepth 1 -type l -printf '%P\0' | bbpick "Jump to: ")" && - bbcmd cd:"$(readlink -f "$XDG_CONFIG_HOME"/bb/marks/"$mark")" --,Backspace: # Go to previous directory - [ "$BBPREVPATH" ] && bbcmd cd:"$BBPREVPATH" -;: # Show selected files - bbcmd cd:'<selection>' -0: # Go to intitial directory - bbcmd cd:"$BBINITIALPATH" -g,Home: # Go to first file - bbcmd move:0 -G,End: # Go to last file - bbcmd move:100%n -PgDn: # Page down - bbcmd scroll:+100% -PgUp: # Page up - bbcmd scroll:-100% -Ctrl-d: # Half page down - bbcmd scroll:+50% -Ctrl-u: # Half page up - bbcmd scroll:-50% -Mouse wheel down: # Scroll down - bbcmd scroll:+3 -Mouse wheel up: # Scroll up - bbcmd scroll:-3 - -Section: File Selection -v,V,Space: # Toggle selection at cursor - bbcmd toggle:"$BBCURSOR" -Escape: # Clear selection - bbcmd deselect -S: # Select pattern - patt="$(bbask "Select: ")" && bbcmd select: $patt -U: # Unselect pattern - patt="$(bbask "Unselect: ")" && bbcmd deselect: $patt -Ctrl-s: # Save the selection - [ $# -gt 0 ] && savename="$(bbask "Save selection as: ")" || exit 1 - mkdir -p "$XDG_DATA_HOME"/bb - if ! expr "$savename" : ".*\.sel" >/dev/null; then savename="$savename.sel"; fi - printf '%s\0' "$@" > "$XDG_DATA_HOME"/bb/"$savename" -Ctrl-o: # Open a saved selection - [ -d "$XDG_DATA_HOME"/bb ] || exit - [ $# -gt 0 ] && ! bbconfirm "The current selection will be discarded. " && exit 1 - loadpath="$(find "$XDG_DATA_HOME"/bb/ -mindepth 1 -name '*.sel' -printf '%P\0' | bbpick "Load selection: ")" && - cat "$XDG_DATA_HOME"/bb/"$loadpath" | bbcmd deselect select: -J: # Spread selection down - bbcmd spread:+1 -K: # Spread selection up - bbcmd spread:-1 -Shift-Home: # Spread the selection to the top - bbcmd spread:0 -Shift-End: # Spread the selection to the bottom - bbcmd spread:100%n -Ctrl-a: # Select all files here - bbcmd select - -Section: File Actions -Left click: # Move cursor to file - if [ "$BBCLICKED" = "<column label>" ]; then - bbcmd sort:"~$BBMOUSECOL" - elif [ "$BBCLICKED" -a "$BBMOUSECOL" = "*" ]; then - bbcmd toggle:"$BBCLICKED" - elif [ "$BBCLICKED" ]; then - bbcmd goto:"$BBCLICKED" - fi -Enter,Double left click: # Open file/directory - if [ -d "$BBCURSOR" ]; then bbcmd cd:"$BBCURSOR" - elif [ "$(uname)" = "Darwin" ]; then - if expr "$(file -bI "$BBCURSOR")" : '\(text/\|inode/empty\)' >/dev/null; then $EDITOR "$BBCURSOR" - else open "$BBCURSOR"; fi - else - if expr "$(file -bi "$BBCURSOR")" : '\(text/\|inode/x-empty\)' >/dev/null; then $EDITOR "$BBCURSOR" - else xdg-open "$BBCURSOR"; fi - fi -e: # Edit file in $EDITOR - $EDITOR "$BBCURSOR" || bbpause -d,Delete: # Delete - case "$(bbtargets "$BBCURSOR" "$@")" in - cursor) set -- "$BBCURSOR" ;; - both) set -- "$BBCURSOR" "$@" ;; - esac - printf "\033[1mDeleting the following:\n\033[33m$(printf ' %s\n' "$@")\033[0m" | bbunscroll | more && - bbconfirm && rm -rf "$@" && bbcmd deselect refresh -Ctrl-v: # Move files here - printf "\033[1mMoving the following to here:\n\033[33m$(printf ' %s\n' "$@")\033[0m" | bbunscroll | more && - bbconfirm && printf "\033[1G\033[KMoving..." && mv -i "$@" . && printf "done." && - bbcmd deselect refresh && for f; do bbcmd sel:"$(basename "$f")"; done -c: # Copy a file - case "$(bbtargets "$BBCURSOR" "$@")" in - cursor) set -- "$BBCURSOR";; - both) set -- "$BBCURSOR" "$@";; - esac - [ $# -gt 0 ] || exit - printf "\033[1mCopying the following to here:\n\033[33m$(printf ' %s\n' "$@")\033[0m" | bbunscroll | more - bbconfirm && printf "\033[1G\033[KCopying..." && - for f; do if [ "./$(basename "$f")" -ef "$f" ]; then - cp -ri "$f" "$f.copy" || break - else cp -ri "$f" . || break; fi; done; printf 'done.' && bbcmd refresh -Ctrl-n: # New file/directory - case "$(printf '%s\0' File Directory | bbpick "Create new: ")" in - File) - name="$(bbask "New File: ")" && touch -- "$name" - ;; - Directory) - name="$(bbask "New Directory: ")" && mkdir -- "$name" - ;; - *) exit - ;; - esac && bbcmd goto:"$name" refresh || bbpause -p: # Page through a file with `less` - less -XK "$BBCURSOR" -r,F2: # Rename files - case "$(bbtargets "$BBCURSOR" "$@")" in - cursor) set -- "$BBCURSOR";; - both) set -- "$BBCURSOR" "$@";; - esac - for f; do - newname="$(bbask "Rename $(printf "\033[33m%s\033[39m" "$(basename "$f")"): " "$(basename "$f")")" || break - r="$(dirname "$f")/$newname" - [ "$r" = "$f" ] && continue - [ -e "$r" ] && printf "\033[31;1m$r already exists! It will be overwritten.\033[0m " - && bbconfirm && { rm -rf "$r" || { bbpause; exit; }; } - mv "$f" "$r" || { bbpause; exit; } - bbcmd deselect:"$f" select:"$r" - [ "$f" = "$BBCURSOR" ] && bbcmd goto:"$r" - done - bbcmd refresh -~: # Regex rename files - if ! command -v rename >/dev/null; then - printf '\033[31;1mThe `rename` command is not installed. Please install it to use this key binding.\033[0m\n' - bbpause; exit 1 - fi - if [ $# -eq 0 ]; then set -- $BBGLOB; fi - set -e - patt="$(bbask "Replace pattern: ")" - rep="$(bbask "Replacement: ")" - printf "\033[1mRenaming:\n\033[33m$(if [ $# -gt 0 ]; then rename -nv "$patt" "$rep" "$@"; else rename -nv "$patt" "$rep" *; fi)\033[0m" | bbunscroll | more - bbconfirm - if [ $# -eq 0 ]; then set -- *; [ -e "$1" ] || exit 1; fi - rename -i "$patt" "$rep" "$@" - bbcmd deselect refresh - -Section: Shell Commands -:: # Run a command - cmd="$(bbask ':')" && sh -c "$cmd" -- "$@"; bbcmd refresh; bbpause -|: # Pipe selected files to a command - cmd="$(bbask '|')" && printf '%s\n' "$@" | sh -c "$cmd"; bbcmd refresh; bbpause -@: # Pipe selected files to a command - cmd="$(bbask '@')" && sh -c "$cmd \"$$@\"" -- "$@"; bbcmd refresh; bbpause ->: # Open a shell - tput rmcup; tput cvvis; $SHELL; bbcmd refresh -f: # Resume suspended process - bbcmd fg - -Section: Viewing Options -s: # Sort by... - sort="$(bbask -1 "Sort (n)ame (s)ize (m)odification (c)reation (a)ccess (r)andom (p)ermissions: ")" && - bbcmd sort:"~$sort" ----,#: # Set columns - columns="$(bbask "Set columns (*)selected (a)ccessed (c)reated (m)odified (n)ame (p)ermissions (r)andom (s)ize: ")" && - bbcmd col:"$columns" -.: # Toggle dotfile visibility - if [ "$BBGLOB" = ".* *" ]; then - bbcmd glob:"*" - else - bbcmd glob:".* *" - fi -i: # Toggle interleaving files and directories - bbcmd interleave -F5,Ctrl-l: # Refresh view - bbcmd refresh -Ctrl-b: # Bind a key to a script - key="$(bbask -1 "Press key to bind...")" && echo && script="$(bbask "Bind script: ")" && - bbcmd bind:"$key":"{ $script; } || bbpause" || bbpause - -Section: User Bindings |
