我想知道如果应用程序尚未在 Ubuntu 中运行,是否可以创建键盘快捷键来运行该应用程序?
对于通常大量使用的浏览器之类的东西来说,这是一个有效的例子,如果已经有一个实例在运行,您就不会真正想要运行它的另一个实例(而只是激活窗口)。
答案1
保存以下内容脚本到你的主文件夹
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
时添加快捷方式。
当此快捷方式被激活时,它将:
- 如果尚未运行任何 Chrome 窗口,请启动一个新的窗口,或者
- 将最近使用的 Chrome 窗口置于焦点之中。
答案2
在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).
关于键盘快捷键,请参见此处如何使用热键快捷方式运行启动器?。
关于“如果已经有一个正在运行,则激活该窗口”,我不知道。并非所有应用程序都有窗口,它们可能有零个或多个窗口。即使在单个窗口的情况下,我也不知道将进程映射到其窗口的简单方法。