Используйте Карабинер
Это приложение может предоставить точную функциональность, запрошенную OP. Ответ user495470 о KeyRemap4MacBook был полезен, чтобы указать мне правильное направление. Однако он устарел и больше не работает так, как написано, потому что KeyRemap4MacBook был обновлен. Теперь он называется Карабинер. Он выглядит в хорошем состоянии и является бесплатным программным обеспечением с открытым исходным кодом (не в случае BetterTouchTool, упомянутого в другом ответе, требующем оплаты через 45 дней).
Настройка его
Сначала загрузите и установите приложение Karabiner. После установки, чтобы переназначить функциональные клавиши как стандартные функциональные клавиши, вам нужно будет добавить «Complex-Modification» в настройках. Существует несколько таких сложных модификаций, которые были предварительно созданы и загружены с веб-сайта Karabiner, но вы также можете написать свои собственные в json.
Используйте следующий код и поместите его в файл (с именем что-то вроде «functionkeys.json») в папке ~/.config/karabiner/assets/complex_modifications
. Как только он появится, перейдите в настройки Karabiner и нажмите « Complex-Modifications
, затем Add rule
. Вы должны увидеть текст Function Keys in Terminal Apps
и там нажать Enable All
.
Как изменить, какое приложение переднего плана вызывает эффект
Этот код специально обеспечивает стандартную функциональность функциональных клавиш при использовании любого из нескольких приложений терминала (и ничего при использовании любого другого приложения). Этот код также позволяет использовать медиа-ключи в терминальных приложениях с помощью fn + function key
.
В то время как ОП спрашивал о конкретном приложении, в частности, упоминался VirtualBox. Приведенный ниже код можно изменить для создания функциональных клавиш в любом приложении (ах), которое требуется, заменив содержимое каждого экземпляра «Идентификатора пакета "Bundle Identifiers: [ ... ]"
любым приложением (ями). (VirtualBox может быть "^org\\.virtualbox\\.VirtualBoxVM"
хотя я не пробовал.) Используйте включенный Karabiner EventViewer, чтобы найти идентификатор приложения для любого приложения, а затем вставьте значения.
{
"title": "Function Keys in Terminal Apps",
"rules": [
{
"description": "Use regular function keys in terminal",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "f1"
},
"to": [
{
"key_code": "f1",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f2"
},
"to": [
{
"key_code": "f2",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f3"
},
"to": [
{
"key_code": "f3",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f4"
},
"to": [
{
"key_code": "f4",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f5"
},
"to": [
{
"key_code": "f5",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f6"
},
"to": [
{
"key_code": "f6",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f7"
},
"to": [
{
"key_code": "f7",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f8"
},
"to": [
{
"key_code": "f8",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f9"
},
"to": [
{
"key_code": "f9",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f10"
},
"to": [
{
"key_code": "f10",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f11"
},
"to": [
{
"key_code": "f11",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f12"
},
"to": [
{
"key_code": "f12",
"modifiers": [
"fn"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f1",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f1"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f2",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f2"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f3",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f3"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f4",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f4"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f5",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f5"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f6",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f6"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f7",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f7"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f8",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f8"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f9",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f9"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f10",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f10"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f11",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f11"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f12",
"modifiers": {
"mandatory": [
"fn"
]
}
},
"to": [
{
"key_code": "f12"
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^com\\.apple\\.Terminal$",
"^com\\.googlecode\\.iterm2$",
"^co\\.zeit\\.hyperterm$",
"^co\\.zeit\\.hyper$",
"^io\\.alacritty$",
"^net\\.kovidgoyal\\.kitty$"
]
}
]
}
]
}
]
}