创建快捷方式以有条件地运行应用程序

创建快捷方式以有条件地运行应用程序

我想知道如果应用程序尚未在 Ubuntu 中运行,是否可以创建键盘快捷键来运行该应用程序?

对于通常大量使用的浏览器之类的东西来说,这是一个有效的例子,如果已经有一个实例在运行,您就不会真正想要运行它的另一个实例(而只是激活窗口)。

答案1

  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")
    
  2. 使脚本可执行:

    chmod +x ~/launch_chrome.py
    
  3. 使用命令/home/<YOURUSERNAME>/launch_chrome.py添加快捷方式

当此快捷方式被激活时,它将:

  1. 如果尚未运行任何 Chrome 窗口,请启动一个新的窗口,或者
  2. 将最近使用的 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).

关于键盘快捷键,请参见此处如何使用热键快捷方式运行启动器?

关于“如果已经有一个正在运行,则激活该窗口”,我不知道。并非所有应用程序都有窗口,它们可能有零个或多个窗口。即使在单个窗口的情况下,我也不知道将进程映射到其窗口的简单方法。

相关内容