У меня была аналогичная проблема, и проблема заключалась в том, что Gnome будет захватывать медиа-ключи до того, как они достигнут VLC, чтобы исправить это, вы можете перейти к разделу «System-> Preferences-> Keyboard Shortcuts»
Там вы будет видеть заголовок с именем sound (развернуть его, если необходимо), и удалить из него комбинации клавиш, которые вы хотите в VLC (вы можете отключить их, нажав на элемент, а затем нажав обратное пространство).
Только проблема с это то, что любые другие приложения, которые используют встроенную обработку Gnome, больше не будут работать с медиа-ключами, если вы не добавите их снова (что, в свою очередь, снова разрывает VLC)
Я смог воссоздать эту проблему. Хотя я не знаю, почему существует разница между read и read -n1, добавив простую задержку до того, как ключ заставил ее работать. Я предполагаю, что не хватает времени после того, как окно переключится на его регистрацию нажатия клавиши.
#!/bin/bash
gedit -s &
GEDPID=$!
sleep 2s
GEDWINID=`xdotool search --pid $GEDPID | tail -1`
echo "press any keys"
read -n1 i
xdotool sleep 0.1 windowactivate --sync $GEDWINID key --clearmodifiers --delay 100 "$i" && wmctrl -a Terminal
Я смог воссоздать эту проблему. Хотя я не знаю, почему существует разница между read и read -n1, добавив простую задержку до того, как ключ заставил ее работать. Я предполагаю, что не хватает времени после того, как окно переключится на его регистрацию нажатия клавиши.
#!/bin/bash
gedit -s &
GEDPID=$!
sleep 2s
GEDWINID=`xdotool search --pid $GEDPID | tail -1`
echo "press any keys"
read -n1 i
xdotool sleep 0.1 windowactivate --sync $GEDWINID key --clearmodifiers --delay 100 "$i" && wmctrl -a Terminal
Я смог воссоздать эту проблему. Хотя я не знаю, почему существует разница между read и read -n1, добавив простую задержку до того, как ключ заставил ее работать. Я предполагаю, что не хватает времени после того, как окно переключится на его регистрацию нажатия клавиши.
#!/bin/bash
gedit -s &
GEDPID=$!
sleep 2s
GEDWINID=`xdotool search --pid $GEDPID | tail -1`
echo "press any keys"
read -n1 i
xdotool sleep 0.1 windowactivate --sync $GEDWINID key --clearmodifiers --delay 100 "$i" && wmctrl -a Terminal
Я изменил ваш исходный сценарий, чтобы он правильно получил идентификатор окна вашего текущего терминала и переключил фокус между окнами Terminal и Gedit. Этот скрипт использует бесконечный цикл, поэтому все нажатия клавиш, которые печатаются в окне терминала, переносятся в Gedit. Отмените его с помощью Ctrl + C.
#!/bin/bash
WIDGTERM=$(xdotool getactivewindow)
gedit -s 2> /dev/null &
sleep 2s
WIDGEDIT=$(xdotool getactivewindow)
xdotool windowactivate $WIDGTERM
echo "Press any keys"
while true
do
read -n1 i
xdotool windowactivate --sync $WIDGEDIT key --clearmodifiers "$i"
sleep .5
xdotool windowactivate --sync $WIDGTERM
done
Я изменил ваш исходный сценарий, чтобы он правильно получил идентификатор окна вашего текущего терминала и переключил фокус между окнами Terminal и Gedit. Этот скрипт использует бесконечный цикл, поэтому все нажатия клавиш, которые печатаются в окне терминала, переносятся в Gedit. Отмените его с помощью Ctrl + C.
#!/bin/bash
WIDGTERM=$(xdotool getactivewindow)
gedit -s 2> /dev/null &
sleep 2s
WIDGEDIT=$(xdotool getactivewindow)
xdotool windowactivate $WIDGTERM
echo "Press any keys"
while true
do
read -n1 i
xdotool windowactivate --sync $WIDGEDIT key --clearmodifiers "$i"
sleep .5
xdotool windowactivate --sync $WIDGTERM
done
Я изменил ваш исходный сценарий, чтобы он правильно получил идентификатор окна вашего текущего терминала и переключил фокус между окнами Terminal и Gedit. Этот скрипт использует бесконечный цикл, поэтому все нажатия клавиш, которые печатаются в окне терминала, переносятся в Gedit. Отмените его с помощью Ctrl + C.
#!/bin/bash
WIDGTERM=$(xdotool getactivewindow)
gedit -s 2> /dev/null &
sleep 2s
WIDGEDIT=$(xdotool getactivewindow)
xdotool windowactivate $WIDGTERM
echo "Press any keys"
while true
do
read -n1 i
xdotool windowactivate --sync $WIDGEDIT key --clearmodifiers "$i"
sleep .5
xdotool windowactivate --sync $WIDGTERM
done