web-dev-qa-db-ja.com

Terminal.app内で実行されているcursesプログラムにF9-F12を送信するにはどうすればよいですか?

F9-F12はMacOS Xで使用されており、それらを取り除きたくはありません。ターミナル内のプログラム(主にF9/F10)にF9-F12を時々送信できるようにしたいだけです。

mcのようないくつかのプログラムは、F9などの同義語としてシーケンスエスケープ9をサポートしていますが、それは普遍的ではありません。

それを行う方法はありますか?

10
taw

fn-Cmd-F9は、Mountain Lion10.8を実行しているMacBookProのTerminal.appでF9として機能します。

9
LarsR

AppleScriptを実行できます(たとえば、AutomatorのServiceでラップしてRun AppleScriptアクション、入力なしinTerminal)that以下を実行します。

tell application "System Events" 
    tell expose preferences to set the properties of the all windows shortcut to {function key:F1}
    key code 101 # press F9
    tell expose preferences to set the properties of the all windows shortcut to {function key:F9}
end tell

これにより、F9にバインドされているものに一時的に別のショートカットが割り当てられ、F9を押して、設定を元に戻します。他の公開設定の設定名は次のとおりです。

all windows shortcut
application windows shortcut
show desktop shortcut
dashboard shortcut 

F9からF12のキーコードは次のとおりです。

F9 101
F10 109
F11 103
F12 111

システム環境設定"キーボード"キーボードショートカット"サービスでサービスにキーボードショートカットを割り当てることができます。別のショートカットを学習する必要があります(例:Command-F9) 、ただし、少なくともキーを押してアクションを開始できます。 Fキーを使用したショートカットについては、 この答え の最後の段落を参照してください。


または、 Butler のようなホットキー/マクロアプリケーションを構成して、ショートカットを無効にしているときにFキーの1つを押したときにcat -vから取得したエスケープシーケンスを押すこともできます。

$ cat -v
^[[20~^[[21~^[[23~^[[24~

これらは順番にF9からF12です。

バトラーでは、F9では次のようになります。

enter image description here

そのシーケンスでCtrl-[[20~を押しました。私のキーボードレイアウトでは、~Shift-backtickです。そのため、Shift修飾子が表示されます。とにかく動作します。

ショートカットを構成すると、それを押してエスケープシーケンスを取得できます。

enter image description here

mcで動作しますが、現時点ではFキーを使用した別のCLIプログラムを思い出せません。ただし、これはmc固有のエスケープシーケンスではないため、おそらく他のシーケンスでも機能します。


あるいは、多くのコマンドラインアプリケーションは、Esc, 1(シーケンス)をF1を意味し、Esc, 0を意味するF10まで理解します。

5
Daniel Beck

のキーボードショートカットを無効にできます F12 下:

キーボード設定>キーボードショートカット

2
user319498

これは、私がCoRD(Mac用リモートデスクトップ)を取得するために使用した2つの手順のプロセスです。

  1. システム環境設定>キーボード>キーボード>「すべてのF1、F2などのキーを標準のファンクションキーとして使用する」にチェックを入れます
  2. システム環境設定>キーボード>ショートカット> [デスクトップを表示]、[ダッシュボードを表示]のチェックを外します

最初のステップは、@ tawがコメントの1つで話していることです。ファンクションキーf1〜f10が機能します。 2番目のステップは、f11およびf12キーの押下がOSXによって傍受されるのを防ぎます。

0
Robino

ラップトップを使用している場合、実際にはF9〜F12を使用しておらず、「次の曲」、「オーディオミュート」、「音量ダウン」を押していることを付け加えておきます(最近のmacbookproの例)。 F9〜F12を実際に押すには、同じキーを使用しながら[Fn]を押し続けます。

デスクトップ上で、Exposé、Spacesなどのものが実際のF9-F12キーボードのキーにマッピングされている場合、これらの機能を追加のマウスボタンに関連付けると便利です(たとえば、 ExposéをアクティブにするためのMightyMouse)または画面の端(たとえば、左上に「画面スタンバイ」があります)-しかし、これは実際には主観的な問題です。

0
Luke404