各キーの前に+をdxhd
使用して使用し、そのキーを入力し、以下のように別のキーを押してみました。xdotool
CtrlG
#!/bin/sh
# @{a-z}
xdotool key ctrl+g
xdotool type {a-z}
sleep 1
xdotool key Tab
たとえば、私が望むのは、任意の文字を入力した場合は、+をクリックしてからを入力して1秒待ってからをクリックするようにa
動作することです。CtrlGa
Tab
問題は、入力しようとするとa
実際にCtrl+を送信しGてから1つを送信し、a
別のシーケンス(別のCtrl+ G- > a
- > Ctrl+ G- > a
- > ...)を再帰的にトリガーすることです。
正しい方法がありますか?
答え1
recursionの使用を避けるための基本的な方法はないようですが、次の方法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
すべてのバインディングのインポートステータスを切り替えます。。これにより、再帰を発生させることなく、2つの間にバインディングキーを使用できます。
(このxdotool
コマンドは、組み込みコマンドを使用して1行に圧縮されました。命令体系、行を短くするために、区切り記号付きの生コマンド;
も機能します。残念ながら、sxhkd
複数行のコマンドはサポートされていません。 )