Skip to content

My Shortcuts

Anze edited this page Apr 3, 2024 · 4 revisions

KeyClu Extensions collection

KeyClu have a collection of hotkeys for apps that aren't reflected in the menu as shortcuts.

Export File Format

KeyClu exporting and importing Custom Shortcuts .keyclu files. The file is essentially a plain text file, it contains data structured in JSON format.

Each block begins with the App Bundle ID (e.g., com.googlecode.iterm2). A "Group Title" must be included, which can have any string value, is it used to categorize menu items. Within each group, you'll find definitions for Shortcuts.

Each Shortcut is represented by an array containing a title, modifiers (if any), and a key code. If a Shortcut does not have registered keys, the key code is set to -1, and the modifiers field is left empty.

Sample:

{
    "com.googlecode.iterm2": {
        "Group Title":[
            ["Copy string", "command+control", 8],
            ["Paste string", "command+option", 35],
            ["Show/hide window", "option+shift", 13],
            ["Undecided", "", -1]
        ]
    },
    "com.apple.TextEdit":{
        "Group Title":[
            ["Do the thing with text", "fn", 33]
        ]
    },
    "com.google.Chrome": {
        "Tab": [
            ["Duplicate current tab", "shift+command", 2]
        ],
        "Confluence": [
            ["Edit page", "", 14],
            ["Leave comment", "", 46],
            ["Link to page", "", 40],
            ["Watch", "", 13]
        ]
    }
}

Modifiers: shift, control, option, command, fn.

Key Code: is represents the virtual key codes used in keyboard events (CGKeyCode).

Easiest way to identify key code is to use Key Codes.app

Registering

KeyClu support displaying manually registered Custom Shortcuts, globally and per application.

Shortcuts can be registered in two ways:

  • the usual method (press the shortcut, such as ⌘ ⌃ C)
  • or separately (press , then , then C, with the non-modifier key being the last to press)

Custom shortcut keys are displayed according to the current keyboard layout, but can also be adjusted to show them in the default English keyboard layout.

NOTE 1: registering workflows migh be not flawless.

NOTE 2: be aware that fn unlike other modifiers might affect key code value.

Example 1

Registering fn <left arrow> in three ways:

  1. fn <left arrow> -> shows fn
  2. fn, <left arrow> -> shows fn
  3. fn, fn <left arrow> -> shows

All cases are valid shortcuts, while only 1 and 3 is correct and would work as expected.

Example 2

Registering fn F in three ways:

  1. fn F -> shows fn F
  2. fn, F -> shows fn F
  3. fn, fn F -> shows F

All cases are valid shortcuts, while only 1 and 2 is correct and would work as expected.