2019-02-04 21:40:45 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2019-12-11 10:10:52 +00:00
|
|
|
[ -f ~/.bash_profile ] && source ~/.bash_profile
|
2019-03-06 17:04:05 +00:00
|
|
|
|
2019-11-23 22:47:16 +00:00
|
|
|
PARAMS=()
|
|
|
|
|
|
|
|
function add-boolean-param {
|
2019-03-28 13:02:15 +00:00
|
|
|
VALUE=$(tmux show -vg @thumbs-$1 2> /dev/null)
|
2019-03-20 23:31:28 +00:00
|
|
|
|
|
|
|
if [[ "${VALUE}" == "1" ]]; then
|
2019-11-23 22:47:16 +00:00
|
|
|
PARAMS+=("--$1")
|
2019-03-20 23:31:28 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2019-11-23 22:47:16 +00:00
|
|
|
function add-option-param {
|
2019-03-28 13:02:15 +00:00
|
|
|
VALUE=$(tmux show -vg @thumbs-$1 2> /dev/null)
|
2019-03-20 23:31:28 +00:00
|
|
|
|
|
|
|
if [[ ${VALUE} ]]; then
|
2019-11-23 22:47:16 +00:00
|
|
|
PARAMS+=("--$1=${VALUE}")
|
2019-03-20 23:31:28 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2019-11-23 22:47:16 +00:00
|
|
|
function add-multi-param {
|
2019-03-28 13:02:15 +00:00
|
|
|
while read -r ITEM_KEY; do
|
|
|
|
VALUE=$(tmux show -vg $ITEM_KEY 2> /dev/null)
|
2019-11-23 22:47:16 +00:00
|
|
|
PARAMS+=("--$1=${VALUE}")
|
2019-03-28 13:02:15 +00:00
|
|
|
done < <(tmux show -g 2> /dev/null | grep thumbs-$1- | cut -d' ' -f1)
|
2019-03-20 23:31:28 +00:00
|
|
|
}
|
|
|
|
|
2019-11-23 22:47:16 +00:00
|
|
|
add-boolean-param "reverse"
|
|
|
|
add-boolean-param "unique"
|
|
|
|
add-option-param "alphabet"
|
|
|
|
add-option-param "position"
|
|
|
|
add-option-param "fg-color"
|
|
|
|
add-option-param "bg-color"
|
|
|
|
add-option-param "hint-bg-color"
|
|
|
|
add-option-param "hint-fg-color"
|
|
|
|
add-option-param "select-fg-color"
|
2019-12-11 10:10:52 +00:00
|
|
|
add-option-param "select-bg-color"
|
2019-11-23 22:47:16 +00:00
|
|
|
add-option-param "command"
|
|
|
|
add-option-param "upcase-command"
|
|
|
|
add-multi-param "regexp"
|
|
|
|
add-boolean-param "contrast"
|
|
|
|
|
|
|
|
# Remove empty arguments from PARAMS.
|
|
|
|
# Otherwise, they would choke up tmux-thumbs when passed to it.
|
|
|
|
for i in "${!PARAMS[@]}"; do
|
|
|
|
[ -n "${PARAMS[$i]}" ] || unset "PARAMS[$i]"
|
|
|
|
done
|
2019-03-09 22:39:16 +00:00
|
|
|
|
2019-03-10 09:45:22 +00:00
|
|
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
TARGET_RELEASE="/target/release/"
|
2019-03-05 08:10:41 +00:00
|
|
|
CURRENT_PANE_ID=$(tmux list-panes -F "#{pane_id}:#{?pane_active,active,nope}" | grep active | cut -d: -f1)
|
2019-11-23 22:47:16 +00:00
|
|
|
NEW_ID=$(tmux new-window -P -d -n "[thumbs]" ${CURRENT_DIR}${TARGET_RELEASE}tmux-thumbs "${PARAMS[@]}" "--tmux-pane=${CURRENT_PANE_ID}")
|
2019-03-06 15:13:49 +00:00
|
|
|
NEW_PANE_ID=$(tmux list-panes -a | grep ${NEW_ID} | grep --color=never -o '%[0-9]\+')
|
2019-03-05 08:10:41 +00:00
|
|
|
|
2019-03-06 15:13:49 +00:00
|
|
|
tmux swap-pane -d -s ${CURRENT_PANE_ID} -t ${NEW_PANE_ID}
|