F9-F12はMacOS Xで使用されており、それらを取り除きたくはありません。ターミナル内のプログラム(主にF9/F10)にF9-F12を時々送信できるようにしたいだけです。
mc
のようないくつかのプログラムは、F9などの同義語としてシーケンスエスケープ9をサポートしていますが、それは普遍的ではありません。
それを行う方法はありますか?
fn-Cmd-F9は、Mountain Lion10.8を実行しているMacBookProのTerminal.appでF9として機能します。
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では次のようになります。
そのシーケンスでCtrl-[
、[
、2
、0
、~
を押しました。私のキーボードレイアウトでは、~
はShift-backtick
です。そのため、Shift修飾子が表示されます。とにかく動作します。
ショートカットを構成すると、それを押してエスケープシーケンスを取得できます。
mc
で動作しますが、現時点ではFキーを使用した別のCLIプログラムを思い出せません。ただし、これはmc
固有のエスケープシーケンスではないため、おそらく他のシーケンスでも機能します。
あるいは、多くのコマンドラインアプリケーションは、Esc, 1
(シーケンス)をF1
を意味し、Esc, 0
を意味するF10
まで理解します。
のキーボードショートカットを無効にできます F12 下:
キーボード設定>キーボードショートカット
これは、私がCoRD(Mac用リモートデスクトップ)を取得するために使用した2つの手順のプロセスです。
最初のステップは、@ tawがコメントの1つで話していることです。ファンクションキーf1〜f10が機能します。 2番目のステップは、f11およびf12キーの押下がOSXによって傍受されるのを防ぎます。
ラップトップを使用している場合、実際にはF9〜F12を使用しておらず、「次の曲」、「オーディオミュート」、「音量ダウン」を押していることを付け加えておきます(最近のmacbookproの例)。 F9〜F12を実際に押すには、同じキーを使用しながら[Fn]を押し続けます。
デスクトップ上で、Exposé、Spacesなどのものが実際のF9-F12キーボードのキーにマッピングされている場合、これらの機能を追加のマウスボタンに関連付けると便利です(たとえば、 ExposéをアクティブにするためのMightyMouse)または画面の端(たとえば、左上に「画面スタンバイ」があります)-しかし、これは実際には主観的な問題です。