
How and why I attempt to use Links as main browser - lich-tex
https://dataswamp.org/~lich/musings/links-browser.html
======
minerjoe
I'm a computer programmer, lisper, emacser, vier, etc and I desire every
program that I use daily to be compiled from source so that I can dig in
whenever I need to fix bugs, add features, or just curious how something is
done.

I also highly desire the ability to change the keybindings of any program I
use to be what I want, generally following the VI model.

I also do e-waste collection and pride myself on being as fast or faster than
others using 10+ year old computers (writing this on my main laptop - a
Thinkpad T60).

So with that lead-in, a few months ago I switched to this laptop and had a
glitch getting X to start so I decided to push the envelope as far as I can
running on the framebuffer, hence "links -driver fb".

The web has gotten slower and slower over the years and while there are some
new kids on the block such as the next browser [1] that should give me what I
need on X, links has been a win over and over, so far.

No code to share yet, but I finally got (for %95) of website, the browser of
my dreams.

Lightning fast. It will fetch and render almost any page in less than a
second, but one thing it was missing was some customability and expandability,
hence the natural move to embed guile. So I now have a lisp that is my browser
and I am in the process of exploring what that means. Full keyboard control,
for everything. VI bindings. A cache from heaven that remembers everywhere
I've been and never reloads unless I tell it. I can fly around history like
you've never seen.

Anyhoe, happy hacking!

