私はウィンドウマネージャだけを持っている(つまりデスクトップがない)LenovoノートブックでDebian Stretchを実行しています。デフォルトでは、この Debian 構成は、音量を上げる、マイクをミュート、明るさを上げるなど、特別な機能を持つキーを無視します。
以下の問題を解決するには、この設定はこれまでサブシェルでスクリプトを実行しながら正常に動作しているようです。
Bashを実行しているttyで同じ効果を得ようとすると問題が発生します。これまで、私は(システムサービスで)ロードキーを使用して特殊キーをスクリプト呼び出しにバインドしてみました。
以下は私がloadkeysに送信した例です。
plain keycode 114 = F110
string F110 = "my_volume_script_file_name some_parameters\n"
plain keycode 115 = F120
string F110 = "my_volume_script_file_name other_parameters\n"
plain keycode 113 = F130
string F110 = "my_volume_script_file_name yet_other_parameters\n"
マップされたキーのいずれかを押すと、この設定は前景で実行されているすべてのアイテムのtty標準入力に自分の呼び出しを送信するように見えます。対話型シェルの場合、すべてが期待どおりに機能します(たとえ画面にコマンド呼び出しが表示されるのは面倒ですが)。前景に他のものが実行されている場合、もちろん、キーストロークで送信されたテキストはスクリプト呼び出しとして解釈されず、望ましい効果は発生しません。
Bashがテキストをフォアグラウンドプロセスのstdinに送信するのではなく、サブシェルで実行されるコマンドとして解釈するキーにバインドできるものがあるかどうか疑問に思います。テキストを別のファイル記述子にコミットするように説得する方法がある場合は、私もそれで役に立つことができます。
ところで、ReadlineでBashのマニュアルセクションを確認しましたが、該当するものは何も見つかりませんでした。
私の主な目的は、フォアグラウンドで実行されている項目に関係なく、ttyで特別なキーが機能するようにすることです。別の方法がありますか?
どんな助けでも大変感謝します。