【问题标题】:how to switch between windows in linux with command如何在linux中使用命令在窗口之间切换
【发布时间】:2023-02-08 03:39:03
【问题描述】:

我正在研究“AutoKey”,我了解到它将按键解释为按钮并创建脚本。

image "AutoKey"

我在用着

"window.activate('Google Chrome')"

但是它只切换到谷歌浏览器。按键时如何在两个程序之间切换?

例子:

"window.activate('Google Chrome')" - 我在 chrome

"window.activate('explorer.exe')" - 我在存档文件夹中

我希望它们在我按下一个键时切换

bar fedora

【问题讨论】:

    标签: linux bash fedora


    【解决方案1】:

    如果你想让它们切换,那么你必须找出你从哪里开始。通过获取窗口标题启动脚本...

    注意:以下是未经测试的代码。

    如果它不起作用并且您不能轻易找出原因,请在Gitter 上发帖,我们会解决的。下面的脚本会像写的那样失败,因为我认为你不能有空的 except: 子句。您至少可以为它们中的每一个添加一个 pass 语句,这样错误就会被忽略并且不会抛出异常。

    我假设您的窗口标题字符串是正确的,尽管 explorer.exe 让我暂停,因为我不确定它是否会在 Linux 上运行并且 AutoKey 是一个 Linux X11 应用程序。它不适用于 Wayland 或 Windows。

    win = window.get_active_title()
    if win == 'Google Chrome' :
        try:
            window.activate('explorer.exe')
        except:
            ## do something if that didn't work
    elif win == 'explorer.exe'
        try:
            window.activate('Google Chrome')
        except:
            ## do something if that didn't work
    else
        ## do something when neither is the active window
    

    如果启动此脚本时其中一个或两个窗口/应用程序未运行,则某些事情将会失败。您可以尝试启动它们或根据您的要求执行其他操作。

    我不认为第一个 API 调用会失败,但您可以将其放入 try: block 中,如有必要。

    此外,当事情看起来正确但仍然不起作用时,首先要尝试的是在所有 API 调用之前/之间添加长延迟,如 time.sleep(1)。一旦脚本生效,您就可以一次减少或消除延迟。

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2020-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多