Working on a Greasemonkey fork for Pale Moon

Add-ons for Pale Moon and other applications
General discussion, compatibility, contributed extensions, themes, plugins, and more.

Moderators: FranklinDM, Lootyhoof

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-05, 14:52

"Fine, I'll do it myself." -Thanos

After the failed attempt at asking anyone to continue on the development of Greasemonkey that was last updated almost 8 years ago, I decided to go learn more about XUL + XPCOM and forked the extension to continue on the development myself.

Been working on the extension for over 3 weeks, fixing critical bugs, patching vulnerabilities (Patched 2, so far), and adding modern APIs to make it compatible with most userscripts. Despite the latest release, which is supposed to be a stable release, I'm still not 100% confident with it as there may be some bugs that I didn't find them myself. You are definitely encouraged to either open an issue in the "issues" tab on my GitHub, or send me a private DM about it.

https://github.com/SecondCityOsD/grease ... P-browsers

The codebase lacked clear documentation, no wonder why it was very hard to continue on its efforts. Luckily, I had Claude Code to explain the entire codebase to me, so I would know what does what and what to edit to include what.

The changes that were made, so far:
  • One broken userscript no longer takes down all your other scripts — each script is now isolated
  • @grant none scripts now run in the page context (matching Violentmonkey/Tampermonkey behavior), fixing scripts like Project VORAPIS
Added new APIs, like:
  • GM_addValueChangeListener / GM_removeValueChangeListener (cross-tab communication)
  • GM_addElement (CSP-bypassing element injection)
  • GM_unregisterMenuCommand, GM_getValues / GM_setValues / GM_deleteValues
  • GM_registerMenuCommand options object support {id, accessKey, autoClose}
And so many more changes, feel free to check out the entire changelog through my GitHub repository.

Will be updated sporadically - or maybe never I'll be doing my best at it.


I'm also actively working on another extension, called "Video Speed Controller" which is a fork of a chrome extension with the same name, feel free to check it out through my GitHub repository, in case if you want an extension that would speed up videos on the internet, even beyond 2x speed and the setting would be saved for every single website you surf through. I don't feel like it's 100% perfect and there is room for improvement and refinement, but the extension itself works as expected.

I hope I'm able to develop my fork of Greasemonkey to a certain level of stability that it would be able to replace the outdated one.

Let me know what do you guys think about all of that.
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-05, 15:20

I'm planning to make the extension maintain the Greasemonkey UI, but have the compatibility of Violentmonkey. Was aiming to even have the compatibility of Tampermonkey, which is slightly higher, but due to the MV3 changes to the mainstream chrome browsers, the scripts that would utilize the exclusive APIs made by Tampermonkey are going to be very limited and might even be gone, the next duration of time, it'll not be feasible to add complex APIs and features, only for them to not be used afterwards.

Despite the 2 templates of the issues tab on my GitHub, fixing bugs holds much higher priority. Unless if there's a critical bug that is crashing something, I will be taking some time in fixing bugs, since I also tend to get quite busy in my work life.

Feel free to ask any questions here on this post, I'll be active and I'll try to answer as much as possible. Also, some FAQs worth checking in my GitHub repository page that covers many questions and concerns.


A bit of a rant here:

As someone who thought I managed to fix a lot of issues in the extensions, I'm still being reported of more bugs to fix. I'm not discouraging anyone of reporting at all, I'm just be sitting here, thinking "I...I thought I made the fork to fix a lot of bugs, but no one is confirming of the previous bugs that they had with the old fork that my modern one managed to fix". I kinda wish, atleast as an encouragement, any signs of me being on the right path. Oh well, I guess it's my imposter syndrome kicking in or something.

