0

バッククォート (`) / チルダ (~) キーとその他のキーを使用して、Linux でキーボード ショートカットを作成する方法を探しています。理想的なケースでは:

  1. チルダを押しても何も起こりません
  2. チルダが押されている間に別のキーを押すと、(カスタマイズ可能な) ショートカットがトリガーされます
  3. 別のキーを押す前に/別のキーを押さずにチルダを放す場合は、チルダ キーストロークを送信するだけです。

私は Windows 用の AutoHotKey に似たようなものを持っており、(任意の) Linux 環境でこれを再現する方法を探していました。これを機能させることができれば、任意の GUI を使用することを検討しますが、もちろん、より「一般的な」ソリューションの方がさらに優れています。

4

3 に答える 3

0

うまくいくかどうかはわかりませんが、次の点を確認してください。

これらのツールはどちらも、いくつかのカスタム アクションとショートカットを作成できます。

以下は xdotool の例です: https://askubuntu.com/questions/212154/create-a-custom-shortcut-that-types-clipboard-contents

それが役に立てば幸いです:)

ブルーノ

于 2015-08-24T12:50:00.583 に答える
0

別のマシンで Ubuntu に切り替えた後、AHK スクリプトで使用するのと同じように、チルダを修飾キーとして使用したいと考えました。

exのさまざまなツールについてかなりの調査を行いました。xdotool、xev、autotools、xbindkeys などを試し、最終的に解決策を見つけました。手順は次のとおりです。

  1. Autokey、python、python evded モジュール、xte (sudo apt-get install xautomation) をインストールします。
  2. Autokey と、Autokey が Python スクリプトを起動する方法やホットストリングを作成する方法について少し読んでください。Autokey では、Python スクリプトを呼び出すホットキーを設定できます。したがって、以下の python スクリプトをチルダ キーに割り当てるか、さらに言えば、作成する予定のカスタム ホットキーに割り当てることができます。
  3. 必要なカスタム機能は次のとおりです (まだ完全には Linux に移植されていないと思いますが、autohotkey でスクリプトを作成し、気に入っています。手をキーボードにくっつけたままにします ;))
    • チルダ + 上矢印: マウス ポインターを 100 ポジション上に移動します。
    • チルダ + 下矢印: マウス ポインタを 100 ポジション下に移動
    • チルダ + 右矢印: マウス ポインターを右に 100 ポジション移動します。
    • チルダ + 左矢印: マウス ポインターを左に 100 ポジション移動します。
    • チルダ + Enter: マウスの左クリック (Python スクリプトには存在しません)
    • チルダ + Alt + Enter: マウスの右クリック
  4. 修飾キーとしてチルダ (KEY_GRAVE) を使用します。このキーが押されると、Autokey は Python スクリプトを起動します。スクリプトは、チルダ キーが離されるまでループを実行します。ループ内で、スクリプトはキーボード入力を検出し続けます。上矢印キー (KEY_UP) を押すと、スクリプトは「xte」などを利用して相対位置 (0、-100) でマウスを移動するコマンドを送信します。 from evdev import InputDevice, categorize, ecodes from select import select dev = InputDevice('/dev/input/event4') releasekey = False while releasekey==False: r,w,x = select([dev], [], []) for event in dev.read(): if event.type == ecodes.EV_KEY: #system.exec_command("xte 'mousermove 0 3'", False) #break if event.code == ecodes.KEY_UP: if event.value == 1: system.exec_command("xte 'mousermove 0 -100'", False) if event.code == ecodes.KEY_DOWN: if event.value == 1: system.exec_command("xte 'mousermove 0 100'", False) if event.code == ecodes.KEY_RIGHT: if event.value == 1: system.exec_command("xte 'mousermove 100 0'", False) if event.code == ecodes.KEY_LEFT: if event.value == 1: system.exec_command("xte 'mousermove -100 0'", False)
    if event.code == ecodes.KEY_GRAVE: if event.value == 0: releasekey = True break
  5. dev = InputDevice(' /dev/input/event4 ') 行を調整して、キーボードの正しい名前を割り当てる必要があります。私の場合、event4 は私のキーボードです。あなたのものは違うかもしれません。python-evdev の便利なチュートリアル「Reading Events」を確認できます。このコードは、/dev/input の下にリストされているキーボードの名前を実際に出力します。実際、私のスクリプトはそのチュートリアル スクリプトを拡張したものです。
  6. 唯一の問題は、Python スクリプトを root ユーザーとして開始する必要があることです。そうしないと、キーボード入力デバイスにアクセスできません。これを克服するには、デバイスのパーミッションを変更して読み書きできるようにする udev ルール ファイルを作成します。ルール ファイルを作成し、この行 KERNEL=='event4', MODE="0660"を追加して、ルールをロードします。最後に、デバイスの読み取り/書き込み権限を持つ GROUP に自分自身を追加する必要があります。ファイル許可に関する情報は、/dev/input フォルダーで ls -la を使用して見つけることができます。

うまくいくことを願っています。最初はうまくいかないので、コーヒーを飲んでうまくいくまで戦いましょう ;)

于 2016-09-16T21:51:57.500 に答える