Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

F9-F12 are used by Mac OS X, and I don't want to get rid of them, I just want to be able to send F9-F12 occasionally to programs inside terminal (mostly F9/F10).

Some programs like mc support sequence Escape 9 as synonym for F9 etc. but it's not universal.

It there any way to do it?

share|improve this question

4 Answers 4

You can disable the keyboard shortcut for F12 under:

keyboard preferences > keyboard shortcuts

share|improve this answer

fn-Cmd-F9 works as F9 in the Terminal.app on my MacBook Pro, running Mountain Lion 10.8.

share|improve this answer
    
On my MacBook Air running Mavericks, it's fn-Option-Fkey, not fn-Command-Fkey. –  Mark Reed May 8 at 1:19

You can run an AppleScript (e.g. by wrapping it in a Service in Automator with the Run AppleScript action, with no input in Terminal) that executes the following:

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

This will temporarily assign a different shortcut to what's bound to F9, press F9, and revert the setting. The setting names are the following for the other Expose preferences:

all windows shortcut
application windows shortcut
show desktop shortcut
dashboard shortcut 

The key codes for F9 to F12 are the following:

F9 101
F10 109
F11 103
F12 111

You can assign keyboard shortcuts to services in System Preferences » Keyboard » Keyboard Shortcuts » Services You will need to learn another shortcut (e.g. Command-F9), but at least you can press a key to initiate the action. For shortcuts using F-keys, see the last paragraph in this answer.


You can alternatively configure a hotkey/macro application like Butler to press the escape sequence you get from cat -v when pressing one of the F-keys while you deactivated the shortcuts.

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

These are F9 to F12, in order.

In Butler, it looks like this for F9:

enter image description here

I pressed Ctrl-[, [, 2, 0, ~ for that sequence. On my keyboard layout, ~ is Shift-backtick, that's why the Shift modifier is visible. Works anyway.

Configure a shortcut and you can start pressing that to get the escape sequence:

enter image description here

Works in mc, and I don't recall another CLI program with F-keys at the moment. But it's not the mc specific escape sequence, so it will probably work in others.


Alternatively, many command line applications understand Esc, 1 (sequence) to mean F1, through to Esc, 0 meaning F10.

share|improve this answer

I'll add that if you are on a laptop, you're not actually using F9-F12, you're pressing "next song", "audio mute", "volume down" (example from recent macbookpro). To actually press F9-F12, keep 'Fn' pressed while using the same key.

On the desktop, if you have stuff like Exposé, Spaces, and so on mapped to the actual F9-F12 keyboard keys, I find it useful to associate those functions with additional mouse buttons (eg. I use the 'lateral button pair' of the Mighty Mouse to activate Exposé) or screen edges (eg. I have 'screen standby' in top-left) - but this is actually a subjective matter.

share|improve this answer
1  
Turning this stuff off is the first thing I do on every new Mac. Expose etc. F9 is always F9, never next song. –  taw Sep 27 '10 at 14:09

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.