新しいMacbookProを持っていて、それにArchLinuxをインストールしました。私がやりたいことの1つは、メディアキーを使用してトラック(mpd)を検索し、次または前のトラックに移動することです。これはiTunesを搭載したOSXで可能なので、基本的に不可能ではないと思います。使用するxev
と、キープレスイベントとキーリリースイベントのみが表示されます。キーを押し続けると、これら2つのイベントが急速に繰り返されるようです。
だから私がしたいのは:
もちろん、XF86AudioPrevキーについても同じです(ただし、反対方向です)。
これは、いくつかの高度なスクリプトによってのみ可能であるようです。うまくいけば、あなたの一人が私を正しい方向に向けることができます。
編集:興味深いことにshowkey
、キーを押したままにすると、プレスとリリースの間を循環しません。むしろ、キーが押されている間の一連のPressイベントと、最終的に離されたときの最後のReleaseイベントが表示されます。
私は気づいたもう一つの興味深い点は、その使用してオートリピートを無効にする場合xset
、その後xev
にのみ関係なく、キーを押している時間の長さと単一キーリリースイベント、それが手放すだとき、単一のキーを押してイベントを表示しません。otherahndshowkey
の出力は変更されません。一連のキープレスイベントと、手放したときの最後のキーリリースが表示されます。
おそらくそれを使用して私がやりたいことをスクリプト化する方法がありますがsxhkd
、私が使用しているホットキーツールはそのxev
方法に従っているようです。ですXbindkeys
。
いいえ、KeyHoldイベントはなく、KeyPressとKeyReleaseのみです。KeyPressは、キーが押されたときに送信され、一定時間後に再度送信されます。時間は次のように構成できますxset r
(最初の繰り返しまでの時間と次の繰り返しまでの時間の2回あります)。KeyReleaseイベントは、キーが実際にリリースされたときに送信されます(キーが保持されている間は送信されません)。
アプリケーションが保持されたキーに反応したい場合は、最初のキーの押下を記録し、設定された時間の後、または新しいKeyPressイベントの後に、その間にKeyReleaseを受信していないと仮定して反応する必要があります。保持されたキーに反応することは、Unix GUIの世界では非常に珍しいことです。そのため、それを行わないアプリケーションの自己永続的な輪と、それを行う簡単な方法を提供しないプログラミングフレームワークがあります。
XKBでは、一部のキーを繰り返し不可として構成できます。これらのキーは、最初のKeyPressと最後のKeyReleaseのみを生成します。構成のどこでこれが行われるのかわかりません。これらのキーでは、KeyPress + timeout戦略のみが機能し、2番目のKeyPress戦略は機能しません。
xbindkeysもsxhkdもこれを簡単にしません。アクションをキーリリースイベントにバインドすることはできますが、キーの押下とキーのリリースを関連付けるのは簡単ではないため、「キーを押してからXミリ秒後にこれを実行する」というロジックをプログラムすることは困難です。キーはまだリリースされていません」+「キーリリース時にこれを実行しますが、保留イベントがまだ発生していない場合に限ります」。これを簡単にする他の同様のフレームワークを私は知りません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加