Я задавался вопросом, возможно ли создать сочетание клавиш для запуска приложения, если это еще не работает в Ubuntu?
Это - допустимый пример для чего-то как браузер, который обычно в большой степени используется, и Вы действительно не хотели бы выполнять другой экземпляр его, если существует тот уже, работающий (скорее просто активируют окно).
Сохраните следующий сценарий к своей домашней папке как launch_chrome.py
:
#!/usr/bin/env python
import subprocess
import wnck
import gtk
import time
screen = wnck.screen_get_default()
while gtk.events_pending():
gtk.main_iteration()
window_list = screen.get_windows_stacked()
last_active = None
for window in window_list:
if window.get_application().get_name() == "Google Chrome":
last_active = window
if last_active:
timestamp = int(time.time())
last_active.activate(timestamp)
else:
subprocess.Popen("google-chrome")
Сделайте исполняемый файл сценария:
chmod +x ~/launch_chrome.py
Используйте команду /home/<YOURUSERNAME>/launch_chrome.py
при добавлении ярлыка.
Когда этот ярлык будет активирован, он будет также:
В Ubuntu существует названный пакет run-one
это близко к тому, что Вы спрашиваете.
Я сообщаю об описании:
This utility will run just one instance at a time of some command and
unique set of arguments (useful for cronjobs, eg).
Относительно сочетания клавиш посмотрите здесь, Как использовать ярлык горячей клавиши для выполнения средства запуска?.
Относительно, "если существует тот уже, работающий, просто активируйте окно", я не знаю. Не все приложения имеют окно, у них могут быть нуль или больше чем одно окно. И даже в случае единственного окна, я не знаю о простом способе отобразить процесс на его окно.