[1] [https://nyxt.atlas.engineer](https://nyxt.atlas.engineer)

~~~
wishinghand
Off topic here but this line:

> I desire every program that I use daily to be compiled from source so that I
> can dig in whenever I need to fix bugs, add features

For those who alter software they didn't write, how do you maintain those
changes? I assume pull requests for bug fixes to the maintainer's repo, but
what about mods? Do you run a diff during every update?

~~~
pwdisswordfish2
Links is relatively small and does not change that often. I just save patches
I make for different versions.

I am not really keen on software that is 1. large and 2. changing frequently.
For example, there are no "updates" when using links. I read the links
changelog and do a diff before I decide to upgrade to the latest version.
Sometimes I will continue to use older versions. Depends on the changes.

In general, if the software is relatively small and more or less "finished",
then, for me, it is more amenable to making changes. When I look at the
software I use, it appears I consciously try to choose software that meet
those criteria; the most favoured programs all fit that description.

------
indymike
The web browser was originally was hyperlinked documents glued together with
URLs. The browser has turned into a platform for apps that use a document
paradigm for the UI... complete with built in database, graphics, and deep os
integration. It's been huge leap in reducing cost to build, distribute, learn
and use apps. The original use case of just documents is probably approaching
being just and edge case.

~~~
heavenlyblue
What is deep OS integration in browsers?

~~~
todd3834
First few things that come to mind:

    
    
      - Access to Camera & Microphone
      - Access to USB devices
      - Push Notifications
      - Geolocation
      - Bluetooth
    

"deep" is probably the subjective term here.

~~~
methodsignature
Printer dialogs in browser [_we hates it_].

------
ablanco
A little offtopic, but interesting nontheless

 _Surfraw (Shell Users Revolutionary Front Rage Against the Web) is a free
public domain POSIX-compliant (i.e. meant for Linux, FreeBSD etc.) command-
line shell program for interfacing with a number of web-based search engines.
It was created in July 2000 by Julian Assange_

[https://en.wikipedia.org/wiki/Surfraw](https://en.wikipedia.org/wiki/Surfraw)

~~~
appleflaxen
Your link is a fascinating bit of history and perspective.

Thanks for including this here.

------
kbrosnan
No mention of Browsh yet. It is a neat hack bringing the capabilities of
modern browsers to command line browsers.
[https://www.brow.sh/docs/introduction/](https://www.brow.sh/docs/introduction/)

> Browsh is a purely text-based browser that can run in most TTY terminal
> environments and in any browser. The terminal client is currently more
> advanced than the browser client.

> The browser client, somewhat confusingly, renders simple HTML or plain text
> that itself was parsed by Browsh running inside another browser. The point
> being that the HTML or text that Browsh outputs is extremely lightweight. As
> of writing in 2018, the average website requires downloading around 3MB and
> making over 100 individual HTTP requests. Browsh will turn this into around
> 15kb and 2 HTTP requests - 1 for the HTML/text and the other for the
> favicon.

~~~
codemusings
I checked it out. It is amazing. However am I correct that it's still mostly
driven by mouse input? I couldn't find any other keybindings to navigate a
website.

~~~
efreak
Yes. It's a Firefox plugin.

------
AdmiralAsshat
Someone else achieved a similar effect with readability-cli, which uses
Firefox's Reader Mode library to pull the content text out of an article and
output it into your terminal:

[https://gitlab.com/gardenappl/readability-
cli](https://gitlab.com/gardenappl/readability-cli)

~~~
divbzero
A different but related approach is to use Safari’s Reader by default on all
sites. You can then disable Reader site by site if needed.

~~~
cxr
I remember when Arc90 first unveiled Readability (now "Reader Mode" in several
browsers), folks were ostensibly right on board. One Mozillian praised it
enthusiastically on her blog. I pointed out that the problem Readability
solved was directly attributable to the lack of empathy by web site operators
for their visitors—choosing instead to prioritize the operator's "expression"
over the visitors' needs and best interests. It should go without saying that
the template for her own blog hardly let it stand as an example of a
minimalist jewel of legibility.

I'm also surprised at how poorly Reader Mode fares with "pages" served as
text/plain. Is there even a case to be made against text/plain documents being
shown with Reader Mode enabled by default if the heuristics can give it a high
enough confidence score (with an opt-out escape hatch back to tiny monospace
black-on-white for whomever wants it)? Eventually, we could do the same for
very simple HTML pages like those found on cr.yp.to or danluu.com. I'd wager
we could eliminate a huge part of the "Website Obesity Crisis" if unstyled
pages were attractive by default.

~~~
chipotle_coyote
True plain text -- as opposed to something like Markdown or another "plain
text markup" format -- is hard for a reader mode, because you're going to have
to put some effort into deducing the structure of whatever document you're
looking at and that could be highly idiosyncratic from author to author. I
don't think that's necessarily a reason not to do it, of course, but I can
imagine it's why it's not high priority -- reader mode is already having to
deal with all the ways modern web sites have found to make HTML highly
idiosyncratic.

------
disillusioned
> CSS First, I want to focus on ‘destruction’ of CSS. As Links does not
> support modern CSS it renders most of the internet as-is, and will only
> contain images (on which I will write later). CSS causes the internet to
> become a baroque set of arbitrary design decisions, and does not contribute
> positively to the general experience. Links (after 2.19) allows me to pick
> my own font, my own background/foreground/url color. Thus, I have a uniform
> experience. In that I already visibly save time/energy/brain processing
> power, etc.

This is kind of like the philosophy behind Soylent, but for browsing the web,
rather than sustenance.

~~~
HomeDeLaPot
And most people aren't keen on eating Soylent for every meal...

------
julianeon
The 95% as good version of this, for most people, is just to disable
JavaScript, then set the same colors & font for every website.

------
varbhat
Links is unfortunately not enough for modern web. I have installed links ,
dillo browser , w3m , netsurf in my device and i ocasionally use them but
modern web is moving away from these browsers.

~~~
pbhjpbhj
When I was doing web dev I'd always test with Links as one of my accessibility
checks. Presumably that's common?

~~~
afiori
Many sites are not even tested on firefox

~~~
efreak
Many sites are seemingly not tested at all. I recently tried to open a concert
site and couldn't get _any_ details on a concert, because their PDF viewer was
buggy; I tried on both Firefox and chrome using three different computers, as
well as my phone. I wish you could just use the browser's built-in PDF viewer
in an iframe (or better yet, don't use PDFs in the browser)

~~~
epse
You can just embed the browsers pdf viewer... It doesn't work on mobile
browsers generally, but with some hacking you can get it to fall back to a
download link.

------
Ijumfs
I use eww in emacs for a lot of browsing. It copes extremely well with the
modern web.

~~~
mrspeaker
Same here. If Emacs is your operating system, then it's such a natural
extension. And if a site doesn't work in Eww, then I consider it shoddy
craftsmanship and refuse to open it in Firefox - so it's an excellent tool to
stop procrastination! Pity HN works fine.

~~~
oehtXRwMkIs
That mentality is so funny to me. I felt the same regret with Steam Proton
suddenly allowing me to procrastinate with games I hadn't been able to play
before.

------
necovek
I see people have proposed either Safari's or Firefox' Reader modes as a stop-
gap.

I know at some point Firefox offered an ability to define custom CSS to use
for all the pages, but I guess that's hidden underneath some about:config
options today — I can only see the option to disallow use of custom fonts by a
web page. I would like to see someone implement a bare-bones CSS for the
modern web that's easy to customize using these browser features.

It seems what I am thinking about is userContent.css:
[http://kb.mozillazine.org/index.php?title=UserContent.css&pr...](http://kb.mozillazine.org/index.php?title=UserContent.css&printable=yes)

~~~
extra88
Yes, being able to specify a user stylesheet was common in early browsers. Now
there are extensions to provide a GUI and to manage different styles for
different domains.

It was always somewhat difficult to maintain custom styles beyond things
browsers still let you set like fonts but it’s harder now because it’s so
common for developers to not use appropriate semantic HTML.

~~~
necovek
It's funny you call that "early browsers": from the perspective of today, you
are absolutely right! I just remember CSS getting introduced (was it late
90s?) and think of things like Netscape 4.0 as "middle age browsers" (with 3.0
ending the early age — I am sure others would call that a middle age browser
too, but I did not get to experience Mosaic and such), but I think I need to
recalibrate my sense of history here :)

------
cassepipe
I really wish there was a text only browser that would render the web
similarly to Firefox reading mode. All the lynx, links, elinks are not very
user friendly and a bit ugly alas. I hear some of them have a Vim mode for
navigation but I did not manage to use it reliably either.

~~~
necovek
A dozen or so years ago, w3m used to be cream of the crop (as far as JS
support went, at least). What happened to it?

~~~
h1x
It's still doing good:
[https://github.com/tats/w3m](https://github.com/tats/w3m)

I am a very happy using w3m every day. Just occasionally there is a need to
use a graphical browser.

There is no JS support though. Don't think there ever was.

------
yesenadam
I was puzzled throughout why "a uniform experience" is something desirable.
Totally puzzled.

It reminded me of what McDonalds "restaurants" try to offer. I put
"restaurants" in quotes because noone thinks of them as proper restaurants.
Something about the uniform experience maybe? I guess before that every site
had its own unique menu and style, that took much longer to serve..

Does the author also prefer talking to people who wear face-masks? Do they
shun syntax highlighting? Why take all the fun out of life? Why live like a
Unix tool, taking in a plain text stream?

~~~
Shared404
Not the author, but...

> Does the author also prefer talking to people who wear face-masks?

Right now, yes, yes I do.

> Do they shun syntax highlighting?

Syntax highlighting performs an actual service, as opposed to being cruft.

> Why take all the fun out of life?

This isn't taking the fun out of life, it's making a tool more useful.

> Why live like a Unix tool, taking in a plain text stream?

See above.

~~~
yesenadam
>> Does the author also prefer talking to people who wear face-masks?

> Right now, yes, yes I do.

Sorry, it seems I didn't make my point clear enough. Also not sure you're not
joking. I just meant that if "a uniform experience" is good, having everyone
wear a mask (at any moment in history, nothing to do with virus) will make
talking to people more uniform and thus better.

~~~
Shared404
> Also not sure you're not joking.

I will admit that line was a bit tongue in cheek.

It's not that a "uniform experience" is better in every instance. It's more
that a tool whose purpose is to convey information is more efficient when you
don't have to deal with formatting that may or may not interfere with
comprehension.

------
haolez
I'm a weird computer nerd. When I'm working in my frugal environment (with
links, i3 and whatnot) and I switch to something mainstream (e.g. Windows 10),
I get a feeling of relief.

However, when I switch back from the mainstream to the frugal environment, I
also get the same feeling of relief.

In the frugal environment, I feel very productive and creative. In the
mainstream environment, I feel that I have more cognitive bandwidth to just
get stuff done.

Anyone out there feeling the same?

~~~
fouc
Perhaps you can analyze this a bit more, I have no idea if you also tile in
windows or if you have a bunch of random window sizes floating around the
desktop or if you full screen every window etc. Or is it a difference in font
quality, scaling, resolution? Or is it a difference in things just working,
less time spent tweaking config and dealing with issues?

Tiling in i3 must feel somewhat constraining after a point, maybe experiment
with switching between two different modes/WMs?

~~~
haolez
I don't do anything to my Windows. It's mostly vanilla.

I think it has some thing to do with the loneliness of having a very
customized environment. It's good, but when you work in a mainstream
environment, it feels like there is a lot of energy being put by others into
the same environment, which (sometimes) will get you high quality defaults and
save you some time.

------
fierarul
We like ascetics going in the wilderness to live in caves. So, without
kidding, go you! But some screenshots of that would have helped the article.

I wonder if the Stallman setup of getting emails wouldn't be about the same
given the amount of proxies used.

I actually had an intern implement something like this long ago. We had a web
crawler and what better way to test it than to hook it up to email then
rewrite links so it emails them too. It was OK for a few days.

~~~
horsawlarway
Do we like them, or do we use them as helpful reminders to not take the
luxuries of our modern times for granted? (with a heap of respect for forgoing
them thrown on top)

I also find this comment deeply ironic given that the post argues against
images on the web, but screenshots would have helped.

~~~
necovek
The post argues against images on the web which are "advertisements of
content" and "made to take over your attention and again". A screenshot of how
a popular page is experienced (eg. HN: I wouldn't expect that to be bad at
all) here would be _content_ , I think.

~~~
horsawlarway
The post argues for turning images off. Period. Because they are not useful
and break the author's ideal "uniform" web page. He then mentions he _might_
turn them on for sites that are useful (like wikipedia). He even explicitly
states that he thinks that his view will be a giant controversy.

How would you possibly know if the images on this page would be informative
content, or advertising attention grabbers, when they're all turned off?

~~~
necovek
Perhaps it's about prejudices we have when we interpret the content we read.

I get a dislike for "decorational" images like a photo of a random bridge over
a river (c) AStockPhotoSite when talking about building a new bridge in the
town: that ain't content. An illustration of the bridge to be, an
architectural depiction, would be considered content.

Wikipedia seldom has images of the former type: they are all there to expand
the content being represented.

So, I've read the article according to my biases, and I do not see such a
strong opinion against images: to me it reads not as if they might, but rather
that they do enable them on Wikipedia.

------
RcouF1uZ4gsC
For anyone else confused, this is not talking about Lynx[0] which is a text
mode browser, but Links[1] which is a GUI browser (same pronunciation,
different spellings).

0\. [https://lynx.invisible-island.net/lynx.html](https://lynx.invisible-
island.net/lynx.html)

1\. [http://links.twibright.com/](http://links.twibright.com/)

~~~
mkl
Links has a text mode as well, but it sounds like OP is using the GUI mode.

------
jakearmitage
I am still looking for a decent CLI experience to replace my browser. The only
reason I have X11 is Firefox, and of course, everything that comes with it:
Slack, MS Teams and JIRA.

I dream of not having to deal with X and Gnome ever again.

~~~
anthk
[https://wiki.bitlbee.org/](https://wiki.bitlbee.org/)

------
seba_dos1
I have used links-x11 as my main mobile browser back around 2009-2012 when I
used it on Openmoko Neo Freerunner :) It was surprisingly usable back then!

------
joyj2nd
Great. But I wish somebody would get this python based web browser back to
work. I miss it.

[https://en.wikipedia.org/wiki/Uzbl](https://en.wikipedia.org/wiki/Uzbl)

------
auiya
A friend used to work for a porn hosting company doing account maintenance and
general sysadmin. He said that's how he learned how to use Lynx.

~~~
qayxc
Nice story, but Lynx != Links :)

~~~
AdmiralAsshat
Unless of course he's got Lynx confused with ELinks, which I feel like is
bundled with most RHEL/CentOS deployments. I became acquainted with it on a
previous job that included the nightmare of trying to help remote customers
setup printers via the CUPS interface when I only had SSH access to their box.

~~~
fluential
You could do port forwarding...

~~~
pantaloony
Or X forwarding to use a nice(?) GUI printer config tool (or run Firefox or
Surf or whatever) if those are already on the remote machine.

~~~
lvturner
Depends a lot on the connection speed though - sometimes, I've found it's
faster not to go down this route.

------
hitpointdrew
Why wouldn't you use lynx instead of Links?

~~~
every
I've used lynx for almost 30 years but it is simply no longer capable of
rendering the modern web in a useable fashion. It is however highly useful as
a file manager and for stripping and importing web text via -dump. Also the
best available gopher browser...

~~~
hitpointdrew
>rendering the modern web

Maybe the modern web needs to change...not your browser.

------
pwdisswordfish2
I don't just "attempt". Links, preferably no graphics (VGA textmode, no X11),
has been my main browser for over 20 years.

Recent versions of links should remove the DNS prefetch code.

More menu items should have single key shortcuts. For example, Save formatted
document, Flush all caches, Kill all connections and Submit form.

There should be a single key for toggling to html-numbered-links like there is
for toggling to displaying images ([IMG] if no graphics).

------
solumos
I'd love to use a browser like this if I could download an installer. This
download page brings back a lot of memories:
[http://links.twibright.com/download.php](http://links.twibright.com/download.php)

I swear I spent most of my foray into undergrad CS trying to get third-party
software to compile on my machine (i.e. wasting a lot of time).

~~~
smabie
I mean, what's wrong with downloading it with your distros package manager?

~~~
solumos
Well, I would, but I would be nervous about wasting "a lot of time" given the
large-font warning. Have you ever run into the issue of installing something
from an out-of-date package manager repo?

~~~
smabie
That web page probably hasn't been updated in decades. I just downloaded and
ran the latest version of links and it took 5.3 seconds.

------
nsxwolf
"If you want to install Links immediately, proceed step-by-step according to
the following instructions. Otherwise you will waste a lot of time."

First I just tried "brew install links". It worked but built it without
graphics support.

So I bit the bullet and tried to build it myself. Then I got to needing an X
server installed and gave up.

I've grown too impatient and spoiled for this sort of quest.

------
jorbas
In a similar vein, Lynx is probably my most used browser. I use Newsboat[1] as
an RSS reader, set to use Lynx custom keybindings (to make it more VI-like
than the VI setting) when opening links. It works surprisingly well.

[1] [https://newsboat.org](https://newsboat.org)

------
forgotmypwbctbi
links gui is my default browser for opening url on desktop, as much as one can
have that on fedora lxde with wine apps mixed in. (i actually have at least
three "default browsers".)

links gives me a preview of the page in usually under a second, opening a
fresh process and all, on a 5yo budget thinkpad.

as a bonus, twitter refuses to work with links, so even if i am tempted to
open a twitter link, it just gives a 403, and i don,t have to read whatever
mainstream crap is on tv this week.

------
agumonkey
I'd like to have a group / subreddit whatever talking about this topic. And
low fat computing too (I think it fits the view of this article).

Personnally I used dillo a lot, it's so god damn lean and instantaneous.. it's
crazy. I wanted to add sqlite and lua as a scripting language to make it open
to extensions but I got stuck :)

------
xvilka
In theory you can build[1] the text renderer on top of the Servo web engine.
Something like elinks 2.0. It will allow to browse modern Web while being
lean.

[1]
[https://github.com/servo/servo/issues/24162](https://github.com/servo/servo/issues/24162)

------
nojito
Switching to using exclusively reader mode on sites made surfing the web a
much more consistent experience for me.

------
richardwhiuk
Links seems like an odd stopping point. It used to support JavaScript, it
supports images, but only HTML 4.

~~~
Lammy
Serious question, what’s new in HTML 5 that would be useful in text mode? Even
with image support <picture> doesn’t seem like it would be useful since that’s
mainly about handling art direction and media queries and stuff that seems
much less applicable there. Gotta say the idea of <video> implemented with
libcaca does sound really funny though.

~~~
richardwhiuk
Links isn't a text mode browser - I think it will display videos and pictures.

Form controls would be an obvious example of something relevant I think.

~~~
Lammy
I guess I was also confusing it with elinks, whoops. Maybe we should go back
to the days when things were named like “Joe’s Editor”

------
pwdisswordfish2
I rarely give recommendations on anything software-related, but if you are an
AMP-hater who also appreciates text-only websites, try using links to view
some AMP sites. In almost every case I have seen, the result is quite good.

~~~
saagarjha
Now if only we could have that result without AMP.

------
dusted
"CSS causes the internet to become a baroque set of arbitrary design
decisions, and does not contribute positively to the general experience." <\-
Well said.

------
Yuioup
Noscript and pi-hole do a good job of providing me with a distraction free
browsing experience.

~~~
deeblering4
All the more focus for posting to the most distracting site of them all, HN :)

------
Ecco
That page loaded _instantly_ on my PC, even though it was served from the
other side of the planet. And it actually looked pretty good. So much for the
"modern" web…

~~~
pantaloony
Whole page is around 5KB with three requests, one of which is the favicon.
Browsers are fast when you just give them (mostly) regular ol’ HTML. The
network, rendering nutty CSS with animations and gradients everywhere,
rendering SVG, “hero” videos, giant PNGs, putting JavaScript between the
browser and rendering HTML—those are slow.

------
peter_d_sherman
>"Many browsers today are gigantic resource hogs, which are basically VMs for
various web applications..."

 _Other code can run inside of a browser VM as well, including but not limited
to: malware, spyware, surveillance capitalism apps, tracking, and other
privacy-violating code /apps, and with unpatched flaws and zero-days,
privilege escalation/bypass-the-browser-to-run-directly-on-your-OS-code can
run, which can be inception points for worms, viruses, and all other manner of
unwanted software..._

>"On the other hand, Links is a HTML browser."

 _Thank God someone understands the dangers of modern-day browser VM 's!_

>"Links is a graphics and text mode web browser, released under GPL. Links is
a free software.

• Links runs on Linux, BSD, UNIX in general, OS/2, Cygwin under Windows,
AtheOS, BeOS, FreeMint.

• Links runs in graphics mode (mouse required) on X Window System (UN _X,
Cygwin), SVGAlib, Linux Framebuffer, OS /2 PMShell, AtheOS GUI

• Links runs in text mode (mouse optional) on UN_X console, ssh/telnet virtual
terminal, vt100 terminal, xterm, and virtually any other text terminal. Mouse
is supported for GPM, xterm, and OS/2\. Links supports colors on terminal.

• Easy and quick user control via pull-down menu in both text and graphics
mode, in 25 languages.

• HTML 4.0 support (without CSS)

• HTTP 1.1 support

• Tables, frames in both graphics and text mode, builtin image display in
graphics mode

• Builtin image display for GIF, JPEG, PNG, XBM, TIFF in graphics mode

• Anti-advertisement animation filter in animated GIFs

• Bookmarks

• Background file downloads

• Automatic reconnection in case of TCP connection breakdown

• Keepalive connections

• Background (asynchronous) DNS lookup

• Possibility to hook up external programs for all MIME types, possibility to
choose one of more programs at every opening.

• 48-bit high-quality image gamma correction, resampling and Floyd-Steinberg
dithering in all color depths.

• Font resampling (antialiasing) for virtually unlimited pitch range, LCD
optimization of fonts and images."

• Builtin fonts in the executable without reliance on any fonts installed in
the system

• User-adjustable menu, HTML font size and image zoom factor.

• User-adjustable display gammas (red, green, blue), viewing-condition
correction gamma and precise calibration of both monitor and Links on a
calibration pattern

• Automatic aspect ratio correction for modes like 640x200, 640x400, 320x200
with user-adjustable manual aspect ratio correction.

• Support for one-wheel mice (vertical scroll), two-wheel mice (vertical and
horizontal scroll) and smooth scrolling by grabbing the plane with a mouse (no
wheel needed).

• Easy installation, the browser is just one executable and no more files.

My comments: _Thank you for writing Links!!!_

------
simonebrunozzi
Obligatory mention: Lynxlet is Links for Mac OS. Terminal-based, pretty cool
little packaging that does just his job.

[0]: [https://habilis.net/lynxlet/](https://habilis.net/lynxlet/)

Edit: ah, my comment and my appreciation for the simple/straightforward design
is very much in line with Lynxlet's mantainers, see their webpage for more
[1].

[1]: [https://habilis.net/](https://habilis.net/)

~~~
zimpenfish
> Lynxlet is Links for Mac OS.

It seems to be Lynx, not Links (an entirely different browser.)

~~~
simonebrunozzi
Oh my, you seem to be right. My mistake.

