diff options
author | Haoran S. Diao (刁浩然) <0@hairydiode.xyz> | 2023-11-25 03:45:16 -0800 |
---|---|---|
committer | Haoran S. Diao (刁浩然) <0@hairydiode.xyz> | 2023-11-25 03:45:16 -0800 |
commit | cb31a5025127f8e16c705c88f439a8f819952827 (patch) | |
tree | c84a83e6c50bc9d783e7d6d08d109602bf1a03aa /imt |
Moved everything out of dotfiles
Diffstat (limited to 'imt')
-rwxr-xr-x | imt | 55 |
1 files changed, 55 insertions, 0 deletions
@@ -0,0 +1,55 @@ +#!/bin/bash +#Janky ibus table boshiamy implementation for tmux + +#gets current window id of IME and puts it here +code="" +clear +while true; do + #need IFS="" so read reads spaces + OIFS=$IFS + export IFS=""; read -rsn1 i + export IFS=$OIFS + #echo ".$i." + if [[ "$i" = [abcdefghijklmnopqrstuvwxyz,.] ]]; then + clear + #escape periods + i=$(echo $i |sed 's/\./\\\./g') + code=$code$i + opt=$(grep "^$code\s" ~/lang/zh/boshiamy/ibus-boshiamy/boshiamy.txt |\ + #remove simplfied + grep -v 98|\ + awk '{print $3" "$2}' |\ + sort -nr|\ + awk '{print $2}') + echo $opt + echo $code + elif [[ "$i" = [0123456789] ]]; then + if [ "$code" == "" ]; then + char=$i + else + clear + char=$(echo $opt | awk "{print \$$i}") + code="" + fi + tmux send-key -t "!" "$char" + #dirty hack for detecting space + elif [ "<$i>" == "< >" ]; then + if [ "$code" == "" ]; then + char=" " + else + clear + char=$(echo $opt | awk "{print \$1}") + code="" + fi + tmux send-key -t "!" "$char" + elif [[ "$i" = '`' ]]; then + clear + code="" + #if enter is pressed then I am done editing + elif [[ "$i" = "" ]]; then + #-r "!" means the previous window + tmux send-keys -t "!" Enter + else + tmux send-key -t "!" "$i" + fi +done |