Подождите, пока разветвленный процесс откроет окно

Я пытаюсь сделать скрипт следующим образом:

st -n dropdown & pid=$(xdotool search --classname dropdown) 

st – эмулятор терминала

Я пытаюсь запустить некоторые команды на созданном st с помощью xdotool. К сожалению, команды после st -n dropdown & запускаются до того, как запускается фактический ST-терминал, поэтому нет pid. Я всегда могу просто поставить sleep 0.1 после, но есть примеры (например, на более старых машинах), где для запуска терминала потребуется больше 0,1 секунды. Есть ли способ подождать, пока терминал запустится до выполнения остальной части скрипта?

Команда wait не работает, потому что ожидает завершения процесса, который в случае st , когда он убит, что не то, что я хочу.

One Solution collect form web for “Подождите, пока разветвленный процесс откроет окно”

xtoolwait – это утилита, которая запускает приложение X и ждет, пока оно не отобразит его окно. Затем он возвращает управление исходному сеансу оболочки.

Обычно он используется из файла .xinitrc или .xsession .

Вы можете использовать его в своем скрипте следующим образом:

 xtoolwait st -n dropdown pid=$(xdotool search --classname dropdown) 

Вторая команда не будет запускаться до xtoolwait пор, пока xtoolwait обнаружит, что st отобразило ее окно. Обратите внимание на отсутствие & на первой строке (это не нужно). Это может обеспечить достаточную задержку для второй команды для правильного поиска ПИД-регулятора.

  • Как исследовать X11, не видя нажатия клавиши?
  • xrandr scale 2x2 для мультидисплея (4K HiDPI и Full HD mix) - размытый вывод
  • Как заставить LXDE иметь прозрачный фон при подключении к X / X11?
  • i3: Как запустить программу с большим временем запуска в указанной рабочей области
  • Как использовать / etc / fbtab в OpenBSD для обеспечения безопасности X11?
  • Обеспечение отображения окон X
  • Графические сбои на Intel HD Graphics 530
  • Как я могу запустить startx и запустить сценарий удаленно через SSH?
  • Как я могу запустить приложение для вина при запуске без входа?
  • Можно ли изменить X-сервер без клика?
  • Могу ли я управлять графической программой из командной строки?
  • Interesting Posts

    uuid, номер устройства и файл устройства для устройства

    доступ к ttyusb0 в качестве обычного пользователя

    Chromium – Share Browser Tabs?

    Как работает отладчик в Linux?

    Как получить информацию об оборудовании и выбрать драйверы для хранения в ядре, скомпилированном из исходного кода?

    Ошибка: .onLoad failed в loadNamespace () для 'cairoDevice' на Linux-машине

    Как определить программу, которая использует большую пропускную способность?

    Можем ли мы использовать символическую ссылку и жесткую ссылку для каталогов?

    Как я могу сделать хром (перестать спрашивать) браузера по умолчанию?

    Где разместить плагины приложений (.so)?

    Скрыть процессы от других пользователей на основе групп (под Linux)?

    Как остановить `apt-get` жалобы на неудовлетворенные зависимости, когда я вручную устанавливаю программное обеспечение из источника?

    Что определяет путь, по которому система ищет файл?

    Поделитесь aliased папкой на хосте Windows с гостевым Linux с помощью VirtualBox

    Как установить dd-образ, созданный с помощью fmem (инструмент дампа памяти)

    Linux и Unix - лучшая ОС в мире.