works for me
This commit is contained in:
parent
bf2a800c02
commit
b47f203364
0
.gitignore
vendored
Normal file
0
.gitignore
vendored
Normal file
40
README.md
40
README.md
|
@ -1,3 +1,39 @@
|
|||
# firefox-keyboard-shortcuts
|
||||
# Firefox keyboard shortcuts
|
||||
Had enough of accidentally hitting a wrong key? Wondering if you can do
|
||||
something about it? Years of suffering, yet no real progress? Read on.
|
||||
|
||||
It's a surprisingly involved process to edit built-in shortcuts (like Ctrl-R) in Firefix, the browser that Hackmaster recommends.
|
||||
## Quick start
|
||||
|
||||
1. Locate your firefox installation folder. On Windows check `C:\Program Files\Mozilla Firefox`.
|
||||
You need the directory that contains the firefox executable.
|
||||
2. Navigate to `defaults/pref` subfolder, it will probably contain a `channel-prefs.js` file.
|
||||
3. Copy the `defaults/pref/autoconfig.js` file there. You will likely have to do this as superuser.
|
||||
4. Copy the main `autoconfig.js` file (a different one) to the main folder, next to the firefox itself.
|
||||
5. Restart firefox and enjoy.
|
||||
|
||||
## Enjoy what, exactly?
|
||||
The shipped config completely disables a number of built-in shortcuts. This is the functionality we
|
||||
find most useful ourselves, if you need something else you'll have to edit the `autoconfig.js` to
|
||||
suit your own purpose.
|
||||
|
||||
## Anything else?
|
||||
For debugging purposes it sets a superfluous preference that you can find in your `about:config` if
|
||||
you search for `hackmaster`. If there's nothing, the file didn't load.
|
||||
|
||||
## What if I want some of shortcuts back?
|
||||
Edit the file and delete the ids you want to keep.
|
||||
|
||||
## What if I want to disable more shortcuts?
|
||||
Check out provided `keys.html`, locate the ids you want to disable and add them to the array.
|
||||
|
||||
## What if I want to edit a shortcut?
|
||||
You are in for quite a ride. The shipped config removes the attributes from XML nodes, you will have
|
||||
to change their values instead. Theoretically, it should work, but please don't ask us for advice or
|
||||
guidance.
|
||||
|
||||
## Grumpy Mute wishes to add
|
||||
Another sea of bullshit navigated.
|
||||
|
||||
Don't you like getting your feet dirty in the crossover between moldy legacy
|
||||
and undocumented changes? No API reference, shitty DX, unjustifiable complexity,
|
||||
everything, everywhere, all at once. Delicious.
|
||||
|
|
36
autoconfig.js
Normal file
36
autoconfig.js
Normal file
|
@ -0,0 +1,36 @@
|
|||
// based on https://support.mozilla.org/en-US/questions/1378404#answer-1510431
|
||||
try {
|
||||
const hotkeys_to_disable = [
|
||||
'openFileKb',
|
||||
'key_savePage',
|
||||
'printKb',
|
||||
'key_close',
|
||||
'key_closeWindow',
|
||||
'key_toggleMute',
|
||||
'key_reload',
|
||||
'key_reload_skip_cache',
|
||||
'key_quitApplication',
|
||||
];
|
||||
new (class {
|
||||
attributes_to_remove = ['command', 'key', 'modifiers', 'oncommand', 'data-l10n-id'];
|
||||
services = globalThis.Services || ChromeUtils.import('resource://gre/modules/Services.jsm').Services;
|
||||
re_href = /^(chrome:(?!\/\/(global\/content\/commonDialog|browser\/content\/webext-panels)\.x?html)|about:(?!blank))/i; // whatever, I'm not refactoring this
|
||||
constructor() { if (!this.services.appinfo.inSafeMode) this.services.obs.addObserver(this, 'chrome-document-global-created', false); }
|
||||
observe(w) { w.addEventListener('DOMContentLoaded', this, {once: true}); } // Tempting to check location here, but we don't have it yet
|
||||
handleEvent(e) {
|
||||
const D = e.originalTarget, W = D.defaultView, L = W.location;
|
||||
if (!L || !this.re_href.test(L.href)) return;
|
||||
if (!W._gBrowser && !W.Tabbrowser) return; // https://bugzilla.mozilla.org/show_bug.cgi?id=1930654
|
||||
//displayError('debug', '[ ' + L.href + ' | ' + W.document.getElementById('key_reload') + ' ]');
|
||||
hotkeys_to_disable.forEach(n => {
|
||||
const k = W.document.getElementById(n);
|
||||
//displayError('debug', '[ ' + n + ' | ' + k + ' ]');
|
||||
if (k !== null) this.attributes_to_remove.forEach(a => k.removeAttribute(a));
|
||||
});
|
||||
}
|
||||
})()
|
||||
} catch (e) {
|
||||
displayError('hackmaster', e);
|
||||
}
|
||||
|
||||
lockPref("hackmaster.autoconfig.loaded", "a miracle, really");
|
7
defaults/pref/autoconfig.js
Normal file
7
defaults/pref/autoconfig.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
// based on https://support.mozilla.org/en-US/questions/1378404#answer-1510431
|
||||
// apparently, this is a strange subset of JS
|
||||
// semicolons are required
|
||||
// basically, do not edit except for the filename below
|
||||
pref('general.config.filename', 'autoconfig.js');
|
||||
pref('general.config.obscure_value', 0);
|
||||
pref('general.config.sandbox_enabled', false);
|
80
keys.html
Normal file
80
keys.html
Normal file
|
@ -0,0 +1,80 @@
|
|||
<!-- Dumped from a vanilla Firefox ESR, may change with time -->
|
||||
|
||||
<key id="key_newNavigator" data-l10n-id="window-new-shortcut" command="cmd_newNavigator" modifiers="accel" reserved="true" key="N" />
|
||||
<key id="key_newNavigatorTab" data-l10n-id="tab-new-shortcut" modifiers="accel" command="cmd_newNavigatorTabNoEvent" reserved="true" key="T" />
|
||||
<key id="focusURLBar" data-l10n-id="location-open-shortcut" command="Browser:OpenLocation" modifiers="accel" key="L" />
|
||||
<key id="focusURLBar2" data-l10n-id="location-open-shortcut-alt" command="Browser:OpenLocation" modifiers="alt" key="D" />
|
||||
<key id="key_search" data-l10n-id="search-focus-shortcut" command="Tools:Search" modifiers="accel" key="K" />
|
||||
<key id="key_search2" data-l10n-id="search-focus-shortcut-alt" modifiers="accel" command="Tools:Search" key="E" />
|
||||
<key id="key_openDownloads" data-l10n-id="downloads-shortcut" modifiers="accel" command="Tools:Downloads" key="J" />
|
||||
<key id="key_openAddons" data-l10n-id="addons-shortcut" command="Tools:Addons" modifiers="accel,shift" key="A" />
|
||||
<key id="openFileKb" data-l10n-id="file-open-shortcut" command="Browser:OpenFile" modifiers="accel" key="O" />
|
||||
<key id="key_savePage" data-l10n-id="save-page-shortcut" command="Browser:SavePage" modifiers="accel" key="S" />
|
||||
<key id="printKb" data-l10n-id="print-shortcut" command="cmd_print" modifiers="accel" key="P" />
|
||||
<key id="key_close" data-l10n-id="close-shortcut" command="cmd_close" modifiers="accel" reserved="true" key="W" />
|
||||
<key id="key_closeWindow" data-l10n-id="close-shortcut" command="cmd_closeWindow" modifiers="accel,shift" reserved="true" key="W" />
|
||||
<key id="key_toggleMute" data-l10n-id="mute-toggle-shortcut" command="cmd_toggleMute" modifiers="control" key="M" />
|
||||
<key id="key_undo" data-l10n-id="text-action-undo-shortcut" modifiers="accel" internal="true" key="Z" />
|
||||
<key id="key_redo" data-l10n-id="text-action-redo-shortcut" modifiers="accel" internal="true" key="Y" />
|
||||
<key id="key_cut" data-l10n-id="text-action-cut-shortcut" modifiers="accel" internal="true" key="X" />
|
||||
<key id="key_copy" data-l10n-id="text-action-copy-shortcut" modifiers="accel" internal="true" key="C" />
|
||||
<key id="key_paste" data-l10n-id="text-action-paste-shortcut" modifiers="accel" internal="true" key="V" />
|
||||
<key id="key_delete" keycode="VK_DELETE" command="cmd_delete" reserved="false" />
|
||||
<key id="key_selectAll" data-l10n-id="text-action-select-all-shortcut" modifiers="accel" internal="true" key="A" />
|
||||
<key keycode="VK_BACK" command="cmd_handleBackspace" reserved="false" />
|
||||
<key keycode="VK_BACK" command="cmd_handleShiftBackspace" modifiers="shift" reserved="false" />
|
||||
<key id="goBackKb" keycode="VK_LEFT" command="Browser:Back" modifiers="alt" />
|
||||
<key id="goForwardKb" keycode="VK_RIGHT" command="Browser:Forward" modifiers="alt" />
|
||||
<key id="goHome" keycode="VK_HOME" oncommand="BrowserCommands.home();" modifiers="alt" />
|
||||
<key keycode="VK_F5" command="Browser:Reload" />
|
||||
<key id="showAllHistoryKb" data-l10n-id="history-show-all-shortcut" command="Browser:ShowAllHistory" modifiers="accel,shift" key="H" />
|
||||
<key keycode="VK_F5" command="Browser:ReloadSkipCache" modifiers="accel" />
|
||||
<key id="key_enterFullScreen" keycode="VK_F11" command="View:FullScreen" />
|
||||
<key id="key_exitFullScreen" keycode="VK_F11" command="View:FullScreen" reserved="true" disabled="true" />
|
||||
<key id="key_toggleReaderMode" command="View:ReaderView" data-l10n-id="reader-mode-toggle-shortcut-windows" disabled="true" keycode="VK_F9" />
|
||||
<key id="key_togglePictureInPicture" data-l10n-id="picture-in-picture-toggle-shortcut" command="View:PictureInPicture" modifiers="accel,shift" key="]" />
|
||||
<key data-l10n-id="picture-in-picture-toggle-shortcut-alt" command="View:PictureInPicture" modifiers="accel,shift" key="}" />
|
||||
<key data-l10n-id="nav-reload-shortcut" command="Browser:Reload" modifiers="accel" id="key_reload" key="R" />
|
||||
<key data-l10n-id="nav-reload-shortcut" command="Browser:ReloadSkipCache" modifiers="accel,shift" id="key_reload_skip_cache" key="R" />
|
||||
<key id="key_aboutProcesses" command="View:AboutProcesses" keycode="VK_ESCAPE" modifiers="shift" />
|
||||
<key id="key_viewSource" data-l10n-id="page-source-shortcut" command="View:PageSource" modifiers="accel" key="U" />
|
||||
<key id="key_viewInfo" data-l10n-id="page-info-shortcut" command="View:PageInfo" modifiers="accel" key="I" />
|
||||
<key id="key_find" data-l10n-id="find-shortcut" command="cmd_find" modifiers="accel" key="F" />
|
||||
<key id="key_findAgain" data-l10n-id="search-find-again-shortcut" command="cmd_findAgain" modifiers="accel" key="G" />
|
||||
<key id="key_findPrevious" data-l10n-id="search-find-again-shortcut" command="cmd_findPrevious" modifiers="accel,shift" key="G" />
|
||||
<key data-l10n-id="search-find-again-shortcut-alt" command="cmd_findAgain" keycode="VK_F3" />
|
||||
<key data-l10n-id="search-find-again-shortcut-alt" command="cmd_findPrevious" modifiers="shift" keycode="VK_F3" />
|
||||
<key id="addBookmarkAsKb" data-l10n-id="bookmark-this-page-shortcut" command="Browser:AddBookmarkAs" modifiers="accel" key="D" />
|
||||
<key id="bookmarkAllTabsKb" data-l10n-id="bookmark-this-page-shortcut" oncommand="PlacesCommandHook.bookmarkTabs();" modifiers="accel,shift" key="D" />
|
||||
<key id="manBookmarkKb" data-l10n-id="bookmark-show-library-shortcut" command="Browser:ShowAllBookmarks" modifiers="accel,shift" key="O" />
|
||||
<key id="viewBookmarksSidebarKb" data-l10n-id="bookmark-show-sidebar-shortcut" modifiers="accel" oncommand="SidebarController.toggle('viewBookmarksSidebar');" key="B" />
|
||||
<key id="viewBookmarksToolbarKb" data-l10n-id="bookmark-show-toolbar-shortcut" oncommand="BookmarkingUI.toggleBookmarksToolbar('shortcut');" modifiers="accel,shift" key="B" />
|
||||
<key id="key_stop" keycode="VK_ESCAPE" command="Browser:Stop" />
|
||||
<key id="key_gotoHistory" data-l10n-id="history-sidebar-shortcut" modifiers="accel" oncommand="SidebarController.toggle('viewHistorySidebar');" key="H" />
|
||||
<key id="key_fullZoomReduce" data-l10n-id="full-zoom-reduce-shortcut" command="cmd_fullZoomReduce" modifiers="accel" key="-" />
|
||||
<key data-l10n-id="full-zoom-reduce-shortcut-alt-a" command="cmd_fullZoomReduce" modifiers="accel" key="_" />
|
||||
<key data-l10n-id="full-zoom-reduce-shortcut-alt-b" command="cmd_fullZoomReduce" modifiers="accel" key="" />
|
||||
<key id="key_fullZoomEnlarge" data-l10n-id="full-zoom-enlarge-shortcut" command="cmd_fullZoomEnlarge" modifiers="accel" key="+" />
|
||||
<key data-l10n-id="full-zoom-enlarge-shortcut-alt" command="cmd_fullZoomEnlarge" modifiers="accel" key="=" />
|
||||
<key data-l10n-id="full-zoom-enlarge-shortcut-alt2" command="cmd_fullZoomEnlarge" modifiers="accel" key="" />
|
||||
<key id="key_fullZoomReset" data-l10n-id="full-zoom-reset-shortcut" command="cmd_fullZoomReset" modifiers="accel" key="0" />
|
||||
<key data-l10n-id="full-zoom-reset-shortcut-alt" command="cmd_fullZoomReset" modifiers="accel" key="" />
|
||||
<key id="key_showAllTabs" keycode="VK_TAB" modifiers="control,shift" />
|
||||
<key id="key_switchTextDirection" data-l10n-id="bidi-switch-direction-shortcut" command="cmd_switchTextDirection" modifiers="accel,shift" key="X" />
|
||||
<key id="key_privatebrowsing" command="Tools:PrivateBrowsing" data-l10n-id="private-browsing-shortcut" modifiers="accel,shift" reserved="true" key="P" />
|
||||
<key id="key_screenshot" data-l10n-id="screenshot-shortcut" command="Browser:Screenshot" modifiers="accel,shift" key="S" />
|
||||
<key id="key_sanitize" command="Tools:Sanitize" keycode="VK_DELETE" modifiers="accel,shift" />
|
||||
<key id="key_quitApplication" data-l10n-id="quit-app-shortcut" modifiers="accel,shift" command="cmd_quitApplication" reserved="true" key="Q" />
|
||||
<key id="key_restoreLastClosedTabOrWindowOrSession" command="History:RestoreLastClosedTabOrWindowOrSession" data-l10n-id="tab-new-shortcut" modifiers="accel,shift" key="T" />
|
||||
<key id="key_undoCloseWindow" command="History:UndoCloseWindow" data-l10n-id="window-new-shortcut" modifiers="accel,shift" key="N" />
|
||||
<key id="key_selectTab1" oncommand="gBrowser.selectTabAtIndex(0, event);" key="1" modifiers="accel" />
|
||||
<key id="key_selectTab2" oncommand="gBrowser.selectTabAtIndex(1, event);" key="2" modifiers="accel" />
|
||||
<key id="key_selectTab3" oncommand="gBrowser.selectTabAtIndex(2, event);" key="3" modifiers="accel" />
|
||||
<key id="key_selectTab4" oncommand="gBrowser.selectTabAtIndex(3, event);" key="4" modifiers="accel" />
|
||||
<key id="key_selectTab5" oncommand="gBrowser.selectTabAtIndex(4, event);" key="5" modifiers="accel" />
|
||||
<key id="key_selectTab6" oncommand="gBrowser.selectTabAtIndex(5, event);" key="6" modifiers="accel" />
|
||||
<key id="key_selectTab7" oncommand="gBrowser.selectTabAtIndex(6, event);" key="7" modifiers="accel" />
|
||||
<key id="key_selectTab8" oncommand="gBrowser.selectTabAtIndex(7, event);" key="8" modifiers="accel" />
|
||||
<key id="key_selectLastTab" oncommand="gBrowser.selectTabAtIndex(-1, event);" key="9" modifiers="accel" />
|
||||
<key id="key_wrCaptureCmd" key="#" modifiers="control" command="wrCaptureCmd" />
|
||||
<key id="key_wrToggleCaptureSequenceCmd" key="^" modifiers="control" command="wrToggleCaptureSequenceCmd" />
|
Loading…
Reference in New Issue
Block a user