Как отправить F9-F12 в программу curses, запущенную внутри Terminal.app?

10

F9-F12 используются Mac OS X, и я не хочу от них избавляться, я просто хочу периодически отправлять F9-F12 программам внутри терминала (в основном F9 / F10).

Некоторые программы, например, mcподдерживают последовательность Escape 9 как синоним F9 и т. Д., Но она не универсальна.

Есть ли способ сделать это?

выделывать кожу без дубления
источник

Ответы:

9

fn-Cmd-F9 работает как F9 в Terminal.app на моем MacBook Pro под управлением Mountain Lion 10.8.

LarsR
источник
На моем MacBook Air под управлением Mavericks это fn-Option-Fkey, а не fn-Command-Fkey.
Марк Рид
На MacBook Pro работает Yosemite, работает fn-Cmd-F9; fn-Opt-F9 просто вставляет тильду. (Я использую его в emacs.)
Глава
5

Вы можете запустить AppleScript (например, поместив его в службу в Automator с помощью действия « Запустить AppleScript без ввода в Terminal» ), который выполняет следующее:

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 и отмените настройку. Имена параметров следующие для других настроек Expose:

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, для нажатия escape-последовательности, которую вы получаете cat -vпри нажатии одной из F-клавиш во время деактивации ярлыков.

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

Это от F9 до F12, по порядку.

У Батлера это выглядит так для F9:

введите описание изображения здесь

Я нажал Ctrl-[, [, 2, 0, ~для этой последовательности. На моей раскладке клавиатуры ~есть Shift-backtick, поэтому виден модификатор Shift . Работает в любом случае.

Настройте ярлык, и вы можете нажать его, чтобы получить escape-последовательность:

введите описание изображения здесь

Работает в mc, и я не помню еще одну программу CLI с F-клавишами в данный момент. Но это не mcконкретная escape-последовательность, поэтому она, вероятно, будет работать в других.


Кроме того, многие приложения командной строки понимают Esc, 1(последовательность), чтобы означать F1, через Esc, 0значение F10.

Даниэль Бек
источник
Доброе утро, миссис Кувалда! Позвольте мне с удовольствием познакомить вас с мистером Нутом ...
Робино
2

Вы можете отключить сочетание клавиш для F12:

настройки клавиатуры> сочетания клавиш

user319498
источник
Для меня этого было недостаточно, но это правильно.
Робино
0

Я добавлю, что если вы находитесь на ноутбуке, вы на самом деле не используете F9-F12, вы нажимаете «следующая песня», «отключение звука», «уменьшение громкости» (пример из недавнего macbookpro). Чтобы фактически нажать F9-F12, удерживайте клавишу «Fn», используя ту же клавишу.

На рабочем столе, если у вас есть такие вещи, как Exposé, Spaces и т. Д., Сопоставленные с фактическими клавишами клавиатуры F9-F12, я считаю полезным связать эти функции с дополнительными кнопками мыши (например, я использую «пару боковых кнопок» Mighty Mouse для активации Exposé) или краев экрана (например, у меня «экран в режиме ожидания» в верхнем левом углу) - но это на самом деле субъективный вопрос.

Luke404
источник
1
Отключение этой вещи - первое, что я делаю на каждом новом Mac. Expose и т. Д. F9 всегда F9, а не следующая песня.
TAW
0

Это двухэтапный процесс, который я использовал, чтобы получить CoRD (Remote Desktop для Mac):

  1. Системные настройки> Клавиатура> Клавиатура> Отметьте «Использовать все клавиши F1, F2 и т. Д. Как стандартные функциональные клавиши»
  2. Системные настройки> Клавиатура> Сочетания клавиш> Снимите флажок «Показать рабочий стол», «Показать панель управления»

Первый шаг - это то, о чем @taw говорит в одном из комментариев; он получает функциональные клавиши f1-f10. Второй шаг останавливает нажатие клавиш f11 и f12 от перехвата OSX.

Робиньо
источник