Skip to content

Instantly share code, notes, and snippets.

@rodneyrehm
Last active July 5, 2022 01:31
Show Gist options
  • Star 25 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save rodneyrehm/5213304 to your computer and use it in GitHub Desktop.
Save rodneyrehm/5213304 to your computer and use it in GitHub Desktop.
GreaseMonkey: Prevent Web Applications From Grabbing Certain HotKeys
// ==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);
})();
@protrolium
Copy link

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.

@VVelox
Copy link

VVelox commented Jul 30, 2018

Hmm.... This not appear to be working in 60.0.2.

@lindsayad
Copy link

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