[Bugs/Features] Firefox/Firefox Forks
Firefox forks such as the ever-popular LibreWolf aren't currently supported by Yin-Yang.
Several fixes need to be introduced to more easily support any/all:
-
Update the Yin-Yang “Firefox” extension to report the customized browser name in the
browser.runtime.sendNativeMessagecall. Instead of sending “firefox”, send the browser name and vendor for best results. This allows the extension to work on any version or fork of Firefox (provided they have their copy of the native-messaging json in the proper location). I would attempt to turncommunication.pyinto something universal. -
Patch
communication.pyby simply reducing the messaging around the “Firefox” assumption:_send_message(_encode_message(send_config(message_received)))resolves this easily and lends itself to universal use. -
For LibreWolf, the appropriate directory is
~/.librewolf/. -
Firefox/LibreWolf are not communicated to from Yin-Yang when Yin-Yang is started or 'Apply' is pressed. Yin-Yang should 'communicate (send_theme)' on startup and on configuration change. Perhaps swapping over to port-based native-messaging might be a good alternative...or periodic polling by the extension as a last resort. Restarting software everytime is the only alternative.
We would have to create new plugins that subclass the Firefox plugin. Otherwise, they would use the same configuration if both are installed (although I'm not sure if that would be a problem).
If sharing configs between them is ok, it should be enough to include the profile directories in firefox.py.
We would have to create new plugins that subclass the Firefox plugin. Otherwise, they would use the same configuration if both are installed (although I'm not sure if that would be a problem).
No, you only need to update one line of code in your Firefox extension to not report 'firefox', but rather the vendor. I made all the changes for everything I mentioned in this Issue, but I trashed the project once I found Firefox's built-in System theming which is automatic.