Як перейти на вже запущену програму за допомогою терміналу?
Для прикладу:
firefox відкриває нове вікно Firefox.
Чи є команда, яка зосередить уже відкрите вікно firefox?
Як перейти на вже запущену програму за допомогою терміналу?
Для прикладу:
firefox відкриває нове вікно Firefox.
Чи є команда, яка зосередить уже відкрите вікно firefox?
Відповіді:
Якщо припустимо, що ви встановили wmctrl (запустіть, sudo apt-get install wmctrlякщо ні):
Команда:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Підніме останнє відкрите geditвікно. Замініть його будь-яким іншим додатком.
pgrep gedit
отримує під gedit
wmctrl -lp
перелічує всі вікна та підручник, до якого вони належать
awk '{ print $1 }'
розбиває вікно-id (перша рядок у рядку)
$(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.
Однак це здається менш надійним. У моїй системі (Єдність) вона взагалі нічого не робила.
Якщо ви запустили Firefox за допомогою, firefox &ви можете jobsпереглянути його номер. Щоб вивести його на передній план, напишіть, %n firefoxщо nозначає його номер. Приклад:
sabrina@ubuntu:~$ jobs
[1]+ Stopped firefox
sabrina@ubuntu:~$ fg %1
Також ви можете "вбити" програму:
sabrina@ubuntu:~$ kill %1