Off-topic:
Been thinking of what to do next, after developing Greasemonkey to be stable and fully compatible with Pale Moon. I was thinking of forking uBlock Origin and develop it as an overlay extension and rewrite some HTML files into XUL, because I wanted the dashboard to support dark mode, but this thought is definitely not something to be worked on anytime soon. I was also thinking of hiring a private investigator in Czech Republic to investigate the disappearance of Janek, because a big part of me does not believe that a guy who maintained a lot of activity on the extension, would just disappear. I'll see what to do next.
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
sidology
Fanatic
Fanatic
Posts: 124
Joined: 2021-12-04, 22:07

Re: Working on a Greasemonkey fork for Pale Moon

Post by sidology » 2026-04-05, 15:28

Impressive work, thank you.

Goodydino
Keeps coming back
Keeps coming back
Posts: 965
Joined: 2017-10-10, 21:20

Re: Working on a Greasemonkey fork for Pale Moon

Post by Goodydino » 2026-04-05, 19:20

I am wondering why Greasemonkey for Pale Moon will not update any scripts. I have pretty much the same scripts for Pale Moon and SeaMonkey, and Greasemonkey in SeaMonkey will show me if there are updates, but not in Pale Moon.
If the interface for editing or making new scripts were more like that in Violentmonkey or Tampermonkey it would be much easier to do. Greasemonkey's interface is frustrating.

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-05, 23:06

Goodydino wrote:
2026-04-05, 19:20
I am wondering why Greasemonkey for Pale Moon will not update any scripts. I have pretty much the same scripts for Pale Moon and SeaMonkey, and Greasemonkey in SeaMonkey will show me if there are updates, but not in Pale Moon.
If the interface for editing or making new scripts were more like that in Violentmonkey or Tampermonkey it would be much easier to do. Greasemonkey's interface is frustrating.
Depending on if the community also agrees that some of the extension UI should be changed or not, I could make the changes. I personally also want the interface to be more like Violentmonkey, because Greasemonkey UI doesn't really settle with me that well.

What does everyone think here?
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
UCyborg
Keeps coming back
Keeps coming back
Posts: 885
Joined: 2019-01-10, 09:37
Location: Slovenia

Re: Working on a Greasemonkey fork for Pale Moon

Post by UCyborg » 2026-04-06, 18:41

Original GreaseMonkey for PM refuses to check for user script updates if you have auto-updating of extensions in Pale Moon disabled, even if triggered by the user, in which case extensions will be checked, but user scripts will be skipped. I just remembered I deleted this section in the copy of GreaseMonkey I've been using for the last couple of years.

I didn't study the meaning of aForced parameter, so just deleting all of these may not be the most correct approach.

Edit: I see this value is false on manual check, so I guess it was right to delete all of it.

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-06, 21:41

UCyborg wrote:
2026-04-06, 18:41
Original GreaseMonkey for PM refuses to check for user script updates if you have auto-updating of extensions in Pale Moon disabled, even if triggered by the user, in which case extensions will be checked, but user scripts will be skipped. I just remembered I deleted this section in the copy of GreaseMonkey I've been using for the last couple of years.

I didn't study the meaning of aForced parameter, so just deleting all of these may not be the most correct approach.

Edit: I see this value is false on manual check, so I guess it was right to delete all of it.
Interesting, I haven't seen that before. I'll be checking onto it and see what would be the approach with it. I'm generally making the extension behave how Violentmonkey on Chrome behaves.


...I just realized that I'm probably going to be tackling issues that a lot of people did not report on the old fork of greasemonkey. I legit checked the "issues" tab on the old fork's GitHub page to gather all the issues, then fix them and ship my extension fork to the community.

Oh well, lay them all on me. :)
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
athenian200
Contributing developer
Contributing developer
Posts: 1682
Joined: 2018-10-28, 19:56
Location: Georgia

Re: Working on a Greasemonkey fork for Pale Moon

Post by athenian200 » 2026-04-06, 22:39

sinfulosd wrote:
2026-04-05, 23:06
Depending on if the community also agrees that some of the extension UI should be changed or not, I could make the changes. I personally also want the interface to be more like Violentmonkey, because Greasemonkey UI doesn't really settle with me that well.

