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)

相關內容