Shortcuts using fn don't work properly
#1011
Replies: 5 comments 3 replies
-
|
Thank you, It turns out that HotKey library that I use for global shortcuts doesn't support it soffes/HotKey#31 I see that skhd somehow managed to capture fn key koekeishiya/skhd#10 but, on my machine, it only works for built-in MacBook keyboard and doesn't work for the external Logitech keyboard. And skhd still has some limitations (like fn + arrows is not possible koekeishiya/skhd#10 (comment)) I will drop the But honestly, I have no hope that it will be supported in the future |
Beta Was this translation helpful? Give feedback.
-
|
Workaround: since AeroSpace can be called from CLI, you can use skhd |
Beta Was this translation helpful? Give feedback.
-
|
I’d like to bring up support for fn again since the release of macOS 15. In macOS 15, the usage of fn increased a lot. Indeed for a lot of system shortcuts, only fn from Apple keyboards are recognised. However, Karabiner has supported mapping any key to fn with support for all the new window layout shortcuts. I believe this is done by using the Apple vendor ID with their virtual keyboard device. I’ve mapped a spare key to Apple fn on my keyboard. And I’d really like to be able to use that as my main modifier for all window management needs since I know it won’t conflict with any third party app. |
Beta Was this translation helpful? Give feedback.
-
|
Also... |
Beta Was this translation helpful? Give feedback.
-
|
I use Karabiner Elements to remap fn + everything but f keys to "hyper" (ctrl + alt + cmd). My complete Karabiner rule{
"description": "Fn to Hyper",
"manipulators": [
{
"from": {
"key_code": "grave_accent_and_tilde",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "grave_accent_and_tilde",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "1",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "1",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "2",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "2",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "3",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "3",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "4",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "4",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "5",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "5",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "6",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "6",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "7",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "7",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "8",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "8",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "9",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "9",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "0",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "0",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "hyphen",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "hyphen",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "equal_sign",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "equal_sign",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "q",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "q",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "w",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "w",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "e",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "e",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "r",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "r",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "t",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "t",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "y",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "y",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "u",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "u",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "i",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "i",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "o",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "o",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "p",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "p",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "open_bracket",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "open_bracket",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "close_bracket",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "close_bracket",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "backslash",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "backslash",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "a",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "a",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "s",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "s",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "d",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "d",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "f",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "f",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "g",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "g",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "h",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "h",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "j",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "j",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "k",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "k",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "l",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "l",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "semicolon",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "semicolon",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "quote",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "quote",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "z",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "z",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "x",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "x",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "c",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "c",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "v",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "v",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "b",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "b",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "n",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "n",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "m",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "m",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "comma",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "comma",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "period",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "period",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
},
{
"from": {
"key_code": "slash",
"modifiers": {
"mandatory": ["fn"],
"optional": ["left_shift"]
}
},
"to": [
{
"key_code": "slash",
"modifiers": ["left_option", "left_control", "left_command"]
}
],
"type": "basic"
}
]
}In my aerospace config I then have these bindings: cmd-ctrl-alt-1 = 'workspace 1'
cmd-ctrl-alt-2 = 'workspace 2'
cmd-ctrl-alt-shift-1 = 'move-node-to-workspace 1'
cmd-ctrl-alt-shift-2 = 'move-node-to-workspace 2'
# you get the idea |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Beta Was this translation helpful? Give feedback.
All reactions