Открыть уже запущенную программу через терминал

7

Как переключиться на уже запущенную программу с помощью терминала?

Для справки:

firefox открывает новое окно firefox.

Есть ли команда, которая будет фокусировать уже открытое окно firefox?

    
задан Kunok 05.07.2016 в 11:09
источник

2 ответа

11

Как однострочный

Предполагая, что у вас установлен wmctrl (запустите sudo apt-get install wmctrl , если нет):

Команда:

wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print  }')"

Поднимите открытое окно last <%> last gedit . Замените его любым другим приложением.

Объяснение

pgrep gedit

получает pid gedit

wmctrl -lp

перечисляет все окна и pid, к которым они принадлежат

awk '{ print  }'

отделяет идентификатор окна (первая строка в строке)

$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print  }')
Таким образом,

находит идентификатор окна последнего созданного окна gedit (выход wmctrl -lp перечисляет окна в хронологическом порядке создания, если приложение имеет несколько окон, tail -1 возвращает последний) .

wmctrl -ia

затем вызывает окно с помощью window-id

В маленьком скрипте

... для запуска приложения с аргументом:

#!/bin/bash

wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "")" | tail -1 | awk '{ print  }')"
  • Сохраните его в пустой файл как switchto.sh
  • Сделать его выполнимым
  • Запустите его как (например)

    /path/to/switchto.sh firefox
    

Альтернативы?

Теоретически команда:

xdotool search --class gedit windowactivate

должен делать (вид) то же самое; он должен поднять сначала обнаруженное окно gedit в этом случае.
Однако он кажется менее надежным. В моей системе (Unity) это ничего не делало.

    
ответ дан Jacob Vlijm 05.07.2016 в 11:17
источник
1

Если вы запустили firefox, используя firefox & , вы можете использовать jobs , чтобы увидеть его номер. Чтобы перенести его на передний план, напишите %n firefox , который n обозначает его номер. Пример:

sabrina@ubuntu:~$ jobs
[1]+ Stopped      firefox
sabrina@ubuntu:~$ fg %1

Также вы можете «убить» программу:

sabrina@ubuntu:~$ kill %1
    
ответ дан Sabrina Spelman 05.07.2016 в 11:52
источник

Ознакомьтесь с другими вопросами по меткам