#bash #wmctrl
Вопрос:
Я пытаюсь запустить сценарий в фоновом режиме, который принимает ввод от сканера штрих-кодов и переключается между двумя окнами. Одно окно-это документ Google листов, другое-графический интерфейс, который принимает данные со сканера и вводит их в базу данных.
Когда штрих-код сканируется со значением «переключиться», в то время как графический интерфейс является активным окном, вызывается следующий сценарий для переключения в окно Google листы:
wmctrl -a <Window that displays the google sheets document>
У меня есть скрипт, работающий в фоновом режиме, который должен переключиться обратно в графический интерфейс, когда штрих-код снова сканируется со значением «переключиться». Этот скрипт содержит следующее:
#!/bin/bash
while read input
do
if [ $input = "switch" ]
then
wmctrl -a <Window that displays GUI>
fi
done
Проблема в том, что при вызове первого скрипта документ Google sheets становится активным окном. Терминал, работающий со вторым сценарием, не получает ввод от сканера штрих-кодов, так как он не находится в фокусе, и окно никогда не переключается обратно на графический интерфейс.