Skip to content

dmattera/firefox-scripts

 
 

Repository files navigation

userChromeJS

Tested on Firefox Developer Edition 79.0b3, Windows 10

Instructions

  1. Download this zip file and extract its content to Firefox installation folder (usually C:\Program Files\Mozilla Firefox).

  2. Click Firefox menu button (☰) -> Help -> Troubleshooting information or simply open the address "about:support", then click Open folder. This is the folder of your Firefox profile. In there, create a new folder called chrome.

  3. Download one of the files below and extract its content in chrome folder.

Now, if you're only interested in extensions, you can skip to step 6.

  1. Save the desired userChromeJS scripts into chrome. Read below the description of some of them.

  2. If you want a button to manage your scripts, including the ability to disable/enable scripts without needing to restart Firefox¹, save rebuild_userChrome.uc.js into chrome.

  3. Restart Firefox.

Important

In some cases, it may seem that nothing has changed in Firefox. If that happens, it's because Firefox didn't update startup cache, so userChromeJS didn't run. To fix this, reopen your profile folder (see step 2 above), exit Firefox and delete startupCache folder. It will be recreated the next time you open Firefox, detecting the scripts that have been added.

¹: Not all scripts are restartless. These have @shutdown at the beginning of the code. Almost all scripts on this page were written by me to be restartless, but almost all scripts you get from other sources are not.

userChromeJS scripts

(click to expand)

BeQuiet The main purpose of this script is to control media without having to select the tab playing it. So I can play/pause a YouTube video or skip to the next song in Deezer while browsing Reddit, for example. Three hotkeys are defined by this script: Ctrl+Alt+S to play/pause, Ctrl+Alt+D to next song and Ctrl+Alt+A to previous song.

Besides that, no more than one tab should play audio at the same time. Each tab paused by another tab that starts playing is added to a stack. So if I open a new YouTube video while there's already one playing, the new tab starts playing and the other is paused. When the video ends or when I pause it, the first YouTube tab resumes playing.

As for now, I only added support for a few sites, like Deezer, Spotify and YouTube. I chose not to support next/previous in YouTube, only play/pause.

Download link.

Enter Selects Preselects the first suggestion from address bar. For instance, if this page is the first suggestion when you type "xiaoxiaoflood", you don't need to press down arrow key before Enter. This is a workaround for the bad Firefox design choice of autofill domains only.

With practice, the page you want to go to will always become the first one, so accessing any frequent page will be as easy as typing just 'gm' + Enter to load Gmail.

This script replaces urlbar autocomplete, so browser.urlbar.autoFill is disabled on install. If at any time you miss domain autofill, you still sort of can achieve that by pressing Tab IF the domain of first suggestion matches what you've typed so far. Example: you typed git and the first suggestion if from github.com. Pressing Tab key will autocomplete the domain even if the first suggestion is not just github.com - it may be github.com/whatever. But if the typed input doesn't match the domain of the first suggestion, then Tab key will have default behavior, i.e. will select next suggestion just like down arrow key.

Download link.

Extension Options Menu A single toolbar button to manage all your extensions. It opens a menu listing each extension. Left-click to open Options from the hovered addon, right-click to enable/disable, Ctrl + right-click to uninstall. Hover anywhere on the menu to see more.

Screenshot:

Download link.

Master Password+ Locks Firefox with password. This will prompt the password on browser startup or anytime when you lock it with Ctrl+Alt+Shift+W.

You need to set a master password in Firefox Options > Privacy & Security > [×] Use a master password.

Download link.

Locked:

Unlocked:

MinMaxClose Button Toolbar button to replace window buttons (minimize, maximize and close). I'm a Windows user and use Tree Style Tab with hidden titlebar, so I need this.
  • Left-click to minimize (so I can't close it accidentally).

  • Right-click to close.

  • Middleclick restores to fixed position/size (edit script code with your preferred values). If you want to restore to previous position/size, use Shift + Middleclick.

Download link.

multifoxContainer When Firefox introduced containers, I created this script to get some features that I missed from Multifox, the legacy addon that implemented "containers" years before Firefox having this feature by default. Since then, Firefox has added some things this script had, so I removed them. But I still use it for two things:
  • New tabs (Ctrl+T or New Tab button) inherits the container of current tab (except for Private Tabs).

  • The label in urlbar serves as menubutton to reopen current tab in other container. With left click, current tab is replaced. With middleclick, a new tab is opened without closing the other one.

Download link.

Open in Unloaded Tab Creates an item in contextmenu to open links/bookmarks/history in unloaded tabs, i.e., the tab is created, but it will only load when selected. Just like unloaded tabs when you restore previous session. So you can, for example, open multiple related YouTube videos and load them one by one. Or open an entire bookmark folder in tabs without freezing the browser, since tab content will load on demand.

Download link.

PrivateTab Fx 77 blocked the ability to open private tabs in non-private windows, previously possible with Private Tab addon. So I decided to write this script as a replacement. You can change some minor settings at the beginning of the code.

Download link.

Redirector Requires basic JS skills to write rules using regex.

The main difference between this and extensions like Redirector it that these Firefox extensions record both pre-redirect and final URLs in history. I want it to record just the final URL.

This script can also do more complex things like running a JS function with regex results.

Finally, the main reason why I wrote this was to integrate it with Link Status Redux. When I point the mouse to a link that I've already visited, LSR displays the time of last visit. This is extremely useful for me to know if I have already visited the page and to track changes since last visit.

LSR uses Redirector rules to replace links directly in page (Redirector extension doesn't do this, it redirects only when you try to load the URL). And many URLs have gibberish at the end, so I have rules to remove them, then the URL remains clean and LST can track last visit correctly (because the gibberish is different every time, generating different URLs).

Note: the list of rules in the script is just an example, mine is much bigger.

Download link.

Status Bar Brings back the good old status bar (also known as Addon Bar) at the bottom, with status text plus any buttons you want.

Screenshots:

Download link.

StyloaiX UserStyle manager to reskin Firefox window and websites. Replacement for legacy Stylish. More convenient than userChrome.css and userContent.css, as it has a powerful editor with instant preview, error checking, code autocomplete and you can enable/disable individual styles without restarting Firefox.

Screenshots (yes, I'm using the old Stylish icon):

Download link - extract it in chrome folder.

Bonus: I don't like the new password manager and the old one was removed in Fx 77. I'm still using it. If you want it too, save these files, so that you can access the old password manager using chrome:https://userchromejs/content/passwordmgr/passwordManager.xhtml (bookmark this URL).

Screenshots

userChromeJS Manager (the blue ones are restartless)

Status Bar, Extension Options Menu, MinMaxClose Button, newDownloadPlus.uc.js and legacy extensions:

About

userChromeJS / autoconfig.js and extensions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 95.2%
  • HTML 4.3%
  • CSS 0.5%