Last active
July 5, 2022 01:31
-
-
Save rodneyrehm/5213304 to your computer and use it in GitHub Desktop.
GreaseMonkey: Prevent Web Applications From Grabbing Certain HotKeys
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
// ==UserScript== | |
// @name anti key-grabber | |
// @description Prevent web apps from capturing and muting vital keyboard shortcuts | |
// @grant none | |
// @version 1.1 | |
// ==/UserScript== | |
(function(){ | |
var isMac = unsafeWindow.navigator.oscpu.toLowerCase().contains("mac os x"); | |
unsafeWindow.document.addEventListener('keydown', function(e) { | |
if (e.keyCode === 116) { | |
// F5 should never be captured | |
e.stopImmediatePropagation(); | |
return; | |
} | |
// Mac uses the Command key, identified as metaKey | |
// Windows and Linux use the Control key, identified as ctrlKey | |
var modifier = isMac ? e.metaKey : e.ctrlKey; | |
// abort if the proper command/control modifier isn't pressed | |
if (!modifier) { | |
return; | |
} | |
switch (e.keyCode) { | |
case 87: // W - close window | |
case 84: // T - open tab | |
case 76: // L - focus awesome bar | |
case 74: // J - open downloads panel | |
e.stopImmediatePropagation(); | |
return; | |
} | |
// s'more mac love | |
if (!isMac) { | |
return; | |
} | |
switch (e.keyCode) { | |
case 188: // , (comma) - open settings [mac] | |
case 82: // R - reload tab | |
e.stopImmediatePropagation(); | |
return; | |
} | |
}, true); | |
})(); |
Hmm.... This not appear to be working in 60.0.2.
I'm experiencing the same issue right here on github where I want to disable github's built in behavior of ctrl-b inserting bold formatting, which prevents me from simply moving point like I'm used to with my emacs keybindings.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
thanks @rodneyrehm. I modified this script slightly by adding case 190: // . period and case 191 // '/' but it doesn't seem to work; Google still hijacks these key presses. I am using Firefox 43.0.1 with Vimperator/Greasemonkey.