datguypiko / Firefox-Mod-Blur

Firefox Theme - For dark theme lovers / More compact / Modular / Blur
1.24k stars 59 forks source link

Add an cross-platform installer for the theme #109

Closed Alan-Kuan closed 8 months ago

Alan-Kuan commented 8 months ago

Hi @datguypiko,

I really like this Firefox theme. However, copying each modified file when an update is out is tedious. Thus, I wrote a Python script that helps users to install/manage extra mods/themes. The only dependency is inquirer, which is used to create interactive menus. I have tested my script on Linux and Windows. However, I don't have a PC with macOS, so I didn't test the script on it. Even though, I guess it should work on macOS.

Run the installer at first time: image

After it is installed, a .firefox-mod-blur.jsonc file is created under chrome/. It is used to track each installed extra mod or extra theme.

Run the installer afterward: image

In this PR, not only an installer was added, I also slighted modified the structure and content of EXTRA MODS and EXTRA THEMES to make the installer easier to be implemented. Also, I introduced a file, .extra, which specifies extra files other than .css files or extra directories that belong to corresponding mod. Each line of .extra is a relative path to an extra file or a directory. What's more, if a path is prefixed with -, it will not get updated in the future. It's useful for directories such as wallpaper/, so users can put their wallpaper in it, and it won't be replaced in the next update. In addition, when the relevant mod/theme is uninstalled, these files/directories prefixed with - will be preserved in a new name with suffix .{timestamp}.bak.

Please review my PR, and tell me if there's anything I can do. I hope this work can help other users too. Thank you!

datguypiko commented 8 months ago

That's cool but you should probably create a separate github page for this. I can link to it in some locations.

One thing possible in firefox with css is enable all modifications or themes through about:config so you can even have just one userChrome file for it but I didnt know about it at the time when I created this. I will probably restructure it and add it in the future which would make this script obsolete.

Like this @media (-moz-bool-pref: "NAME") {...}

You can enable/disable stuff on the fly without browser restart.

Alan-Kuan commented 8 months ago

That's a cool feature to toggle styles. I didn't know that, either. After you restructure the stylesheets, I will update the installer, or perhaps we don't need it anymore.

As for the GitHub Pages, I am willing to make one. So, what you meant is that I need to add an HTML file in this PR, and you will enable GitHub Pages, or I should enable it in my repo?

datguypiko commented 8 months ago

I mean like forking it.

Alan-Kuan commented 7 months ago

Hi @datguypiko,

I later thought writing the usage and showing some screenshots of the installer in the README.md are enough. Thus, I just updated it in my repo.

Here's a link to it: https://github.com/Alan-Kuan/Firefox-Mod-Blur/tree/master#page_with_curl-installer-script

It'll be my pleasure if you're willing to mention my fork. Thanks!

datguypiko commented 7 months ago

Hi @datguypiko,

I later thought writing the usage and showing some screenshots of the installer in the README.md are enough. Thus, I just updated it in my repo.

Here's a link to it: https://github.com/Alan-Kuan/Firefox-Mod-Blur/tree/master#page_with_curl-installer-script

It'll be my pleasure if you're willing to mention my fork. Thanks!

I made some changes to structure, added some files so you can adapt it to your file.

Only your installation files would be required like .exta, installer.py, requirements.txt

datguypiko commented 7 months ago

I will probably will do the about:config restructure so people can change from there soon.

Alan-Kuan commented 7 months ago

I made some changes to structure, added some files so you can adapt it to your file.

Only your installation files would be required like .exta, installer.py, requirements.txt

I see.

I will probably will do the about:config restructure so people can change from there soon.

That will be nice!

datguypiko commented 7 months ago

I added it in some locations


image





image

Alan-Kuan commented 7 months ago

Thank You!

Alan-Kuan commented 7 months ago

By the way, I found you added .extra in your repo. I think you can remove them.

Since you move all extra resources to a ASSETS directory, I made my installer script just copy the entire directory upon installing, and removes it when uninstalling. Therefore, the .extra is redundant now.