このxte
コマンドは、ターミナルで実行するとExpoモードをトリガーします。
xte 'keydown Super_L' 'key S' 'keyup Super_L'
ただし、これを私の.xbindkeysrcファイルに入れると:
"xte 'keydown Super_L' 'key S' 'keyup Super_L'"
b:11
ボタンをクリックしても何も起こりません。次のバインドにより、ボタン11を押したときに文字Xがコンソールに表示されます。
"xte 'key X'"
b:11
これは、ボタン11をクリックしたときのxbindkeys -n -v
の詳細な出力です。
ボタンを押す! e.xbutton.button = 11 e.xbutton.state = 16 "xte 'keydown Super_L' 'key W' 'keyup Super_L'" m:0x0 + b:11(マウス) ウィンドウ2bbの画面0を取得 fork + exec呼び出しでプログラムを開始 ボタンリリース! e。 xbutton.button = 11 e.xbutton.state = 16
そして、何も起こりません。これはxbindkeys
がコマンドを実行する方法と関係がありますか? (fork + exec呼び出し)
expo.sh:
#!/usr/bin/env bash
export DISPLAY=:0
xte 'keydown Super_L' 'key S' 'keyup Super_L'
コマンドラインからこのスクリプトを実行すると、Expoがアクティブになります。 xbindkeysにバインドします:
"sh ~/expo.sh"
b:11
マウスボタン11のクリック:
ボタンを押す! e.xbutton.button = 11 e.xbutton.state = 16 "sh〜/ expo.sh" m:0x0 + b :11(マウス) ウィンドウ2bbの画面0を取得 fork + exec呼び出しでプログラムを起動
何も起こりません!
これは非常に奇妙です。 Super+W
キーストロークがシミュレートされているときにマウスボタンがまだ押されている(まだ離されていない)場合、何も起こりません。誰のせいなのかわからない(おそらくシナモン?)。 xte
コマンドに短い遅延を追加することで、それを回避しました。
xte 'usleep 100000' 'keydown Super_L' 'key S' 'keyup Super_L'
Super+S
をシミュレートする前に0.1秒待機するようになりました。マウスボタンを押したままにするとmore 0.1秒より長くなりますが、何も起こりません。
これは回避策の回答です。適切な回答を希望します。
別の簡単な解決策:xbindkeys定義で「b:11」を使用する代わりに、「b:11 + release」を使用します。ボタンを放してコマンドを実行するまで待機します。
例:
"sh ~/expo.sh"
b:11 + release
私は同じ問題に直面しました。
"xte 'key b'"
コンソールで機能していましたが、xbindkeysパラメータファイルでは機能していませんでした。 bを彼のキーシムコードで変更し、「xev」コマンドを使用して取得しました。
"xte 'key Ox62'"
それは私のために働いた
Sxhkcdキーマッパーの使用中に同様の問題が発生します。実際のショートカットキーがまだ押されていると検出されます。
いくつかの半回避策があります。
sleep 0.2
を追加しますただし、=)ではリアルタイムアクションを取得できません
+ Releaseでお試しください
"xte 'keydown Super_L' 'key S' 'keyup Super_L'"
b:11 + Release
それが役立つかもしれません。