74 lines
1.1 KiB
Bash
Executable File
74 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# tail -f test-out | awk -v qt='""' '
|
|
# $1 ~ "HSuper_L" { checkstart=1 }
|
|
# /^BBegin chain/ && checkstart {
|
|
# checkstart=0
|
|
# print "rofi -normal-window -e " qt "sxhkd: Super ;" qt
|
|
# }
|
|
# /^EEnd chain/ {
|
|
# print "kill " qt "$pid" qt
|
|
# }'
|
|
|
|
checkstart=false
|
|
theme='
|
|
window {
|
|
anchor: southwest;
|
|
location: southwest;
|
|
x-offset: 4;
|
|
y-offset: -4;
|
|
width: 200;
|
|
}
|
|
|
|
listview {
|
|
border-color: @blue;
|
|
}'
|
|
|
|
display_message() {
|
|
rofi \
|
|
-normal-window \
|
|
-e "sxhkd: $1" \
|
|
-theme-str "$theme" &
|
|
pid=$!
|
|
}
|
|
|
|
close_message() {
|
|
[ -n "$pid" ] && kill "$pid"
|
|
pid=""
|
|
}
|
|
|
|
tail -f test-out | while read -r line; do
|
|
case $line in
|
|
HSuper_L)
|
|
checkstart=true
|
|
;;
|
|
|
|
HSuper_L*)
|
|
if [ "$inchain" = "false" ]; then
|
|
continue
|
|
fi
|
|
echo "Extra chain"
|
|
close_message
|
|
display_message "$line"
|
|
;;
|
|
|
|
"BBegin chain")
|
|
if [ "$checkstart" = "false" ]; then
|
|
continue
|
|
fi
|
|
echo "In chain"
|
|
checkstart=false
|
|
inchain=true
|
|
display_message "HSuper_L"
|
|
;;
|
|
|
|
"EEnd chain")
|
|
if [ "$inchain" = "false" ]; then
|
|
continue
|
|
fi
|
|
echo "End chain"
|
|
close_message
|
|
;;
|
|
esac
|
|
done
|