What does everyone think here?
Well, I think UI updates are likely fine as long as it looks more like an XUL application and doesn't adopt a lot of "modern" conventions, like the three-dot menu, rounded corners, or a touchscreen-like interface. I haven't seen Violentmonkey's UI yet, but basically, as long as your updates to the UI are more functional in nature and keep in line with more conventional UI design that Pale Moon users are used to, it should be fine. Adding new functionality or extending what's there is likely fine, but people don't really like "streamlined" interfaces that give you fewer levers to pull or buttons to push around here.
"The Athenians, however, represent the unity of these opposites; in them, mind or spirit has emerged from the Theban subjectivity without losing itself in the Spartan objectivity of ethical life. With the Athenians, the rights of the State and of the individual found as perfect a union as was possible at all at the level of the Greek spirit." -- Hegel's philosophy of Mind

User avatar
Daemonratte
Newbie
Newbie
Posts: 4
Joined: 2026-03-12, 19:59

Re: Working on a Greasemonkey fork for Pale Moon

Post by Daemonratte » 2026-04-07, 12:52

Very nice! Looking forward to it :D
I'm actually porting some less important extensions to palemoon myself like Konquefox, Kwallet integration (both for modern Kwallet and Kwallet für Trinity Desktop Environment) and some themes from that time.
Let's get Pale Moon rolling again :D

User avatar
cola ammonia
New to the forum
New to the forum
Posts: 2
Joined: 2022-08-01, 10:00

Re: Working on a Greasemonkey fork for Pale Moon

Post by cola ammonia » 2026-04-09, 00:10

sinfulosd wrote:
2026-04-05, 23:06
I personally also want the interface to be more like Violentmonkey
Good. I like Violentmonkey UI.

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-15, 10:06

UCyborg wrote:
2026-04-06, 18:41
Original GreaseMonkey for PM refuses to check for user script updates if you have auto-updating of extensions in Pale Moon disabled, even if triggered by the user, in which case extensions will be checked, but user scripts will be skipped. I just remembered I deleted this section in the copy of GreaseMonkey I've been using for the last couple of years.

I didn't study the meaning of aForced parameter, so just deleting all of these may not be the most correct approach.

Edit: I see this value is false on manual check, so I guess it was right to delete all of it.
I have released a new version that fixes this particular issue. If my assumption is right, I think Janek introduced this mechanism, in intention of making the userscripts not check for updates on their own schedule, if the "Update Add-ons Automatically" is unchecked. He had that in mind, but I guess he didn't have in mind that this would spawn this bug.

I went ahead and added some lines that would make it possible for you to have the "Update Add-ons Automatically" unchecked, but you still want to manually check for updates (From the "gear" icon). I also applied a PR from a contributor to make it possible for you to update scripts manually, by right-clicking individual scripts.

If you have the extension installed on your browser, it should already be updated to the latest version.
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
moonbat
Knows the dark side
Knows the dark side
Posts: 5816
Joined: 2015-12-09, 15:45

Re: Working on a Greasemonkey fork for Pale Moon

Post by moonbat » 2026-04-15, 23:15

sinfulosd wrote:
2026-04-15, 10:06
If you have the extension installed on your browser, it should already be updated to the latest version.
Have you set up an update server for it? I downloaded it from Github, and it's staying at 3.4.0. When I trigger an update check manually it says that there was an error downloading it. I don't see it on the addons site; there's just the old one by Janek.
"One hosts to look them up, one DNS to find them and in the darkness BIND them."

Image
KDE Neon on a Slimbook Excalibur (Ryzen 7 8845HS, 64 GB RAM)
AutoPageColor|PermissionsPlus|PMPlayer|Pure URL|RecordRewind|TextFX
Jabber: moonbat@hot-chili.net

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-15, 23:37

moonbat wrote:
2026-04-15, 23:15

Have you set up an update server for it? I downloaded it from Github, and it's staying at 3.4.0. When I trigger an update check manually it says that there was an error downloading it. I don't see it on the addons site; there's just the old one by Janek.
I just tried installing an older version and I checked that the update is going through it completely fine. The update server is already configured on my GitHub page. You might have to manually install the latest version of 3.5.0 through the "release" page, it has the same UUID as Janek's old fork, so you're not gonna be facing that much issue. BTW, I took a bit of time in making the "Update.rdf" file point to the latest version, since I had the habit of linking it in the file, before releasing the latest version, making people experience a phantom update bug, at one point of time in the extension development (It was very embarrassing moment to me).

It doesn't exist on the addons site of Pale Moon, because I assume that either nobody in the addons team care for it to replace Janek's fork, or they think Janek's fork is stable, since it worked for 8 years.

I'm open for the possibility of this extension to be featured on the addons site of Pale Moon.
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
moonbat
Knows the dark side
Knows the dark side
Posts: 5816
Joined: 2015-12-09, 15:45

Re: Working on a Greasemonkey fork for Pale Moon

Post by moonbat » 2026-04-16, 06:18

sinfulosd wrote:
2026-04-15, 23:37
nobody in the addons team care for it to replace Janek's fork
That's not how it works - you have to submit your new addon for review before it can be added there, fork of an existing one or not. There's been others who were leery of hosting their extensions on the PM addons site and prefer to release their extensions on their own so it's best to formally create a thread about it on the addons board which can also be used later for new release announcements.
"One hosts to look them up, one DNS to find them and in the darkness BIND them."

Image
KDE Neon on a Slimbook Excalibur (Ryzen 7 8845HS, 64 GB RAM)
AutoPageColor|PermissionsPlus|PMPlayer|Pure URL|RecordRewind|TextFX
Jabber: moonbat@hot-chili.net

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-16, 08:52

moonbat wrote:
2026-04-16, 06:18
There's been others who were leery of hosting their extensions on the PM addons site and prefer to release their extensions on their own so it's best to formally create a thread about it on the addons board which can also be used later for new release announcements.
Yes, I'm one of those leery people :)

If the old fork of Greasemonkey is hosted on the Pale Moon addons site as an external link to his GitHub page, then so should mine be as well, since I'm more comfortable of it this way.

I do use this particular forum post as a thread about my extension, along with the Issues tab on my GitHub and my Discussions tab, and I give multiple ways for anyone to communicate with me.
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
moonbat
Knows the dark side
Knows the dark side
Posts: 5816
Joined: 2015-12-09, 15:45

Re: Working on a Greasemonkey fork for Pale Moon

Post by moonbat » 2026-04-16, 09:50

Your extension for all intents and purposes is masquerading as the old one thanks to not changing the ID. Worse, since you've copied the same external update mechanism that the old one had but to your own update URL as I can see in install.rdf, this can result in people still using the old one incorrectly seeing yours as an upgrade for it, which it is not - as you are not the original developer and this would result in Janek's extension getting updated to yours.

There was a similar controversy years ago with JustOff that led to his expulsion from the forums together with his addons - he changed his extensions from being hosted here to using an external update URL without informing users of the change, and that results in malware like behavior.

tl;dr - you need to change the extension id (don't use name@something - it has to be a proper UUID that you can generate with tools locally or even online) to signify that this is your own separate work with no extension level confusion with what it's based on.

AFAICT external extensions are a special case on the addons site and can't be managed by the developer using an extension site account (separate from the forum). RealityRipple can confirm, he has several externally hosted extensions here. If not, I'll be happy to publish your extension here once you've made the changes.

This is how Janek's external extension looks like in the editor, I will make a separate entry called Greasemonkey for UXP with your details:
phoebus - greasemonkey Janek.png
You do not have the required permissions to view the files attached to this post.
"One hosts to look them up, one DNS to find them and in the darkness BIND them."

Image
KDE Neon on a Slimbook Excalibur (Ryzen 7 8845HS, 64 GB RAM)
AutoPageColor|PermissionsPlus|PMPlayer|Pure URL|RecordRewind|TextFX
Jabber: moonbat@hot-chili.net

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-16, 10:56

moonbat wrote:
2026-04-16, 09:50
tl;dr - you need to change the extension id (don't use name@something - it has to be a proper UUID that you can generate with tools locally or even online) to signify that this is your own separate work with no extension level confusion with what it's based on.
I do agree with you. My project started as a personal use of an updated Greasemonkey fork, but it kept getting more distant from the old fork, the more updates I release, making it act almost completely different from the old fork that it was based on.

Since It's not my intention to introduce any type of maleware-behavior in my extension, I will be changing the UUID on the next release. I'll first have to see if there's any way in backing up the userscripts, not only for me, but for the other users of my extension.
moonbat wrote:
2026-04-16, 09:50
AFAICT external extensions are a special case on the addons site and can't be managed by the developer using an extension site account (separate from the forum). RealityRipple can confirm, he has several externally hosted extensions here. If not, I'll be happy to publish your extension here once you've made the changes.
That makes sense, since the addons site would only be responsible in adding an external link of GitHub into the site, and everything else would be on the developer's responsibility on the other site. I'll keep in touch, once I make the changes on the next release.
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-17, 17:30

Quick question: Is there someone here that would hate my extension not being 100% faithful to how Greasemonkey should look and act like (Think of the current upstream version of Greasemonkey on Firefox), or do you guys just care about the extension being compatible and effective, no matter how different it'll look like in comparison to the old fork of Greasemonkey (I call Janek's fork old now, since I maintain a modern fork of Greasemonkey)?

Been having some ideas of porting in some features from other userscripts managers, like the import/export feature that behaves like how it behaves on Tampermonkey, possibly do something about the userscript editor of greasemonkey, since a lot of people are expressing their dislike of it.

I have also noticed that the old fork of the extension does not have the import/export mechanism and does not show all userscripts' homepages, unlike Violentmonkey that has 7 levels of fallbacks that would display the homepages of all userscripts - I'm adding both of these 2 features in my fork and it'll be present on the next version of 3.6.0, but I feel like it's not going to help much, since the next version is going to have a different UUID, which means nobody is really going to utilize these 2 features, when it's needed the most.

Should I release a transitional version, where it makes it easier for people to utilize these 2 features under the same UUID, before migrating to 3.6.0 under a different UUID, but they'll be able to bring back all the userscripts that they have been using?
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
UCyborg
Keeps coming back
Keeps coming back
Posts: 885
Joined: 2019-01-10, 09:37
Location: Slovenia

Re: Working on a Greasemonkey fork for Pale Moon

Post by UCyborg » 2026-04-17, 19:29

moonbat wrote:
2026-04-16, 09:50
tl;dr - you need to change the extension id (don't use name@something - it has to be a proper UUID that you can generate with tools locally or even online) to signify that this is your own separate work with no extension level confusion with what it's based on.
I HATE HATE HATE this! Great way to not know what half my extensions folder does. And the stupid thing doesn't accept extension if its file is not named after id... Another thing to add to my endless list of frustrations with modern web browsers, LOL!

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: Working on a Greasemonkey fork for Pale Moon

Post by sinfulosd » 2026-04-17, 19:52

UCyborg wrote:
2026-04-17, 19:29
I HATE HATE HATE this! Great way to not know what half my extensions folder does. And the stupid thing doesn't accept extension if its file is not named after id... Another thing to add to my endless list of frustrations with modern web browsers, LOL!
Yeah, I also hate it as well, but I accept that it's a process that I have to go. My extension is becoming a thing on its own, instead of being just an upgrade of the old fork of Greasemonkey, so I have to change the UUID anyways.

I'll try to make it up to everyone by releasing a version that has the same UUID as Janek's that would have the mechanism of import/export, so that it wouldn't be inconvenient to switch to a UUID of mine.
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0