X11
如何將一個鍵映射到一系列鍵和組合,包括那個鍵?
我嘗試使用
dxhd
withxdotool
在每個鍵前面加上Ctrl
+G
,然後鍵入該鍵,然後按另一個鍵,就像這樣#!/bin/sh # @{a-z} xdotool key ctrl+g xdotool type {a-z} sleep 1 xdotool key Tab
我想要完成的是當我輸入任何字元時,
a
例如,它會表現得好像我點擊Ctrl
+G
,然後輸入 ana
,等待 1 秒,然後點擊Tab
。問題是當我嘗試輸入時
a
,它實際上會發送Ctrl
+G
,然後是 ana
,這會遞歸地觸發另一個序列(另一個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
不支持多行命令。)