shortcut chord keys
by Andy Bulka
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
JavaScript
// Chord key detection
var chordKeyPressed = false;
var chordTimeout = null;
$(document).keydown(function(e) {
// Cmd/Ctrl + K = Chord prefix
if ((e.ctrlKey || e.metaKey) && e.which == 75) {
e.preventDefault();
chordKeyPressed = true;
// Visual feedback (optional)
console.log("Chord key pressed - waiting for command...");
// Reset after 2 seconds if no second key
clearTimeout(chordTimeout);
chordTimeout = setTimeout(function() {
chordKeyPressed = false;
}, 2000);
return;
}
// If chord key was pressed, check for second key
if (chordKeyPressed) {
chordKeyPressed = false;
clearTimeout(chordTimeout);
e.preventDefault();
switch(e.which) {
case 83: // S - Save
console.log("Cmd+K, S - Save");
$('#btn-top-save, #btn-save').first().click();
break;
case 78: // N - Name/Description/Tags
console.log("Cmd+K, N - Metadata panel");
$('#btn-scroll-to-metadata').click();
break;
case 65: // A - AI Config
console.log("Cmd+K, A - AI Config");
$('#btn-scroll-to-ai-config').click();
break;
case 70: // F - Files/Code/Upload
console.log("Cmd+K, F - Files panel");
$('#btn-scroll-to-files, #btn-scroll-to-code, #btn-scroll-to-upload').first().click();
break;
case 69: // E - Explanation
console.log("Cmd+K, E - Explanation panel");
$('#btn-toggle-markdown').click();
break;
case 71: // G - Go to top
console.log("Cmd+K, G - Scroll to top");
$('html, body').animate({ scrollTop: 0 }, 300);
break;
}
return;
...