Theme Font & Size Changer for Thunderbird 64.6 fixes (#E6F4)

Yeah, f*ck me, why am I doing this.

Okay, so after a few requests and complaints about issues with TB 60.2.1 and 63b1, I spent the last hours digging deeper. That’s a mess, and not only on the code side of this addon, but also in terms of Mozilla. Well, who would have thought.

64.6 was just uploaded to the TB repository, could take a week to get that approved. Took care of zoom field and fonts list, also updated some more stuff that got disabled already or will get disabled in the near future.

Zoom. Not as in the Mazda cars, but as in layout.css.devPixelsPerPx. That actually was set to an oncommand on the text box itself, which, after I finally got it to break in 60.2.1, never again worked in previous versions. Easy fix: Remove the oncommand stuff and slap in a button that does the same, like with the font size a few rows below.
Remarks: The textbox was set to increment="0.05" min="1.00" max="2.75" decimalplaces="2". Hilarious. The textbox is saved as integer, so fuck everything non-int. Furthermore, increment is disregarded in both ways: It does not change the integer value because it just rounds down, and increment is itself an int, so it cannot even be 0.05. Oh, and decimalplaces…in an int field. What did these guys smoke when designing those textbox attributes? Is that even legal anywhere in the world? Lazy man fix: Now everything is in percent (without saying so…), so now very strange zoom values are possible. increment seems still broken, that’s going up 1% per step, not 5% as set. Whatever.

Font list. The addon pulls a language preference first and then populates the list of available fonts, probably omitting those that do not fit your non-western language setting. This was done the following way:

var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
var branch = prefs.getBranch("font.language.");
var langGroupPref = branch.getStringPref("group").data;

Okay, so prefs works, branch works, langGroupPref breaks. branch only has one child attribute (array?) “group”, and I am not able to extract the value that my Thunderbird says is active. I get undefined, “undefined”, some chrome link (which apparently says “user did not override stuff”, but never “x-western”. So after two hours of fiddling around, I made a try{} statement, if that fails, you get defaulted to x-western before breaking everything that follows. Easy as that. If anyone know how to friggen extract the correct string, I’m glad to push another version that fixes this.

MacCheck. That’s, as far as I understand, closely related to the zoom feature which could break loose hell on OSX, so there’s a little warning box for those users. I cannot test this on Apple hardware as I do not own such repair-proof hardware, but I kinda see how the original author did this. There are quite a lot of constants set with important paths, like the user desktop dir, OS dir and so on. Some of these are specific to one or more operating systems, and “UsrDsk” is apparently OSX-only. So whatever
var dirService = Components.classes["@mozilla.org/file/directory_service;1"].
getService(Components.interfaces.nsIProperties);
dir = dirService.get("UsrDsk", Components.interfaces.nsIFile);

does, we’ll be able to tell if there’s a Mac involved or not. Unfortunately, it took me quite some time to realize this was intended behaviour and the guy knowingly went straight into an (catched) exception in order to determine the OS. Guess there should be an easier way to do that, but that’s for another update. Heck, why do I update this stuff, this should be core functionality in TB…

And last but not least, the catastrophic failure in TB63b1 seems to be a problem of TB, not the addon. Apparently XPCOMUtils.generateQI is broken in both Firefox and Thunderbird nightlies, and that beta seems affected as well. See https://github.com/mozilla/tls-canary/issues/171 , other guys already had fun with it. I will not implement fixes for broken TB versions, just wait for stable versions that do not break more than absolutely necessary.

Well, that’s it, no time to write the blog post about the next step in ESP8266 kitchen monitoring. But I got this one AND a new addon version, so today was still a productive day.

Addon is attached for those of you that want to test it before it gets approval from the Mozilla guys. Everybody else gets a notification and can upgrade as soon as it’s live.

See you next time! :bye:


23 Responses to Theme Font & Size Changer for Thunderbird 64.6 fixes (#E6F4)

  1. Daniel says:

    Thank you for updating this! :yahoo: :good:
    In an age of high resolution monitors, it’s just silly this isn’t built in…

  2. José Domínguez says:

    Hello,
    Do you plan to update the addons to support Thunderbird 66b or 67b?
    Thank you very much for your great work.

  3. peter says:

    Thanks very much for the time & effort you have put into this. :good:

  4. DavidGB says:

    Thanks for the add-on which I’ve found indispensable.

    Will you be updating the add-on for TB 68 (now available from the main Thunderbird download page, but not yet offered as an update within Thunderbird itself)?

    • Bzzz says:

      I’ll have a look! Thanks for letting me know, Ubuntu/Canonical is usually pretty late in pushing this to their repos.

  5. NYDutch says:

    Very much missing the add-on on TB 68 on PCLOS. Looking forward to an update when you get it sorted out. Thanks for your hard work on this!

    • Bzzz says:

      Current state after half a day of function migration and debugging: Thunderbird as part of Mozilla is still a steaming pile of shit. And the debugger that doesn’t do jack in debugging is a pure joke. So current ETA is about never. Joy-o-joy.

      • NYDutch says:

        I’m really sorry to see it’s causing you so many problems. I would love to help if I could, but your skill levels far exceed mine in this area. I’ll keep my fingers crossed that it will work out eventually.

        • Bzzz says:

          Well, it’s not your fault. Give me a working debugger and eventually I’ll get to the bottom of the problem. If, however, shit is running when it says it isn’t, shit is not running and there’s no way to force it running, logging only works for working code, and debugger break points are for decoration and generally ignored, that doesn’t help a damn thing.

          I’m so glad I’m the retard on both ends of the blame chain… https://imgur.com/4sRfN4V

      • DavidGB says:

        While not a programmer, I’m sharing your frustration over the Thunderbird devs at the moment. I have finally managed to get my display back to pretty much how I had it, without TFSC, through use of a userChrome.css file and some settings in Options. But i was held up for days by everything else being right, but tiny text in the display of plain text message windows. Everything I thought should – or might – change that font size didn’t make any difference. After far too long, yesterday I finally realised there’s a bug in TB 68.0: as a traditionalist I had plain text messages set to display in the configured monospace font … but that’s where the bug is – TB simply does not respond to the configured monospace font size setting. Changing plain text messages to display in the configured proportional font like everything else immediately fixed the tiny plain text as it DOES respond to the Options setting for the proportional font size.

        • Bzzz says:

          “stable”. Well heck yeah, they got a black UI now, that’s the important bit of the release.

          I can now hard set prefs without any menu, dialogue, whatever. Good thing I know the lengthy review process at Mozilla, otherwise I’d just make ten extensions with different zoom factors.
          about:config , set layout.css.devPixelsPerPx to a factor you like. Looking for font sizes now. It’ll be a new legacy addon because Webex dev resources aren’t there yet :) (I even found my own blog by accident when crawling about a specific bit, that’s how much documentation is out there)

          • Valery says:

            I cant read normal size well on Thunderbird – used your add on for years – wonderful :heart: – millions used it – why cant I add it on now? Had to reinstall Thunderbird and it wont let me use your add on – many comment saying please gt it back – Seniors like myself need larger fonts even wearing reading glasses :evil:

            • Bzzz says:

              Simple – addon architecture has changed completely, and it’s likely a complete rewrite is easier than “fixing” it to make it compatible with TB68+ (which can break any minute, as this is still a legacy type addon). If you NEED it, download Thunderbird 60 instead of 68.
              Same crap happened to Firefox 57, which somewhat shares code base with TB.
              I’m working on it, but a) I’m still using FF52 ESR and TB60, b) I do this in my free time besides 40h+/week full employment, c) I got other things to do, some clean up my desk, some pay more than 0.00 per hour. There’ll be an update, I just do not know when it’ll be ready and how much functionality of the old addon is covered.

  6. Bich_30 says:

    Thank you very much for your GREAT effort !!!

  7. Marc says:

    Gracias!!!!!

  8. Marc Winokur says:

    Good to know there is a real person working on this. You never can be too sure these days. Still don’t understand how the TB team could release a significantly unreadable e-mail program. Thank you for your time and effort! :yahoo:

  9. Valery says:

    Thanks for that – much appreciated. So many benefit from your work – keep up these good deeds because you will be rewarded maybe not in coin but in other ways.

  10. Marc Winokur says:

    Any news on TFSC for 68.1,1?

  11. Marc Winokur says:

    How about 68.2? (Just need to know if it’s up there before moving from 60.9)

    Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *

:mrgreen: 
:neutral: 
:twisted: 
:arrow: 
:shock: 
:smile: 
:???: 
:cool: 
:evil: 
:grin: 
:idea: 
:oops: 
:razz: 
:roll: 
;-) 
:cry: 
:eek: 
:lol: 
:mad: 
:sad: 
:suspect: 
:!: 
:?: 
:bye: 
:good: 
:negative: 
:scratch: 
:wacko: 
:yahoo: 
:heart: 
B-) 
:rose: 
:whistle: 
:yes: 
:cry2: 
:mail: 
:-(( 
:unsure: 
:wink: