diff --git a/README.md b/README.md index a451556..af3dfef 100644 --- a/README.md +++ b/README.md @@ -59,71 +59,180 @@ tmux source-file ~/.tmux.conf ## Configuration -If you want to customize how is shown your tmux-thumbs hints you can run the -command `target/release/tmux-thumbs` directly and play with all available +If you want to customize how is shown your tmux-thumbs hints those all available parameters to set your perfect profile. -Once completed, write those parameters in -`~/.tmux/plugins/tmux-thumbs/tmux-thumbs.sh` file. There is a `COMMAND` -variable where you can set all those options. +NOTE: for changes to take effect, you'll need to source again your `.tmux.conf` file. -Example: +* [@thumbs-alphabet](#thumbs-alphabet) +* [@thumbs-reverse](#thumbs-reverse) +* [@thumbs-unique](#thumbs-unique) +* [@thumbs-position](#thumbs-position) +* [@thumbs-regexp-N](#thumbs-regexp-N) +* [@thumbs-command](#thumbs-command) +* [@thumbs-upcase-command](#thumbs-upcase-command) +* [@thumbs-bg-color](#thumbs-bg-color) +* [@thumbs-fg-color](#thumbs-fg-color) +* [@thumbs-hint-bg-color](#thumbs-hint-bg-color) +* [@thumbs-hint-fg-color](#thumbs-hint-fg-color) +* [@thumbs-select-fg-color](#thumbs-select-fg-color) + +### @thumbs-alphabet + +`default: qwerty` + +Choose which set of characters is used to build hints. Review all [available alphabets](#Alphabets) + +For example: ``` -./target/release/tmux-thumbs -a qwerty -r -u +set -g @thumbs-alphabet dvorak-homerow ``` -You can review all available options executing: +### @thumbs-reverse + +`default: disabled` + +Choose in which direction you want to assign hints. Useful to get shorter hints closer to the cursor. + +For example: ``` -> tmux-thumbs --help - -tmux-thumbs 0.2.2 -A lightning fast version of tmux-fingers, copy/pasting tmux like vimium/vimperator - -USAGE: - tmux-thumbs [FLAGS] [OPTIONS] - -FLAGS: - -h, --help Prints help information - -r, --reverse Reverse the order for assigned hints - -u, --unique Don't show duplicated hints for the same match - -V, --version Prints version information - -OPTIONS: - -a, --alphabet Sets the alphabet [default: qwerty] - --bg-color Sets the background color for matches [default: black] - --command Pick command [default: tmux set-buffer {}] - --fg-color Sets the foregroud color for matches [default: green] - --hint-bg-color Sets the background color for hints [default: black] - --hint-fg-color Sets the foregroud color for hints [default: yellow] - -p, --position Hint position [default: left] - -x, --regexp ... Use this regexp as extra pattern to match - --select-fg-color Sets the foregroud color for selection [default: blue] - --upcase-command Upcase command [default: tmux paste-buffer] - +set -g @thumbs-reverse ``` -## Extra features +### @thumbs-unique -- **Arrow navigation:** You can use the arrows to move arround between all matched items. -- **Auto paste:** If your last typed hint character is uppercase, you are going to pick and paste the desired hint. +`default: disabled` -### Arguments +Choose if you want to assign the same hint for the same matched strings. -- **alphabet:** Choose which set of characters is used to build hints. Default [qwerty] -- **reverse:** Choose in which direction you want to assign hints. Useful to get shorter hints closer. -- **unique:** Choose if you want to assign the same hint for the same matched strings. -- **position:** Choose where do you want to show the hint in the matched string. Options (left, right). Default [left] -- **regexp:** Add extra pattern to match. This paramenter can have multiple instances. -- **command:** Choose whish command execute when you press a hint -- **upcase-command:** Choose which command execute when you press a upcase hint +For example: -- **bg-color:** Sets the background color for matches [default: black] -- **fg-color:** Sets the foregroud color for matches [default: green] -- **hint-bg-color:** Sets the background color for hints [default: black] -- **hint-fg-color:** Sets the foregroud color for hints [default: yellow] -- **select-fg-color:** Sets the foregroud color for selection [default: blue] +``` +set -g @thumbs-unique +``` + +### @thumbs-position + +`default: left` + +Choose where do you want to show the hint in the matched string. Options (left, right). + +For example: + +``` +set -g @thumbs-position right +``` + +### @thumbs-regexp-N + +Add extra patterns to match. This paramenter can have multiple instances. + +For example: + +``` +set @thumbs-regexp-1 '[a-z]+@[a-z]+.com' # Match emails +set @thumbs-regexp-2 '[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:[a-f0-9]{2}:' # Match MAC addresses +``` + +### @thumbs-command + +`default: 'tmux set-buffer {}'` + +Choose which command execute when you press a hint. + +For example: + +``` +set -g @thumbs-command 'pbcopy' +``` + +### @thumbs-upcase-command + +`default: 'tmux paste-buffer'` + +Choose which command execute when you press a upcase hint + +For example: + +``` +set -g @thumbs-upcase-command 'pbcopy' +``` + +### @thumbs-bg-color + +`default: black` + +Sets the background color for matches + +For example: + +``` +set -g @thumbs-bg-color blue +``` + +### @thumbs-fg-color + +`default: green` + +Sets the foregroud color for matches + +For example: + +``` +set -g @thumbs-fg-color green +``` + +### @thumbs-hint-bg-color + +`default: black` + +Sets the background color for hints + +For example: + +``` +set -g @thumbs-hint-bg-color blue +``` + +### @thumbs-hint-fg-color + +`default: yellow` + +Sets the foregroud color for hints + +For example: + +``` +set -g @thumbs-hint-fg-color green +``` + +### @thumbs-select-fg-color + +`default: blue` + +Sets the foregroud color for selection + +For example: + +``` +set -g @thumbs-select-fg-color red +``` + +#### Colors + +This is the list of available colors: + +- black +- red +- green +- yellow +- blue +- magenta +- cyan +- white +- default #### Alphabets @@ -152,19 +261,10 @@ This is the list of available alphabets: - `colemak-left-hand`: arstqwfpzxcv - `colemak-right-hand`: neioluymjhk -#### Colors +## Extra features -This is the list of available colors: - -- black -- red -- green -- yellow -- blue -- magenta -- cyan -- white -- default +- **Arrow navigation:** You can use the arrows to move arround between all matched items. +- **Auto paste:** If your last typed hint character is uppercase, you are going to pick and paste the desired hint. ## Background diff --git a/tmux-thumbs.sh b/tmux-thumbs.sh index f7c0c0c..77b55f9 100755 --- a/tmux-thumbs.sh +++ b/tmux-thumbs.sh @@ -2,13 +2,51 @@ source ~/.bash_profile -# Customize this command -COMMAND="tmux-thumbs -a qwerty -r -u" +function boolean { + VALUE=$(tmux show -v @thumbs-$1 2> /dev/null) + + if [[ "${VALUE}" == "1" ]]; then + echo "--$1" + fi +} + +function option { + VALUE=$(tmux show -v @thumbs-$1 2> /dev/null) + + if [[ ${VALUE} ]]; then + echo "--$1 ${VALUE}" + fi +} + +function multi { + VALUES="" + + while read -r VALUE; do + VALUES="${VALUES} --$1 ${VALUE}" + done < <(tmux show 2> /dev/null | grep thumbs-$1- | cut -d' ' -f2 | sed s/\"//g) + + echo ${VALUES} +} + +PARAMS=() +PARAMS[0]=$(boolean reverse) +PARAMS[1]=$(boolean unique) +PARAMS[2]=$(option alphabet) +PARAMS[3]=$(option position) +PARAMS[4]=$(option fg-color) +PARAMS[5]=$(option bg-color) +PARAMS[6]=$(option hint-bg-color) +PARAMS[7]=$(option hint-fg-color) +PARAMS[8]=$(option select-fg-color) +PARAMS[9]=$(option command) +PARAMS[10]=$(option upcase-command) +PARAMS[11]=$(multi regexp) CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" TARGET_RELEASE="/target/release/" CURRENT_PANE_ID=$(tmux list-panes -F "#{pane_id}:#{?pane_active,active,nope}" | grep active | cut -d: -f1) -NEW_ID=$(tmux new-window -P -d -n "[thumbs]" ${CURRENT_DIR}${TARGET_RELEASE}${COMMAND} --tmux-pane ${CURRENT_PANE_ID}) +COMMAND="tmux-thumbs ${PARAMS[*]} --tmux-pane ${CURRENT_PANE_ID}" +NEW_ID=$(tmux new-window -P -d -n "[thumbs]" ${CURRENT_DIR}${TARGET_RELEASE}${COMMAND}) NEW_PANE_ID=$(tmux list-panes -a | grep ${NEW_ID} | grep --color=never -o '%[0-9]\+') tmux swap-pane -d -s ${CURRENT_PANE_ID} -t ${NEW_PANE_ID}