Last active
July 4, 2024 16:50
-
-
Save hym3242/8e8bc10a2fed8e55973c500f1798c234 to your computer and use it in GitHub Desktop.
Dump of /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict on macOS Ventura 13.4, plus some notes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ # plz forgive this dumb method of visualization. | |
$ cp /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict . | |
$ plutil -convert xml1 StandardKeyBinding.dict | |
$ plutil -p StandardKeyBinding.dict | unicode-vis | cat -v | tr '\t' '+' | |
{ | |
"^C" => "insertNewline:" | |
"^H" => "deleteBackward:" | |
"^Y" => "insertBacktab:" //shift+tab | |
"^[" => "cancelOperation:" | |
"^?" => "deleteBackward:" | |
"+" => "insertTab:" | |
" | |
" => "insertNewline:" | |
"^M" => "insertNewline:" | |
"@" => "noop:" | |
"@^?" => "deleteToBeginningOfLine:" | |
"@ " => "cycleToNextInputScript:" | |
"@." => "cancelOperation:" | |
"@^ " => "togglePlatformInputSystem:" | |
"@^U+F701" => "makeBaseWritingDirectionNatural:" | |
"@^U+F702" => "makeBaseWritingDirectionRightToLeft:" | |
"@^U+F703" => "makeBaseWritingDirectionLeftToRight:" | |
"@~ " => "cycleToNextInputKeyboardLayout:" | |
"@~^U+F701" => "makeTextWritingDirectionNatural:" | |
"@~^U+F702" => "makeTextWritingDirectionRightToLeft:" | |
"@~^U+F703" => "makeTextWritingDirectionLeftToRight:" | |
"@$U+F700" => "moveToBeginningOfDocumentAndModifySelection:" | |
"@$U+F701" => "moveToEndOfDocumentAndModifySelection:" | |
"@$U+F702" => "moveToLeftEndOfLineAndModifySelection:" | |
"@$U+F703" => "moveToRightEndOfLineAndModifySelection:" | |
"@U+F700" => "moveToBeginningOfDocument:" | |
"@U+F701" => "moveToEndOfDocument:" | |
"@U+F702" => "moveToLeftEndOfLine:" | |
"@U+F703" => "moveToRightEndOfLine:" | |
"^" => "noop:" | |
"^^C" => "insertLineBreak:" | |
"^^Y" => "selectPreviousKeyView:" //ctrl+shift+tab (remember that tab is ^I(0x09) and shift got its name because it shifts one bit?) (i forgot the source sorry! maybe checkout "things every hacker once knew") | |
"^^?" => "deleteBackwardByDecomposingPreviousCharacter:" | |
"^+" => "selectNextKeyView:" | |
"^ | |
" => "insertLineBreak:" | |
"^^M" => "insertLineBreak:" | |
"^'" => "insertSingleQuoteIgnoringSubstitution:" | |
"^"" => "insertDoubleQuoteIgnoringSubstitution:" | |
"^/" => "insertRightToLeftSlash:" | |
"^$U+F702" => "moveToLeftEndOfLineAndModifySelection:" | |
"^$U+F703" => "moveToRightEndOfLineAndModifySelection:" | |
"^a" => "moveToBeginningOfParagraph:" | |
"^A" => "moveToBeginningOfParagraphAndModifySelection:" | |
"^b" => "moveBackward:" | |
"^B" => "moveBackwardAndModifySelection:" | |
"^d" => "deleteForward:" | |
"^e" => "moveToEndOfParagraph:" | |
"^E" => "moveToEndOfParagraphAndModifySelection:" | |
"^f" => "moveForward:" | |
"^F" => "moveForwardAndModifySelection:" | |
"^h" => "deleteBackward:" | |
"^k" => "deleteToEndOfParagraph:" | |
"^l" => "centerSelectionInVisibleArea:" | |
"^n" => "moveDown:" | |
"^N" => "moveDownAndModifySelection:" | |
"^o" => [ | |
0 => "insertNewlineIgnoringFieldEditor:" | |
1 => "moveBackward:" | |
] | |
"^p" => "moveUp:" | |
"^P" => "moveUpAndModifySelection:" | |
"^t" => "transpose:" | |
"^v" => "pageDown:" | |
"^V" => "pageDownAndModifySelection:" | |
"^y" => "yank:" | |
"^U+F700" => "scrollPageUp:" | |
"^U+F701" => "scrollPageDown:" | |
"^U+F702" => "moveToLeftEndOfLine:" | |
"^U+F703" => "moveToRightEndOfLine:" | |
"~^C" => "insertNewlineIgnoringFieldEditor:" | |
"~^H" => "deleteWordBackward:" | |
"~^[" => "complete:" | |
"~^?" => "deleteWordBackward:" | |
"~+" => "insertTabIgnoringFieldEditor:" | |
"~ | |
" => "insertNewlineIgnoringFieldEditor:" | |
"~^M" => "insertNewlineIgnoringFieldEditor:" | |
"~^^?" => "deleteWordBackward:" | |
"~^b" => "moveWordBackward:" | |
"~^B" => "moveWordBackwardAndModifySelection:" | |
"~^f" => "moveWordForward:" | |
"~^F" => "moveWordForwardAndModifySelection:" | |
"~$U+F700" => "moveParagraphBackwardAndModifySelection:" | |
"~$U+F701" => "moveParagraphForwardAndModifySelection:" | |
"~$U+F702" => "moveWordLeftAndModifySelection:" | |
"~$U+F703" => "moveWordRightAndModifySelection:" | |
"~U+F700" => [ | |
0 => "moveBackward:" | |
1 => "moveToBeginningOfParagraph:" | |
] | |
"~U+F701" => [ | |
0 => "moveForward:" | |
1 => "moveToEndOfParagraph:" | |
] | |
"~U+F702" => "moveWordLeft:" | |
"~U+F703" => "moveWordRight:" | |
"~U+F704" => "noop:" | |
"~U+F705" => "noop:" | |
"~U+F706" => "noop:" | |
"~U+F707" => "noop:" | |
"~U+F708" => "noop:" | |
"~U+F709" => "noop:" | |
"~U+F70A" => "noop:" | |
"~U+F70B" => "noop:" | |
"~U+F70C" => "noop:" | |
"~U+F70D" => "noop:" | |
"~U+F70E" => "noop:" | |
"~U+F70F" => "noop:" | |
"~U+F710" => "noop:" | |
"~U+F711" => "noop:" | |
"~U+F712" => "noop:" | |
"~U+F713" => "noop:" | |
"~U+F714" => "noop:" | |
"~U+F715" => "noop:" | |
"~U+F716" => "noop:" | |
"~U+F717" => "noop:" | |
"~U+F718" => "noop:" | |
"~U+F719" => "noop:" | |
"~U+F71A" => "noop:" | |
"~U+F71B" => "noop:" | |
"~U+F71C" => "noop:" | |
"~U+F71D" => "noop:" | |
"~U+F71E" => "noop:" | |
"~U+F71F" => "noop:" | |
"~U+F720" => "noop:" | |
"~U+F721" => "noop:" | |
"~U+F722" => "noop:" | |
"~U+F723" => "noop:" | |
"~U+F724" => "noop:" | |
"~U+F725" => "noop:" | |
"~U+F726" => "noop:" | |
"~U+F727" => "noop:" | |
"~U+F728" => "deleteWordForward:" | |
"~U+F729" => "noop:" | |
"~U+F72A" => "noop:" | |
"~U+F72B" => "noop:" | |
"~U+F72C" => "pageUp:" | |
"~U+F72D" => "pageDown:" | |
"~U+F72E" => "noop:" | |
"~U+F72F" => "noop:" | |
"~U+F730" => "noop:" | |
"~U+F731" => "noop:" | |
"~U+F732" => "noop:" | |
"~U+F733" => "noop:" | |
"~U+F734" => "noop:" | |
"~U+F735" => "noop:" | |
"~U+F736" => "noop:" | |
"~U+F737" => "noop:" | |
"~U+F738" => "noop:" | |
"~U+F739" => "noop:" | |
"~U+F73A" => "noop:" | |
"~U+F73B" => "noop:" | |
"~U+F73C" => "noop:" | |
"~U+F73D" => "noop:" | |
"~U+F73E" => "noop:" | |
"~U+F73F" => "noop:" | |
"~U+F740" => "noop:" | |
"~U+F741" => "noop:" | |
"~U+F742" => "noop:" | |
"~U+F743" => "noop:" | |
"~U+F744" => "noop:" | |
"~U+F745" => "noop:" | |
"~U+F746" => "noop:" | |
"~U+F747" => "noop:" | |
"$U+F700" => "moveUpAndModifySelection:" | |
"$U+F701" => "moveDownAndModifySelection:" | |
"$U+F702" => "moveLeftAndModifySelection:" | |
"$U+F703" => "moveRightAndModifySelection:" | |
"$U+F729" => "moveToBeginningOfDocumentAndModifySelection:" | |
"$U+F72B" => "moveToEndOfDocumentAndModifySelection:" | |
"$U+F72C" => "pageUpAndModifySelection:" | |
"$U+F72D" => "pageDownAndModifySelection:" | |
"U+F700" => "moveUp:" | |
"U+F701" => "moveDown:" | |
"U+F702" => "moveLeft:" | |
"U+F703" => "moveRight:" | |
"U+F704" => "noop:" | |
"U+F705" => "noop:" | |
"U+F706" => "noop:" | |
"U+F707" => "noop:" | |
"U+F708" => "complete:" | |
"U+F709" => "noop:" | |
"U+F70A" => "noop:" | |
"U+F70B" => "noop:" | |
"U+F70C" => "noop:" | |
"U+F70D" => "noop:" | |
"U+F70E" => "noop:" | |
"U+F70F" => "noop:" | |
"U+F710" => "noop:" | |
"U+F711" => "noop:" | |
"U+F712" => "noop:" | |
"U+F713" => "noop:" | |
"U+F714" => "noop:" | |
"U+F715" => "noop:" | |
"U+F716" => "noop:" | |
"U+F717" => "noop:" | |
"U+F718" => "noop:" | |
"U+F719" => "noop:" | |
"U+F71A" => "noop:" | |
"U+F71B" => "noop:" | |
"U+F71C" => "noop:" | |
"U+F71D" => "noop:" | |
"U+F71E" => "noop:" | |
"U+F71F" => "noop:" | |
"U+F720" => "noop:" | |
"U+F721" => "noop:" | |
"U+F722" => "noop:" | |
"U+F723" => "noop:" | |
"U+F724" => "noop:" | |
"U+F725" => "noop:" | |
"U+F726" => "noop:" | |
"U+F727" => "noop:" | |
"U+F728" => "deleteForward:" | |
"U+F729" => "scrollToBeginningOfDocument:" | |
"U+F72A" => "noop:" | |
"U+F72B" => "scrollToEndOfDocument:" | |
"U+F72C" => "scrollPageUp:" | |
"U+F72D" => "scrollPageDown:" | |
"U+F72E" => "noop:" | |
"U+F72F" => "noop:" | |
"U+F730" => "noop:" | |
"U+F731" => "noop:" | |
"U+F732" => "noop:" | |
"U+F733" => "noop:" | |
"U+F734" => "noop:" | |
"U+F735" => "noop:" | |
"U+F736" => "noop:" | |
"U+F737" => "noop:" | |
"U+F738" => "noop:" | |
"U+F739" => "delete:" | |
"U+F73A" => "noop:" | |
"U+F73B" => "noop:" | |
"U+F73C" => "noop:" | |
"U+F73D" => "noop:" | |
"U+F73E" => "noop:" | |
"U+F73F" => "noop:" | |
"U+F740" => "noop:" | |
"U+F741" => "noop:" | |
"U+F742" => "noop:" | |
"U+F743" => "noop:" | |
"U+F744" => "noop:" | |
"U+F745" => "noop:" | |
"U+F746" => "noop:" | |
"U+F747" => "noop:" | |
} |
Notes.app cont'd again:
You may also want to make use of Notes.app's URL scheme (CFBundleURLSchemes
in app Info.plist). e.g. notes://showNote?identifier=9AFFFFFF-FAFF-CAFE-BABE-8FFFFF2FEEF
to create clickable links to other notes!
see also: https://www.reddit.com/r/shortcuts/comments/aot272/get_url_of_note_copy_note_url_to_clipboard
see also: https://discourse.hookproductivity.com/t/using-the-built-in-notes-url-scheme/6071
Notes cont'd again again:
See also defaults write com.apple.Notes alexandria -bool YES
. It will enable the .notesarchive
export feature. This feature is already visible on iPad version of Notes (at least on Apple Store demo machines)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Notes.app cont'd:
Don't forget the
subscript:
andsuperscript:
!!! OH MY GOD IS MACOS FUN AS FUCK TO HACK…and the
"moveSelectedListItemUp:"
and"moveSelectedListItemDown:"
…and even some crazy shit like show/hide the sidebar
toggleFolderListHidden:
, andexportNoteAsPDF:
(Man, isn't this the pinnacle of the idea of object-oriented?)