How many web browsers are there, anyway? I remember using Netscape Navigator, and of course the omnipresent Internet Explorer, but until Mozilla showed up on my rader I'd never thought much about the web browser because it hadn't yet occurred to me that there were other options to choose from. Thanks for that, Microsoft... During what I call the Delah Tux period (2009 to 2016) I would learn about and even try some of those other browsers, including Opera, Safari, Konqorer and perhaps a few others I don't remember the names of, but I ended up staying with Firefox because it seemed like the best option for me at the time. I did try "lynx" just to see what it was like, but the novelty wore off rather quickly until I moved into the Void and started using w3m sometime in 2017, and since then w3m has been my default browser.
But over the last two years I've seen more sites go the way of so many others that just don't work in w3m anymore. I can see the top level posts on Reddit, but if there are any replies they simply don't exist in my browser. Github used to work at least enough to let me see the README and even get the URL to clone a repository or download a zip file, but now all I get is this cryptic error whenever I click on a Github link:
gunzip: (stdin): unexpected end of file
I've even read somewhere that Medium stupidly loads its articles as images rather than plain-text, which might explain all the completely blank pages I've stumbled on over the last eight years. This is odd because w3m does support images and I do have them enabled, so I'm betting there's a bit of JavaScript involved. And that's not to mention the dozen or so pages I found in just one afternoon two weeks ago which said that I was being blocked "for security reasons" simply because I have w3m configured to NOT accept any cookies, ever. Somehow that made me look suspicious and triggered some alarms... I guess it's time to find another website to look up the lyrics for my favorite songs, because Genius.com happens to be another Paranoid Android.
## Then Comes Dillo
So I went searching for alternatives and found an article listing more than 20 different web browsers, most of which I've never even heard of, and somewhere on that list was Dillo. The timeline is blurry but I do remember trying Dillo sometime before the end of Delah Tux, and at the time I was not impressed because it looked like it would be right at home on Windows 98, didn't support JavaScript and hence wouldn't work with sites like YouTube and Facebook. In short, I thought it was ugly and useless.
But I wasn't willing to go back to using a gigantic second system just to look at some plain-text, and I really didn't like what the other options on that list were offering. So I pointed w3m to the home page of Dillo and was quickly excited by everything it was offering, and also what it wasn't. The most important part is that it supports images and also CSS, but NOT JavaScript... I had to have it, and as of this writing the latest version is 3.2.0 which was released in 2024, and FreeBSD 14.2 happens to include it in the repository.
Now even more excited, I quickly installed it and was surprised to find the UI still uses that ancient Windows 98 theme, only now it's almost unusably tiny... How tiny, you ask? Well I grabbed a ruler and started measuring things just to make sure the point is made in the most clear and concise fashion.
## Mine is Bigger
I'm nearsighted but almost never wear glasses because I spend most of my time on a computer and seem to get by just fine without them. When my daily driver was a real serial terminal emulator plugged into an 8" 1024x768 display, it was perhaps the smallest thing I could tolerate for an 80x30 terminal using 8x16 fonts. The Lenovo T490 with its 14" FHD display is a different story though, so I configured st(1) to give me a nice 80x30 terminal window which measures just a smidge over 8.25" diagonally. It's enormous compared to the default terminal on AVLinux running on the same machine, but I think it's just right.
But even if I was wearing glasses, the default Dillo window was only 6.25" diagonal, or 4 7/8" wide and ~3 7/8" tall. That's not a terribly small window, but the fonts were so small I could barely read what was in the address bar! It appeared to be half the size of the font in my terminal, and the tabs may be only as wide as the word "tiny" because they scale with the title length, and they are just 3.5mm tall; the same diameter of a common headphone plug... Oh, and the '?' button on the right is almost impossible to not miss when using that little red tracking nub on a Thinkpad, or the track-pad, or even a real mouse for that matter.
And while I cannot physically measure this with a ruler, for the last eight years I've spent a lot of time in dimly lit rooms with no overhead lighting, windows covered with blankets, and the backlight set to 20% while looking at warm white text in a black window surrounded by a sea of black. I'm accustomed to darkness and prefer to wear sunglasses when I go outside because the modern world is just too bright for my cave-dweller eyes. I tried in vain to turn on "dark mode" in Dillo because it felt like I was about to go blind by this small but surprisingly bright box, only to find that it doesn't have dark mode. In fact the menu is so sparse that it doesn't need to open a new tab to show all the settings, you can find all six of them under the 1/4 inch square 'Tools' button!
Hell, I wish the address bar was 1/4 inch tall because then it might accommodate a larger font which I could actually read without a magnifying glass. Oh yeah, there's also a magnifying glass next to the question mark, but you wouldn't know that until you click on it... if you can.
## Can We Still Be Friends?
It would have been all too easy to just call it quits and delete this seemingly unusable browser, but I knew there must be more than meets the freshly burnt retinas. I started reading the included documentation which can be found by clicking that tiny question mark that is a button on the far right, and this led me to the default config files which I then copied and started to modify.
I was able to change the fonts to be more like my terminal and was even able to change the default window size on startup, but the UI doesn't seem to scale... I was able to make the tabs a bit taller, but aside from the address bar the UI fonts are still too small and apparently cannot be changed. At least colors are customizable, but setting the UI to black means it's now impossible to see the check mark in the Bug Tracker (more on that later).
Changing the background to a less glaring shade of white did help a little, but because I did this in the dillorc file there was no obvious way to just use black because it offers no option for setting the color of the text. However, you can add your own style.css to your .dillo directory, which will then bypass the default CSS of a web page. It wasn't long before the browser looked more like the terminal, much to my delight.
Having gotten used to the vim-like keybindings of w3m and telescope, I had to tinker with the keysrc file to make it just a little more comfortable to use. Slowly it started to feel like a modernized w3m, but again there are limits to what can be customized, and as of right now it seems Dillo will never give me the illusion of not using a GUI application because I still need to use a mouse to click on links.
## How Does It Make You Feel
I like that it uses human readable plain-text files for the config, and even includes example files with all of the options laid out with comments for one to customize it. I like that I can customize the loading of images, and I love that I can change the way pages are rendered using my own CSS style sheet. Miss the "reader mode" from Firefox? Write your own style.css and make it just the way you want.
Even with the default rendering, a lot of pages look much better in Dillo than they do in w3m. I don't actually know squat about CSS aside from the fact that it's as ubiquitous as JavaScript and is what helped make HTML5 so minimal compared to previous generations, because we don't use HTML tags to define page layouts anymore. And I remember what THAT was like because I have written plain old HTML before and it sucked! I might learn a little CSS so I can make better use of it beyond just changing the colors in Dillo.
## How Does It Make You Feel
> "Ummm...."
I like that it includes a bug tracker in the lower right corner. The presence of a check mark means the page is good and clean with no HTML errors, though in my case I can't see the check mark because the UI is black. But if there are problems the check mark is replaced with a ladybug and the number of errors detected. You would be amazed how often this happens, and on what sites too. Clicking on it will open a new window showing all of the errors and on what lines they occur. The whole point is to stop writing bad web pages by sticking to the standards, and the fact that it's right there in the corner means you now have no excuses to get it right.
On the right below the address bar, you'll find two boxes listing the number of images loaded and the total size of the page, though I doubt this "size" includes the images since I've never seen it report anything more than a few hundred KBs (yet), and from what I've seen there are many pages that seem to have no concept of bandwidth consumption because they often load images that wouldn't fit on my screen at their full native resolution when viewed in w3m... To those designers I say "Hey asshole! Dial-up is STILL a thing, you know!"
## How Does It Make You Feel
> "Seriously? Again?"
Probably one of the coolest things about Dillo is that it uses a protocol called "DPI" to accept plugins, and those plugins can be written in just about any language. There are plugins for Gemini support written in Bash and Go, and there's a Gopher plugin too. I don't know how many Dillo plugins are out there but I'm sure it's more than just the small handful listed on the website. Someday I'll try tinkering with them and might even read about the DPI protocol to see what it's capable of.
When it comes to advertising that something can run on "older hardware", just how old are we talking here? Because Dillo has been ported to Atari and even DOS. That's right, MS-DOS can run the Dillo graphical web browser! Firefox, Chrome and all of their many forks could only dream of such an achievement, and I'm betting it has something to do with the fact that Dillo uses the FlTK GUI toolkit. That alone earns it brownie points simply because I really don't like GTK, Qt nor the many dependencies they drag in. And yes I have tried writing programs for them before, it was not fun.
## How Does It Make You Feel
> "You cannot be serious..."
On this machine, Dillo occupies only 2MB of space when installed, excluding dependencies. It is lightning fast with no startup delay and according to top(1) it spawns only one process with an idle RES memory usage of 21MB, while active memory goes up by only 4MB. Yeah it's a little higher than w3m which idles at 13MB RES when I open my bookmarks page, but in all honesty who cares about less than 10MB of difference when the numbers are this low on a machine with 16GB of memory?
For comparison, I installed Firefox ESR 128.10.0_1 which was a 64MB download and occupied 252MB installed (excluding the many dependencies). There were multiple messages from the package manager which highlight how much a modern web browser really is a second system, and I prepared a timer to see how long it would take to start the first time... I was dumbfounded when it took all of one second between hitting Enter and seeing the window appear on my screen, because I don't think I've ever seen it start that quickly on any system, ever. And no, I'm not using a nice high-speed NVMe drive either! But then this is FreeBSD, so there may be some customizations to the package build, and maybe some things are unique to Linux and missing altogether on FreeBSD. All I know is that it was impressive to see such a large browser start up so quickly.
But then I ran top(1) and saw that it spawned nine(!) processes, seven of which were idling at anywhere from 100MB to 170MB RES, one of them idling at 200MB and one idling at 633MB. Six hundred and thirty megabytes! After a few minutes of doing absolutely nothing the numbers went up by a few MB... After starting for a second time, the largest process was idling at 420MB RES, and there was only one default tab open. The other eight processes were basically identical to the first run in terms of memory usage. The active memory was only 50MB before starting Firefox and had increased by 385MB afterward.
> "Enough with the waffling! Just get to THE POINT already... Brass tacks!"
## The Final Thing On My Mind
Dillo allows me to surf the web WITHOUT all the needless nonsense which comes with the modern web browsing experience, and it looks good doing it too... relatively speaking. It's has been around for 25 years, which means it was first released before the web turned into a WIDE-LOAD. From what I've seen on the official sites (there are two of them) it seems to have a lot of sensible design goals, which does give me some hope, but it almost fell to the wayside in 2016, and one of the core developers has since passed away (my condolences, BTW). Nonetheless, it was revived and even improved a bit, and for that I say thank you because it does have the potential to be a great browser, if it isn't already. Personally I'd rather break my own fingers than to write anything in C++, but after using Dillo for just a couple of days I'm tempted to learn that arcane language just so I can potentially contribute to the project.
So far I like it, despite having limited customization options and the fact that I now need to use a mouse again to click on links. I think Dillo could replace w3m as my default browser, and I do hope it continues to get some love because it might be the only browser in existence that is actually lightweight, does not support JavaScript, is still maintained and can render both images and CSS so modern web pages don't look quite so bad compared to text mode browsers.
We really do need this, and not because nostalgia is cool, but because we _can_ enact change by pushing back against the flood of raw sewage that is the modern web browsing experience. If more people start using Dillo, or at least disable everything that makes a modern memory muncher insecure by default, we might start to see the web go back to how it once was: simple, elegant, focused on actual content and without all the faff... OK, maybe it never was elegant to begin with, but it was a lot simpler and certainly more enjoyable to look at!
And for those who didn't notice, there are multiple references to songs in this particular post. It just sort of happened, so I thought I'd be nice and spoil the surprise. Enjoy :D
* Scorpions - Winds of Change
* Radiohead - Paranoid Android
* The Jesus Lizard - Then Comes Dudley
* Todd Rundgren - Can We Still Be Friends
* Air - How Does It Make You Feel
* The Pineapple Thief - The Final Thing On My Mind
* Rage Against the Machine - Killing in the Name