Xfce 与 Kde Plasma 5:如何自动将焦点放在新创建的窗口上?

Xfce 与 Kde Plasma 5:如何自动将焦点放在新创建的窗口上?

我正在使用 Xfce 和 Kde Plamsa5 作为窗口管理器。我无法再打开 Xfce 窗口设置,但可以打开 KDE 系统设置。我找不到自动聚焦到新创建的窗口的选项。

当我打开一个新窗口时,焦点停留在之前所在的窗口上,但我希望新窗口能够自动升起并聚焦。

答案1

这是 Kwin 窗口设置中的“焦点窃取预防”。如果设置为“中”,新打开的窗口将自动获得焦点。

答案2

清洁的解决方案

我不用等离子,所以我无法找出问题的原因。无需解释,消除原因是“最干净”的解决方案。

如果这看起来不可能,而您又想使用这种组合,那么您可以使用下面的方法来实现。解决方案是一个极其“轻量”的后台脚本,它会密切关注新创建的窗口,并在它们出现时将其提升。

如何使用

  1. 该脚本使用wmctrl

    sudo apt-get install wmctrl
    
  2. 将以下脚本复制到一个空文件中,并将其另存为raise_window.py

  3. 使用以下命令从终端进行测试运行:

    python3 /path/to/raise_window.py
    

    打开一些应用程序,看看它们的窗口是否自动升起。

  4. 如果一切正常,请将其添加到您的启动应用程序中:Dash > 启动应用程序 > 添加命令。

剧本

#!/usr/bin/env python3
import subprocess
import time
import os

get = lambda cmd: subprocess.check_output(cmd).decode("utf-8").strip()
curr_1 = get(["wmctrl", "-l"]).splitlines()

while True:
    try:
        curr_2 = get(["wmctrl", "-l"]).splitlines()
        new = [w for w in curr_2 if not w in curr_1]
        for w in new:
            w = w.split()[0]
            command = "wmctrl -ia "+w
            subprocess.Popen(["/bin/bash", "-c", command])
    except:
        pass
    curr_1 = curr_2
    time.sleep(1)

相关内容