Разверните приложение с известным PID из CLI

Мне нужно развернуть окно приложения, если оно свернуто только с помощью командной строки.

Итак, как это сделать, зная идентификатор процесса.

При работе с командой wmctrl я получил следующую ошибку:

X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  20 (X_GetProperty)
  Resource id in failed request:  0x6718
  Serial number of failed request:  11
  Current serial number in output stream:  11
3
задан 8 June 2015 в 19:34

3 ответа

Это должно работать:

xdotool windowactivate `xdotool search --pid YOUR_PID_HERE | tail -1`

xdootool сообщает довольно много оконных идентификаторов при поиске по pid, поэтому я «замкнул» вывод, чтобы получить только последний идентификатор окна из вывода. Для меня это хорошо работало как с Firefox, так и с gnome-калькулятором. Если xdotool сообщает только один идентификатор окна для вашего pid, то хвостовой канал, конечно, не нужен.

0
ответ дан 8 June 2015 в 19:34

Вы можете использовать wmctrl ( man-страница ) для управления окнами из командной строки.

  1. Установите программу с помощью sudo apt-get install wmctrl или любого другого менеджера пакетов, который вам удобнее.
  2. Получите идентификатор окна, принадлежащий вашему PID. wmctrl -lp перечислит все существующие окна с их идентификатором окна в первом и PID во втором столбце выходных данных.
  3. Поднимите окно с помощью wmctrl -iR <window ID> или wmctrl -ia <window ID>, в зависимости от того, хотите ли вы переключиться на рабочий стол или переместить его на текущий.
0
ответ дан 8 June 2015 в 19:34

Это должно сделать это:

awk '$3 == 17213 {print $1}' <(wmctrl -lp) | xargs -i% sh -c "xwit -id % -pop -raise; wmctrl -i -r % -b add,maximized_vert,maximized_horz"

Вам нужно будет изменить идентификатор в выражении awk, но это позволит развернуть окно и активировать окно. Вам также нужно будет установить xwit (sudo apt-get install xwit) для работы минимизации.


Причина, по которой это так сложно, заключается в том, что ни один инструмент не делает все, что вам нужно, а у тех, кто обладает небольшой способностью, есть проблемы с терминалом:

  • xdotool не может найти PID (несмотря на то, что это рекламируемая функция)
  • wmctrl не знает, как минимизировать и максимизировать вещи
  • xwit не может изменить подсказки окна, но это может сводить к минимуму вещи

В идеале это то, что вы должны делать только с xdotool или wmctrl, но их поиски PID не работают или не существуют соответственно.

0
ответ дан 8 June 2015 в 19:34

Другие вопросы по тегам:

Похожие вопросы: