I had some trouble getting your script to run on Firefox / Greasemonkey. It turns out that I needed to replace this line:
// @require http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js
with:
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js
// @require https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js
With this change, the script seems to work on Firefox (although I haven't properly tested all the features yet).
I also noticed a few issues with the options pop-up:
The pop-up appears in a weird location, partially off the screen. I managed to fix this issue by changing the
style
attribute from the originaldisplay:inline-block; position:fixed; margin:auto; top:50%; margin:-100px 0 0 -150px; z-index:2; background-color:gray; color:white; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px;
to:
display:inline-block; position:fixed; top:10px; left:50%; width:500px; margin-left:-250px; z-index:2; background-color:gray; color:white; padding: 10px; border-radius: 15px;
Having the checkboxes at the end of the option descriptions is somewhat ugly awkward; they'd look nicer and be easier to click if they were at the beginning. You could also simplify the HTML by nesting the checkboxes inside their labels, as in:
<label><input type=checkbox id=id checked> Text </label><br>
Every time I open the settings, all the checkboxes get checked. It would be much better to have them retain their previous state.
I don't see any particular reason why I shouldn't be able to disable all the features, if I want. That extra check seems just plain useless to me.
Also, the "add features" link injection doesn't seem to work on the fancy new user profile currently in testing on meta.SE. You might want to add compatibility for that, especially since it'll likely be rolled out network-wide sooner or later.