Rated 5 out of 5 stars

Excellent! I've been hacking the UI a lot. This is essential to me.

I've used it to get rid of the Windows-supplied title bar and have added my own to several of the Thunderbird Windows &amp;amp; Dialogs, like how tabs-in-titlebar (Advanced Preferences: "browser.tabs.inTitlebar" (oops! Is that "mail.tabs.drawInTitlebar" instead???), <body> tag attribute "tabsintitlebar") work in the main Window.

Enhancement Idea:
- add more Window/Dialog types - I hacked this extension to add filterListDialog and FilterEditor. Perhaps more coming.

Can you submit a pull request for your changes at https://github.com/Extended-Thunder/userChromeJS ?

Rated 5 out of 5 stars

Version 1.2 made Thunderbird Supernova convenient for me ref https://support.mozilla.org/en-US/questions/1428352

Rated 5 out of 5 stars

Not work with 115. Please update thx.

This review is for a previous version of the add-on (1.0.1). 

Rated 5 out of 5 stars

@Dan: In order to make it work, you need to change getURLSpecFromFile to getURLSpecFromActualFile.

This review is for a previous version of the add-on (1.0.1). 

That fix was already made in v1.0.1 which was released on July 4.

Rated 5 out of 5 stars

Lost all my buttons with 102.0. Will an update for the new version be possible?

Edit: thanks for the reply.

Ok found the problem. Your addon is indeed still working however the code for creating separate buttons with .uc extension no longer does. You posted it previously:

let protocolHandler = Services.io.getProtocolHandler("file").
QueryInterface(Components.interfaces.nsIFileProtocolHandler);
let userChromeDirectory = Services.dirsvc.get("UChrm", Ci.nsIFile);
for (let file of userChromeDirectory.directoryEntries) {
if (! file.leafName.endsWith(".uc.js"))
continue;
let url = protocolHandler.getURLSpecFromFile(file);
Services.scriptloader.loadSubScriptWithOptions(url, {
target: document.defaultView,
charset: "UTF-8",
ignoreCache: true
});
}

If the code is placed in userchrome then it's good.

This review is for a previous version of the add-on (1.0).  This user has a previous review of this add-on.

I'm not sure what you mean by "buttons" or what "buttons" have to do with userChromeJS. I just tested userChromeJS with TB102 today and it seems to work just fine. If there is code in your userChrome.js file that's creating buttons of some sort, and that code is no longer working in TB102, then I don't think that's because userChromeJS isn't working, I think it's because the code isn't working, and that's not anything userChromeJS can fix.
In any case this isn't the right place to seek support for the add-on. Please see the support email address on the add-on home page for further assistance.

Rated 5 out of 5 stars

I appreciate you making the addon work

This review is for a previous version of the add-on (1.0). 

Rated 5 out of 5 stars

Thanks. This addon was recommended to add some code so that Lightning calendar events could be edited when clicked on in Thunderbird 91 (rather than the extra step introduced) . It all worked perfectly!

This review is for a previous version of the add-on (1.0). 

Rated 4 out of 5 stars

Well, it works, but not without problems (I think so)...

I have some little scripts for custom buttons, they work fine with the setup in thunderbirds 68.x folders described here:
https://www.thunderbird-mail.de/forum/thread/80290-anpassung-per-userchromejs-per-script-ab-version-60/

I switched full to this AddOn (have deleted all added extra files from above).

Now only userChrome.js is loaded. Scripts in this file works well. But no extra userscript named as *.uc.js will work.
It is not possible to set userChrome.import("*", "UChrm").
And I can't figure out how to run the userscripts.

So I deleted this add-on, but:
Don't know for sure, but after deleting this addon I had trouble to clear the profile. I had duplicate custom buttons (no double scripts) in the menu and the positions of the buttons won't save.

I copied a backup profile and worked on, everything is fine again.

This review is for a previous version of the add-on (0.0.5). 

This add-on has nothing to do with the problems you had after deleting it.

This add-on is not a full replacement for the old one. It doesn't claim to be. As the description says, all this add-on does is load userChrome.js in every window.

I'm happy to accept pull requests to add additional functionality. See jikamens/userChromeJS on github.

Here's an example of how to implement the *.uc.js functionality yourself in your userChrome.js file:

let protocolHandler = Services.io.getProtocolHandler("file").
QueryInterface(Components.interfaces.nsIFileProtocolHandler);
let userChromeDirectory = Services.dirsvc.get("UChrm", Ci.nsIFile);
for (let file of userChromeDirectory.directoryEntries) {
if (! file.leafName.endsWith(".uc.js"))
continue;
let url = protocolHandler.getURLSpecFromFile(file);
Services.scriptloader.loadSubScriptWithOptions(url, {
target: document.defaultView,
charset: "UTF-8",
ignoreCache: true
});
}