Я пишу сценарий, который использует горячие углы для воспроизведения определенных музыкальных нот при повороте в углах и в зависимости от музыкальной последовательности для выполнения определенной команды.
Сценарий вызывается с параметром -d из внизу слева, -e от b-right, -g сверху-слева, -b сверху вниз, добавляет последовательность в файл (~ / bin / for_hot) и сравнивает последовательность с моим ассоциативным массивом. Воспроизводит успешный музыкальный B '', когда последовательность распознается.
горячие углы для воспроизведения определенных музыкальных нот при наведении курсора в углах и в зависимости от музыкальной последовательности для выполнения определенной команды. [!d1 ]
Иногда команды не будут выполняться, даже если воспроизводится успешный звук;
Иногда команды не будут исполняться, даже если воспроизводится успешный звук;
Я думаю, что после этого я не буду отслеживать процессы (kill, background), а также файл (~ / bin / for_hot), который я добавляю, может не записываться вовремя. [!d9 ]
Вот сценарий, обратите внимание, что я noob в Linux, поэтому не ненавижу мой код, мой вопрос, меня слишком много:
#!/bin/bash
#switch###############################
case "$1" in
-d) play -q -n synth 3 pluck 293.665 &
sleep 0.5
echo -n "d" >> ~/bin/for_hot;
;;
-e) play -q -n synth 3 pluck 311.127 &
sleep 0.5
echo -n "e" >> ~/bin/for_hot;
;;
-g) play -q -n synth 3 pluck 391.995 &
sleep 0.5
echo -n "g" >> ~/bin/for_hot;
;;
-b) play -q -n synth 3 pluck 466.164 &
sleep 0.5
echo -n "b" >> ~/bin/for_hot;
;;
esac
######################################
#midi mappings########################
declare -A commands
commands=(
["egbd"]="firefox -n"
["ebgb"]="idea"
["ebb"]="notify-send "$instr ""
["egdgb"]="echo pass | sudo -S poweroff"
["ee"]="nemo /home/mintbwoy");
######################################
s=$(<~/bin/for_hot);
for pattern in "${!commands[@]}";
do
echo "$pattern - ${commands["$pattern"]}";
if [[ "$s" == *"$pattern"* ]]
then
echo -n "" > ~/bin/for_hot;
play -q -n synth 3 pluck 932.328 &
var=$(${commands["$s"]});
$var;
notify-send "[$pattern] = ${commands["$pattern"]} "$var"";
fi
done
######################################