X11

如何將一個鍵映射到一系列鍵和組合,包括那個鍵?

  • November 14, 2021

我嘗試使用dxhdwithxdotool在每個鍵前面加上Ctrl+ G,然後鍵入該鍵,然後按另一個鍵,就像這樣

#!/bin/sh

# @{a-z}
xdotool key ctrl+g
xdotool type {a-z}
sleep 1
xdotool key Tab

我想要完成的是當我輸入任何字元時,a例如,它會表現得好像我點擊Ctrl+ G,然後輸入 an a,等待 1 秒,然後點擊Tab

問題是當我嘗試輸入時a,它實際上會發送Ctrl+ G,然後是 an a,這會遞歸地觸發另一個序列(另一個Ctrl+ G-> a-> Ctrl+ G-> a-> …)。

有這樣做的正確方法嗎?

似乎沒有使用 避免遞歸的本機方法dxhd,但可以sxhkd使用以下配置來完成:

@{a-z}
   pkill -USR2 -x sxhkd; xdotool key ctrl+g key {a-z} sleep 1 key Tab; pkill -USR2 -x sxhkd

第一個和最後一個命令發送信號,該信號sxhkd切換所有綁定的抓取狀態。這允許我們在兩者之間使用綁定鍵而不會導致遞歸。SIGUSR2

(該xdotool命令也已使用其內置的命令鏈壓縮成一行,只是為了使行更短;由分隔的原始命令;也可以工作。不幸的是,sxhkd不支持多行命令。)

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