Hooray! NoSquint is now available for Firefox 3.0b4. For the uninitiated, NoSquint makes text zoom (now full-page zoom) work the way it’s supposed to: it remembers and automatically re-applies site-specific page zoom levels.
Alas, the Iceweasel 3.0b4 package in Debian experimental is currently busted, but Swiftweasel works well.
For other extensions that haven’t been updated yet, you can twiddle some hidden preferences and try them. The old version of NoSquint didn’t work, due to the massive changes in zooming — hence my excitement about the official update — but many other extensions work fine. Search Keys, for example, doesn’t advertise itself as compatible with Firefox 3, but it works fine after twiddling those hidden bits.
Finally, Toolbar Buttons has been updated to include buttons for controlling Firefox 3’s full-page zoom. Toolbar Buttons + NoSquint: it’s a match made in heaven.


‘the uninitiated’ thank you.
I’ve got myopia and typing control++ on every-page is such a chore.
Comment by tabbot — Saturday, March 29, 2008 @ 2:02 am
Doesn’t Firefox 3 already remember site-specific zoom levels?
Comment by Rahul — Saturday, March 29, 2008 @ 2:40 am
@Rahul, I think so. First I was annoyed that some pages came pre-zoomed, then I remembered I had zoomed in earlier myself. :)
More useful hidden prefs in Firefox 3 beta 4:
browser.zoom.full = false // restore the old zoom behaviour (text only, not images)
browser.zoom.siteSpecific = true // I suppose this remembers the per-page zoom levels
Comment by 8jean — Saturday, March 29, 2008 @ 6:20 am
Yea. I’ve been running the nightlies for a while and they seem to apply changed zoom levels to the entire domain. Does NoSquint add additional features?
Comment by Ryan Tomayko — Saturday, March 29, 2008 @ 8:29 am
8jean: As of beta 4, you don’t need to set browser.zoom.full in about:config. Just toggle View > Zoom > Zoom Text Only.
Comment by Jonathan Rascher — Saturday, March 29, 2008 @ 11:38 am
NoSquint does add additional features. It allows you to specify the default zoom level for new sites, control the percent change when you increase or decrease the zoom level, and displays the current zoom level in the status bar.
Comment by Mark — Saturday, March 29, 2008 @ 11:57 am
I tried out swiftweasel based on your mention of it here. Good idea in theory, although I’d like to see figures that -O3 was a better idea than -Os for modern machines. However, in practise, the shell script wrappers appear to be a total train wreck:
$ swiftweasel
/usr/local/swiftweasel/swiftweasel: line 59: cd: /home/butters/.mozilla: No such file or directory
cp: cannot stat `/home/butters/.mozilla/firefox’: No such file or directory
mv: cannot stat `firefox’: No such file or directory
mv: cannot stat `swiftweasel’: No such file or directory
/usr/local/swiftweasel/swiftweasel: line 64: cd: /home/butters/.mozilla/swiftweasel: No such file or directory
awk: cmd. line:1: fatal: cannot open file `profiles.ini’ for reading (No such file or directory)
mv: missing destination file operand after `tmp1′
Try `mv –help’ for more information.
cp: cannot stat `./tmp1/extensions’: No such file or directory
cp: cannot stat `./tmp1/*’: No such file or directory
mv: missing destination file operand after `tmp2′
Try `mv –help’ for more information.
no settings directory check file creation bypassed
Comment by Jon — Monday, March 31, 2008 @ 5:44 am
Jon: It’s not so much -O3 vs -Os that is the win as is compiling for your modern CPU architecture instead of the 486.
Comment by James — Monday, March 31, 2008 @ 7:57 am
I _still_ find that a good userContent.css stored locally and applied globally to all websites is my best insurance against crap web design and gawdawful fontification. Mine starts with disabling any large/small font scaling (use H-tags for your headers, damnit!) and making a hard specification of the preferred font and face. Bonus is that you can disable a hell of a lot of standard banner sizes as well. I add a few nice plusses like highlighting links on hover and bright-highlighting on click, and adding tags to various media types, particularly email, PDF, and javascript links.
Comment by Karsten M. Self — Tuesday, April 1, 2008 @ 10:54 pm
Karsten: try Stylish instead. It’s about a million times more convenient than twiddling
userContent.cssand restarting, over and over and over and over, for every change.Comment by Aristotle Pagaltzis — Monday, April 7, 2008 @ 10:28 pm
I also find it helpful to use these two bookmarklets:
javascript:t=true;d=document;c='click';g=getComputedStyle;b='white';p=d.createElement('p');q=p.style;q.position='fixed';q.top='42%';q.left='32%';q.width='36%';q.height='16%';q.border='1px%20black%20solid';q.backgroundColor=b;q.color='black';q.padding='0.5em';q.textAlign='center';p.innerHTML='Click%20a%20block%20of%20wimpy%20grey%20text%20to%20turn%20all%20text%20that%20colour%20a%20nice,%20readable%20black.';d.body.appendChild(p);h=function(e){c=g(e.target,'').getPropertyCSSValue('color').cssText;n=d.getElementsByTagName('*');for(i=0;i<n.length;i++){if(g(n[i],”).getPropertyCSSValue(’color’).cssText==c){n[i].style.color=’black’}};removeEventListener(c,h,t);p.parentNode.removeChild(p);clearInterval(o)};addEventListener(c,h,t);void(o=setInterval(function(){if(q.backgroundColor==b){q.backgroundColor=’yellow’}else{q.backgroundColor=b}},1500));
To turn text completely black rather than some shade of gray as some websites would have you try to read through glare.
javascript:t=true;d=document;a=addEventListener;r=removeEventListener;n='click';v='keypress';s='30em';b='white';p=d.createElement('p');q=p.style;q.position='fixed';q.top='42%';q.left='32%';q.width='36%';q.height='16%';q.border='1px%20black%20solid';q.backgroundColor=b;q.color='black';q.padding='0.5em';q.textAlign='center';p.innerHTML='Click%20a%20block%20of%20text%20until%20as%20much%20of%20the%20page%20as%20you%20want%20is%20a%20readable%20width.%20Then%20ctrl-click%20if%20you%20want%20it%20centred.%20Press%20esc%20to%20finish.';d.body.appendChild(p);h=function(e){if(e.ctrlKey){c(e.target)}else{m(e.target)}};a(n,h,t);f=function(e){if(e.keyCode==27){r(n,h,t);r(v,f,t);p.parentNode.removeChild(p);clearInterval(o)}};a(v,f,t);m=function(e){u=e.style;if(e.parentNode.style!=undefined){if(u.width==s){m(e.parentNode)}else{u.width=s}}};c=function(e){z=e.parentNode;if(z.style!=undefined){if(z.style.width==s){c(z)}else{e.style.margin='0%20auto'}}};void(o=setInterval(function(){if(q.backgroundColor==b){q.backgroundColor='yellow'}else{q.backgroundColor=b}},1500))
To make blocks (and then parents of blocks) exactly 30em wide and optionally centred.
Comment by Frankie Robertson — Tuesday, April 8, 2008 @ 10:10 am