TL;DR: I apologize if my previous comment came across as a threat. That was not my intent. I understand the concerns about the length however it is all either for adding the functions missing from both the current script and Fandom's built-in toggle or simply offering a choice of GUIs to the user. Bitomic, while we definitely have difference in opinion, it seems to me we are at least in agreement over the banner notifications and having, at least, an indicator of the wiki's preset theme. Please feel free to correct me if I got that part incorrect but, assuming I have not, I am glad we can at least agree on those issues. I know this is long so I don't expect an immediate response.
Introduction
I apologize if my statement "If I don't hear anything by next Saturday, I will assume all is fine and move forward […]" sounded like I was trying to threaten you or anything. That was not my intent. I understand that we all have lived outside of Fandom; myself included. That said, I didn't mean that I wanted an in-depth analysis from you by then. I just meant I wanted some engagement so I at least know you are still keeping this on the back burner. Something as simple as "I need more time to look" or "I am busy for the next few weeks" would have been perfectly fine and I would have had no issues waiting if you had said something like that. That said, all of this is necessary only because we are trying to merge the two script ideas. As mentioned earlier in this thread, there are plenty of scripts on this wiki that are similar to each other. Therefore, in my opinion it would not necessarily be the worst solution to just have two competing scripts.
Pcj and Bitomic, I understand that the increased size of the script would be of concern. However, most of the additional characters are split between adding the new functions which are currently lacking from both the current script and the built-in toggle that Fandom provides or offering an alternative user interface for the same functions. However, I will address this in more detail later after quickly addressing some of the other points Bitomic raised.
Bitomic's Other Concerns
Regarding the CSS insertion method, I tried using both cb (as Pcj did in the script) and version (as UCP currently does). Perhaps I am just looking at bad example wikis but I couldn't see any effect of either parameter. When testing the parameters, it seemed to always return the current versions regardless. If you know of a wiki where I can see otherwise or at least do another test, please let me know. Either that or I don't understand what is considered a version. I had thought it was supposed to be like version control where you could get past configurations. If it is just a way to clear the cache, wouldn't that be done by the wiki periodically anyways?
I am not trying to be mean because I genuinely don't know. But I would be curious to know what feedback you are using to decide that these changes/options aren't wanted "enough". In my experience, a lot of users just "make do" with what is available if they don't have the skills/desire to code it themselves. That isn't the same as not preferring something else if the option is available.
Regarding the URL parameter and script default configuration (though you didn't mention the script default), they don't add much at all. In fact, they add barely anything. It is literally just this one line near the end of the script.
setTheme(mw.util.getParamValue("usetheme") || window.ThemeToggler.defaultTheme);
Even if I agreed with you about there being no obvious use, I would still argue that it is very little code so there is no harm in adding it anyways. Aside from being the originating idea for my script, I think the URL parameter could be useful for wikis. I believe the reason why the script has to be listed as personal right now is because it changes standard/Fandom-branded parts of the user interface. With my current draft, the wiki could configure the script to not insert the buttons and thus not alter the standard user interface; which I think would allow the wiki to use it for all users. Here is what I am thinking. Let's say a wiki want to encourage the use of a particular theme; either for the wiki as a whole or for particular pages. Right now, there is not easy way for the wiki to simply give users a link to toggle the theme. However, by adding the URL parameter, the wiki could easily just make a small hatnote saying something like "This page is best viewed in light mode." with a link. If the user cared to, they could simply click the link to temporarily use the indicated mode without needing to install the script themselves or change their preferred theme.
As for the script default, I envisioned it functioning as a per-wiki user preference. Say a user really would prefer dark mode so that is what they set the preference to. However, there are one or two wikis where dark mode really just doesn't work well. Rather than choosing between dealing with a poor looking wiki, changing their preference every time they visit the wiki, or trying to help the wikis admins rework/design the dark theme, the user could simply install this script and set a script default for those few wikis. Then, when they load a page from one of those wikis, the theme will automatically change from their typical preferred theme to one that is more readable for that particular wiki.
Script Length
Since this was a rightfully voiced concern by both Pcj and Bitomic, I wanted to try to get a more detailed view of the situation. To do so, I copied the entire script into Microsoft Word and attempted to determine a rough breakdown of how many characters (including whitespace) are used by the various parts of the script. I am not sure why the character count is about 400 less than the wiki's byte size. Interestingly, despite being in a plain text file, my computer says the file size is about 450 bytes more than what the wiki says the content byte size is.
• comments -------------------------- 1150 - 1150
• imports management 320 - 1470
• I18N ------------------------------ 940 - 2410
• GUI1 120
• GUI2 ----------------------- 460
• optional 430
customization
• GUI3 and GUI4 shared ------- 130
• prefs notifs 100
• API GETs for user prefs ----------- 510 - 2920
theme and success notif
• wiki theme determination 500 - 3420
• CSS ------------------------------- 850 - 4270
• GUI2 470
• GUI3 ----------------------- 260
• option to hide built-in 100
toggle
• custom icons ---------------------- 710 - 4980
• change theme function 1680 - 6660
• GUI2 disabling effects ----- 520
• script-wide variables and 330 - 6990
run condition checks
• GUI1 insert ----------------------- 1470 - 8460
• GUI2 insert 2310 - 10770
• tooltips shared by all GUI1 ------- 530 - 11300
and GUI2 buttons
• GUI3 insert 1700 - 13000
• GUI4 insert ----------------------- 1350 - 14350
• duplicated from GUI3 210
• miscellaneous --------------------- 310 - 14660
• total 14640
In the above breakdown, each list item is rounded to the nearest 10 characters and sub-lists are not necessarily extensive. As such, not all sub-lists will sum to the parent list item's size. I have provided the total character count as the last list item and the top level list items indicate both their own size and a running total of the script's size. As you can see, the largest individual contributors are the various graphical interfaces. Given that fact, I believe it would be prudent to provide a brief recap of each interface for easy reference/comparison. The links on the "GUI#" labels are to images showing examples that I have uploaded to Discussions but have removed the thumbnail for from this post since they don't get laid out well. The images where taking with all 4 GUIs active but that is certainly not how I intend for users to use the script.
GUI1: This is the interface present with the current script. It features two buttons in the left tool bar. One button toggles the theme between light/dark and the other does the same but also saves the new theme as the user's new preference. The preference button essentially does what Fandom's built-in button does but was available prior to the built-in interface.
GUI2: Similar to GUI1, this interface is implemented as buttons in the left tool bar. Like GUI1, it has a button to toggle between light/dark but dynamically changes its icon and tooltip to clearly indicate which theme it will change to. The other buttons are not present in GUI1. They are to use the wiki's preset theme, use the user's theme preference, and save the current theme (rather than the "other" theme) as the user's new preference. Perhaps a more significant difference with this preference button is that, if the current theme was set by clicking the button for the wiki's preset, the preference will be set to "wiki" rather than just either "light" or "dark". This ability is also missing from Fandom's built-in toggle. There is some class toggling and CSS to provide a disabled button appearance in certain circumstances but this could be removed to save on script size.
GUI3: This was the interface from my initial script. It inserts a dropdown-selection-like interface beneath the built-in buttons on the right of the local navigation. The text portion that is always visible serves to indicate the current theme ("light", "dark", "wiki preset", "user preference") and the dropdown menu provides all 4 options in a list from which the user can click to select which theme they want to use.
GUI4: Basically GUI3 but without an indicator and using buttons with icons instead of a dropdown menu with text.
As you can see from the character count breakdown, the creation and insertion of the 4 different GUIs collectively comprises about 47% of the script's size. Related to the GUIs are the code for the tooltips (~4%; GUI1 and GUI2), custom icons (~5%; GUI2 and GUI4), and disabled button effect (~7%; GUI2). The GUI with the most "characters per button" is GUI1 at roughly 1470 for 2 buttons while the GUI with the lowest is GUI4 with about 1350 for 4 buttons. Although, GUI4 doesn't contain a "set preference" button, the preference button in GUI1 is arguably redundant due to Fandom's new built-in button. Although the custom icons do take about 710 characters as opposed to the tooltips' 530 characters, GUI4 requires just 1 of the 2 custom icons. When accounting for GUI-related code other than just the creation/insertion, the one requiring the most characters is GUI2. Without this (but leaving the custom icons), the scripts size could be reduced by about 3300 characters (~23%). However, removing GUI4 without a replacement for its preference save button means that there still won't be an quick way for user to set their preference as "wiki".
Of course, the character count can always be reduced by using non-descript names like what a minifier might produce. However, that would be terrible for script maintenance.