プログラムによる相乗効果の制御

プログラムによる相乗効果の制御

切り替えようとしているスイッチイン方向()ウィンドウ マネージャー (dwm、C で記述) から。コマンド ラインから Synergy アクションを制御する方法はないようですので、wm から適切なキーの組み合わせを実行してみました。

シナリオ: super+,wm によってキャッチされる (コンマ) イベントでは、synergys がリッスンしている別のキーコンボが起動されるはずです。何らかの理由でXTestFakeKeyEvent(xlib 関数) はまったく機能せず、キー押下をシミュレートしてもXSendEvent修飾子では機能しないため、xdotool へのシステム コールを実行する必要がありました。

xdotool keyup comma key control+alt+shift+F11 // note the required comma key up;

POC としては機能しているようですが、ある時点で synergys でセグメント違反が発生します。xdotool を使用せずに同じキーコンボをトリガーしてもセグメント違反は発生しないことに注意してください。

選択肢があるとすれば、どのようなものがありますか?

編集:super+,明らかな解決策の 1 つは、まず Synergy でイベントを リッスンし、そこでロジックを処理することです(画面を切り替えるか、別のキーコンボを dwm に送信するか)。これは機能するはずですが、サーバーとクライアントで異なる dwm 構成が暗黙的に必要になります。これsuper+,はクライアントの dwm によって処理される必要があります (そうしないと、ネイティブ キーボードを介してクライアントを制御しても期待どおりに動作しません)。

関連情報