Сначала создайте файл, чтобы выбрать окно записи, и отправьте командный ключ в это окно.
Затем назначьте горячая клавиша для активации скрипта.
#!/bin/bash
# Specify the Window running your recording by running
# "./hkrecord.sh getwindowid" from the command line.
# Alternatively you can edit the ~/recordfile and place your own string. This
# first line of the fie will be used
# Ensure you have the following "xdotool" and "wmctrl" installed.
recordfile="$HOME/recordfile"
getwindowid(){
windowid=$(wmctrl -lp | awk '{$2=$3=$4=":"; print $0}'| awk -F: \
'{print $1"\n"$4}' | zenity --list --column="No" --height=800 --width=1000 \
--column="Select your choice" \
--text="Text above column(s)" --hide-column=1 --title="My menu" 2>/dev/null)
[[ "$windowid" ]] && sed -i "1i @$windowid" $recordfile || \
echo "No Window selected"
exit
}
if [ ! $# -eq 0 ]; then
if [[ "x$1" == *"get"* ]]; then
echo "Getting the window id"
getwindowid
exit
fi
fi
recordwindow="$(head -n1 $recordfile)"
if [ "$(echo $recordwindow | egrep '@0x')" ]; then
windowid=$(echo $recordwindow | sed "s/\@//")
else
windowid=$(echo $(wmctrl -lp|egrep -i $recordwindow)|head -n1|\
awk '{print $1}')
echo "$windowid|$recordfwindow" # debug line... can be commented out.
fi
echo "Using WindowID: $windowid" # debug line... can be commented out.
if [ -z $windowid ]; then
espeak "Can't locate specified window!"
espeak "Exiting..."
exit
fi
xdotool key --window $windowid p
Сохраните сценарий в удобной области, например /usr/local/bin/hkrecord.sh
Сначала запустите скрипт из командной строки в качестве быстрого теста. Затем назначьте скрипт . Чтобы указать окно (необходимо только одно время):
$ ./hkrecord.sh getwindow
Запуск hkrecord.sh без аргумента будет управлять записью.
Перейдите в System Settings -> keyboard и добавьте пользовательскую комбинацию клавиш. Выберите горячую клавишу, которая не будет конфликтовать с вашей программой переднего плана. Я использую Shift + Ctrl + P.
Это конфигурация для пользовательского ярлыка:
Name: Hotkey Record Command: /usr/local/bin/hkrecord.shЯ разместил инструкции как комментарии в файле сценария.
В качестве дополнительного преимущества можно использовать ту же самую глобальную горячую клавишу для Custom Shortcut . Я использую эту систему как диктофон для записи из моих записанных заметок.
Я попытался сделать скрипт очень простым, чтобы его было легко понять и настроить.
Примечание: Спасибо за то, что don_crissti и George_Vasiliou (https://unix.stackexchange.com/a/328548/81664) помогли мне с графическим интерфейсом для выбора окно записи.