You must log in or # to comment.
Now if they would let you customize keyboard shortcuts, it would have been my default browser years ago.
You can customize browser-internal shortcuts with a script in your profile dir.
For example this is my script‹user profile›/chrome/removeshortcuts.uc.js
var ids = ` viewBookmarksSidebarKb key_quitApplication openFileKb key_savePage printKb goBackKb2 goForwardKb2 addBookmarkAsKb bookmarkAllTabsKb manBookmarkKb viewBookmarksToolbarKb `.replace(/\s+/g,' ').trim().split(' '); ids.forEach( id=>{ var key = document.getElementById(id); if (key) key.remove(); }); var originalKey = document.getElementById("key_screenshot"); if (originalKey) { // Clone the original key var newKey = originalKey.cloneNode(true); // Set the new id and shortcut for the new key newKey.setAttribute("id", newKey.id+"_redjard_alt"); if (newKey.hasAttribute('data-l10n-id')) newKey.setAttribute("data-l10n-id", newKey.getAttribute('data-l10n-id')+"_redjard_alt"); newKey.setAttribute("key", "S"); newKey.setAttribute("modifiers", "accel"); // Add the new key to the parent of the original key originalKey.parentNode.appendChild(newKey); }
The script removes the shortcuts listed in the beginning and adds an alternate shortcut for screenshots to ctrl+s.
You can see all internashortcuts by opening a browser console and querying the shortcut elements (using regular javascript)To complete this, probably with ff117 I had to fix the way I load my userchrome files, reminding me I should probably put them here too:
/usr/lib64/firefox/firefox.cfg
// firefox.cfg file needs to start with a comment line // it is included by having the following two lines in defaults/pref/autoconfig.js: // pref("general.config.sandbox_enabled", false); // pref("general.config.filename", "firefox.cfg"); // pref("general.config.obscure_value", 0); var Services = globalThis.Services; Services.obs.addObserver((aSubject, _aTopic, _aData)=>{ var chromeWindow = aSubject; chromeWindow.setTimeout(()=>{ try { if (chromeWindow.userChromeJsMod) return; chromeWindow.userChromeJsMod = true; var chromeFiles = chromeWindow.FileUtils.getDir("UChrm", []).directoryEntries; var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService); while (chromeFiles.hasMoreElements()) { var file = chromeFiles.getNext().QueryInterface(Components.interfaces.nsIFile); var fileURI = Services.io.newFileURI(file); if (!file.isFile()) continue; if (/(^userChrome|\.uc)\.js$/i.test(file.leafName)) { // load userChrome.js and *.uc.js (case insensitive) as js file Services.scriptloader.loadSubScriptWithOptions(fileURI.spec, { target: chromeWindow, charset: "UTF-8", ignoreCache: true, }); } else if (/\.as\.css$/i.test(file.leafName)) { // load *.as.css (case insensitive) as css file (in browser scope) if (!sss.sheetRegistered(fileURI, sss.AGENT_SHEET)) { sss.loadAndRegisterSheet(fileURI, sss.AGENT_SHEET); } } else if (/^(?!(userChrome|userContent)\.css$).+\.css$/i.test(file.leafName)) { if (!sss.sheetRegistered(fileURI, sss.USER_SHEET)) { sss.loadAndRegisterSheet(fileURI, sss.USER_SHEET); } } } } catch (e) { Components.utils.reportError(e); // [check] Show Content Messages } }, 10); // end of timeout }, "browser-delayed-startup-finished", false);
/usr/lib64/firefox/defaults/pref/autoconfig.js
pref("general.config.sandbox_enabled", false); pref("general.config.filename", "firefox.cfg"); pref("general.config.obscure_value", 0);