web-dev-qa-db-ja.com

Bash Shellスクリプト:Alt + Nキーストロークを検出する方法

バックグラウンドで常にリッスンし、ユーザーが次のような特定のキーの組み合わせを押すと特定のコマンドを実行するスクリプトを作成したい Alt + N。これをどのように行うことができますか?

6
Anandu M Das

次のpythonモジュールをダウンロードします。 showkey.py

次に、pythonスクリプトを作成します(それをtest.pyと呼びましょう):

#!/usr/bin/env python

from showkey import ShowKey

def alt_n(arg):
    print "Alt N was pressed"

sk = ShowKey()
sk.addKeyAction([49, 56], alt_n)    # adds handler for Alt-N comb.
sk.run()

showkey.pyをPYTHONPATHに入れるか、test.pyshowkey.pyの両方を同じフォルダーに入れます。

pythonスクリプトを次のように実行します。

Sudo ./test.py

alt_n()コールバックは、ユーザーが Alt + N 組み合わせ。ニーズに合わせてハンドラーのコンテンツを調整します。

showkey.pyで使用するキーコード( showkey コマンドで使用されるものと同じコード)を知るには、Sudoを使用してスクリプトとして再度実行します。すべてのキー押下イベントが端末に出力されます。

$ Sudo ./showkey.py 
Current terminal mode: OFF
Key pressed - keycode: 28
Key pressed - keycode: 56
[...]
7
Sylvain Pineau