Как я переключаюсь на уже под управлением программу с помощью терминала?
Для examaple:
firefox
открывает новое окно Firefox.
Существует ли команда, которая сфокусирует уже открытое окно Firefox?
Принятие Вас имеет установленный wmctrl (выполненный sudo apt-get install wmctrl
если не):
Команда:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Повысил бы открытое последнее gedit
окно. Замените его любым другим приложением.
pgrep gedit
получает pid gedit
wmctrl -lp
списки все окна и pid они принадлежат
awk '{ print $1 }'
отделяет окно - идентификатор (первая строка в строке)
$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')
поэтому находит идентификатор окна последнего созданного окна gedit
(вывод wmctrl -lp
перечисляет окна в хронологическом порядке создания, если приложение имеет несколько окон, tail -1
возвращает последний).
wmctrl -ia
впоследствии повышает окно window-id
... быть выполненным с приложением как аргумент:
#!/bin/bash
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$1")" | tail -1 | awk '{ print $1 }')"
switchto.sh
Выполните его как (например).
/path/to/switchto.sh firefox
Теоретически команда:
xdotool search --class gedit windowactivate
должен сделать (отчасти) то же; это должно повысить первое найденное окно gedit
в этом случае.
Это кажется менее устойчивым как бы то ни было. В моей системе (Единица) это не сделало ничего вообще.
Если у Вас есть runned использование Firefox firefox &
можно использовать jobs
видеть его число. Принести его к приоритетной записи %n firefox
который n
обозначает его число. Пример:
sabrina@ubuntu:~$ jobs
[1]+ Stopped firefox
sabrina@ubuntu:~$ fg %1
Также можно "закрыть" программу:
sabrina@ubuntu:~$ kill %1