X11

如何將全域熱鍵轉發到僅在視窗處於焦點時才偵聽的程序?

  • January 4, 2021

假設有一個程序(如 OBS、Chrome 或 Discord)接受熱鍵(打開、保存、列印等)如何將全域熱鍵(如 i3 中配置的熱鍵)轉發到僅本地接受事件的程序窗戶。

例如,假設我想針對 Chrome 的執行版本進行列印 ( Ctrl+ P)。如何設置熱鍵,以便 Chrome在未聚焦時打開列印對話框 ( CTRL+ )?P

你可以這樣做,

  1. 找到兩者,
  • 您目前的活動視窗。( src)
  • 目標視窗。( dst)。
  1. 腳本,

  2. 彈到dst

  3. 送出密鑰

  4. 反彈回src

要查找打開的視窗,您可以使用xdotool,

src=$(xdotool getwindowfocus)
dst=$(xdotool search --onlyvisible --class "Chromium")

然後向它發送您可以使用的正確密鑰,

export key="Ctrl+P"
xdotool windowfocus --sync "$dst" key "$key" windowfocus --sync "$src"

引用自:https://unix.stackexchange.com/questions/627402