Skip to content

Instantly share code, notes, and snippets.

@ardangelo
Created June 7, 2023 23:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ardangelo/dc903779c932aee612c420412578dfc4 to your computer and use it in GitHub Desktop.
Save ardangelo/dc903779c932aee612c420412578dfc4 to your computer and use it in GitHub Desktop.
Tmux symbol menu
tmux bind-key <key> run-shell ${CURRENT_DIR}/sym_menu.bash
# sym_menu.bash
#!/usr/bin/env bash
declare -r CURRENT_DIR=$(dirname $(readlink -f ${BASH_SOURCE[0]}))
tmux display-popup -w 32 -h 8 -E -b double -x C -y S \
${CURRENT_DIR}/display_sym_menu.bash
exit 0
# display_sym_menu.bash
#!/bin/bash
# It's a first draft...
map_sym1() {
case "$1" in
q) retval="~" ;;
w) retval="\`" ;;
e) retval="{" ;;
r) retval="}" ;;
t) retval="[" ;;
y) retval="]" ;;
u) retval="<" ;;
i) retval=">" ;;
o) retval="^" ;;
p) retval="%" ;;
a) retval="=" ;;
s) retval="/" ;;
d) retval="+" ;;
f) retval="*" ;;
g) retval="\\" ;;
h) retval="|" ;;
j) retval="&" ;;
k) retval="\"" ;;
l) retval="\"" ;;
z) retval="$" ;;
x) retval="$" ;;
c) retval="$" ;;
v) retval="?" ;;
b) retval="!" ;;
n) retval="<" ;;
m) retval=">" ;;
*) retval="$1" ;;
esac
}
map_sym2() {
case "$1" in
q) retval="#" ;;
w) retval="1" ;;
e) retval="2" ;;
r) retval="3" ;;
t) retval="(" ;;
y) retval=")" ;;
u) retval="_" ;;
i) retval="-" ;;
o) retval="+" ;;
p) retval="@" ;;
a) retval="*" ;;
s) retval="4" ;;
d) retval="5" ;;
f) retval="6" ;;
g) retval="/" ;;
h) retval=":" ;;
j) retval=";" ;;
k) retval="'" ;;
l) retval="\"" ;;
z) retval="7" ;;
x) retval="8" ;;
c) retval="9" ;;
v) retval="?" ;;
b) retval="!" ;;
n) retval="," ;;
m) retval="." ;;
*) retval="$1" ;;
esac
}
display_sym1 () {
echo "Q~ W\` E{ R} T[ Y] U< I> O^ P%"
echo "―――――――――――――――――――――――――――――"
echo "A= S/ D+ F* G\\ H| J& K\" L\""
echo "―――――――――――――――――――――――――――――"
echo " Z\$ X\$ C\$ V? B! N< M> 1/2"
}
display_sym2 () {
echo "Q# W1 E2 R3 T( Y) U_ I- O+ P+"
echo "―――――――――――――――――――――――――――――"
echo "A* S4 D5 F6 G/ H: J; K' L\""
echo "―――――――――――――――――――――――――――――"
echo " Z7 X8 C9 V? B! N, M. 2/2"
}
retval=""
sym="1"
display () {
if [ "$sym" = "1" ]; then
display_sym1
else
display_sym2
fi
}
map () {
if [ "$sym" = "1" ]; then
map_sym1 "$1"
else
map_sym2 "$1"
fi
}
while [ -z "$retval" ]; do
display
read -n1 -s chr
if [ -z "$chr" ]; then
if [ "$sym" = "1" ]; then
sym="2"
else
sym="1"
fi
else
map "$chr"
tmux send-keys $retval
break
fi
done
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment