Matthias Schoettle

Lead Software Developer

Author: Matthias Schoettle (page 1 of 5)

Digging into the Firefox UI for the tab close button

Oops … last year a new Firefox version broke the “close button on tab hover” tweak and I mentioned I will write a separate blog post on how I found out why and how to fix it. Life happened, but fortunately I wrote down bullet points about what I did.

It seems that with Firefox 54 something in the UI changed which broke the functionality. Fortunately, it wasn’t the removal of the ability to customize the UI using userChrome.css. In order to find out why the CSS selector didn’t work anymore, it was necessary to see how a tab was structured in XUL.

A while ago I used DOM Inspector. The current Firefox version then was 57, but it didn’t allow legacy extensions anymore. So I went back to the last 54.x version, which allowed the installation of this “legacy” extension. Unfortunately, I could not open its UI. I did however find the extension InspectorWidget. It has a nifty shortcut to open the inspector for the desired element right away. Hold Ctrl+Shift while clicking on the desired UI element.

Using the inspector I found out that there was a new CSS rule that set display: none for certain elements, one of them being the close button for tabs. To find out the initial/default value I used the computed rules, which showed -moz-box. This allowed to add display: -moz-box !important to the rule for hovered tabs to make it work again.

While it doesn’t seem possible to inspect the UI anymore with Firefox Quantum due to the introduction of WebExtensions, the CSS rules still work. However, it is unsure whether these kind of UI customizations will stay. There seemed to be plans to remove it., but perhaps they realized how many users are using this to tweak their UI since extensions are not allowed to do it anymore. This bug report to collect usage of userChrome.css supports this theory.

AirDrop on macOS working unreliably

AirDrop is quite convenient to send files to a colleague or another device without having to send an email or uploading it somewhere. At some point (I forgot with which exact OSX version), AirDrop was updated and required Bluetooth. Since then, it often occurs that the device I want to share a file with does not appear. However, there is this option to “Search for older Macs”. In the past, I’ve only used it to send files to a Mac running an older OSX version.

However, as it turns out, even for newer macOS versions, if this is done on both devices, it works much better and the device appears almost immediately.

iOS: How to fix/change Voicemail number

Recently, a friends voice mail “button” did not work anymore. Upon calling the voice mail, an audio error message appeared saying that the voice mail is not available or cannot be reached (something like that).

Unfortunately, Apple does not want you to just change the associated voice mail phone number that is called when tapping on “Voicemail”.

Fortunately, there is a shortcut:

  1. Go to the phone’s keypad
  2. Dial *#5005*86# and “call it”
  3. A phone number will appear, which is the one currently associated with the voice mail.  Write this down just in case.
  4. Now, call *5005*86*<insertPhoneNumber># and replace the placeholder with your phone number, starting with the country code (1 in this case for North America). For example, 14381234567.
  5. The voice mail button should now work.

This approach worked on the TELUS network (using Koodo). If it doesn’t work for you, revert the phone number to the one written down in step 3 and contact your provider.


Firefox close tab button on hover

There are probably extensions that allow to do that, however, this is not necessary as I will show in this post. Maybe you’ve seen the functionality in Safari or just wondered why the close button for tabs in Firefox can’t just always be there. In Safari, the close button appears when hovering over the tab itself.

The following modification adds this functionality to Firefox. You need to create a file called userChrome.css with the following content:

.tabbrowser-tab:not([selected]):not([pinned]) .tab-close-button {
        visibility: hidden !important;
        margin-left: -16px !important;

.tabbrowser-tab:not([selected]):not([pinned]):hover .tab-close-button {
        visibility: visible !important; 
        margin-left: 0px !important;
        display: -moz-box !important;

Place this file into the chrome folder inside your profile’s directory. Follow the directions from Mozilla to find out where to find the profile’s directory location.

Update 1: It just tried this again myself due to a fresh installation and you also need to change the browser.tabs.tabClipWidth preference from it’s default value (140) to 99.

Update 2 (August 2017): As pointed out by Veto in the comments below, this functionality is broken since version 55.0.3. The above CSS has been updated to stay compatible with the new Firefox UI.

Update 3 (December 2017): As pointed out in the comments, pinned tabs were affected too. Thanks to Mike for the solution on how this can be avoided. The above CSS has been adjusted.

Then just restart Firefox and you are done.

Original Source: Post on Neowin Forums

Thunderbird Extension: Hide Badge Icon

About two years ago (a few months after switching to Mac OSX) I noticed that the badge on the Thunderbird app icon, which notifies about new and how many emails were received, is quite distracting for me when I work. As soon as it pops up I would notice it and felt an urge to immediately check what the new email is about. Then of course, the current focus and concentration is lost.

I wanted to turn the badge of, as this is generally supported on OSX, but found out that this is not the case with Thunderbird. I didn’t give up easily and went to search the Internet. Unfortunately, no one had attempted this, complained about it or filed a bug report. Also, I could not find any documentation about this on the Thunderbird pages.

I wanted to know more and started digging into the source code of Thunderbird. An advantage of open source software. Because this is a Mac OSX specific thing, searching for files related to OSX seemed logical. Eventually, I found a file nsMessengerOSXIntegration.cpp (it is now where the logic for this functionality is implemented. While I did find an interesting piece of code, the revisions also were helpful, which led me to bug report #274688. In this bug report, a hook was introduced, which allows to observe a property called before-unread-count-display. Upon notification, the desired badge label can be modified/adjusted (e.g., making 100+ for all counts greater than 100) before it is displayed. If an empty string is returned, however, the badge will be hidden.

And that was it. I digged into it and found an (unfortunately) undocumented extension feature. This allowed to write an extension with the purpose of hiding the badge in all situations. I have actually used it for more than two years. My intention was always to release it and share it with others, but kind of put it off. Since I was updating my other extension anyway, I finally did it.

To my surprise, it was fully reviewed without any complaints right away. So if you want to work without distractions, you can now use Hide Badge Icon to hide the badge of the Thunderbird app icon.


Older posts

© 2018 Matthias Schoettle

Theme by Anders NorenUp ↑