The Complete Computing Environment

Web Browsing

(provide 'cce/web-browsing)

I am not a fan of the state of web user agents in 2020. The web has become a full-fledged application platform and users have largely been given a short end of that deal from a UX perspective. A thousand designers and UX professionals employed by the tech companies that design modern hardware and software have, in my opinion, begun to behave like cowards. These people and the companies funding their work aren't acting with forward intent, instead content to build systems that parrot the design languages of two or three large companies housed in Silicon Valley.

Those two or three companies, meanwhile, have their own conflicting and uninteresting views of what a computer interface can and should look like. They're designed to be consumed through one or two very narrowly defined formfactors, and good composition is not heavily invested in. As long as you speak our design language and interact with our tools, your users will be content and we can monetize them in peace.

And of course, the modern user wants to be content. Western, particularly American, society has increasingly suckled on the teat of corporate design philosophies for generations now, and we have little skill or interest in building tools and interfaces that suit us. We buy microwaves and instant pots because we're told it's the simplest way to cook, we use the default tools our phone comes with because that's what works best with the rest of our stuff.

This is, of course, the core of what drives my energy in to CCE, to show what a modern tool set can look like and provide. In this regard my opinions and solutions surrounding the web browser are no different.

The basics are as follows: A lightly customised Firefox installation [A Basic Firefox Installation], running a well-vetted collection of add-ons. Firefox Sync is used to transfer settings between devices, and a few user scripts and custom stylesheets [A Custom Firefox User Chrome] are used to wrangle the system in to play. On top of that, I use EXWM to provide a set of custom vim-style modes to Firefox [Evil, EXWM, and Firefox walk in to a bar], allowing me to switch between movement actions on the letter-faces and full input otherwise. KDE Plasma has a Plasma Browser Integration as well which I use and rely on.

I used to use the Emacs Web Wowser (EWW) as a way to browse the web, and it's a nice one in a lot of ways – it's simple, it's tied in to the rest of my ecosystem tightly, and it can't get in to a lot of trouble. It doesn't have javascript, or a real CSS engine, let alone any sort of support for aggressive fingerprinting or engine exploits. However, it doesn't play well enough with the things that I care about, and having to context switch between two browsers is not fun when there is a free option that is largely free of context-switching already.

I browse to anything that looks like a URL inside of Emacs with SPC u.

(with-eval-after-load 'evil-leader
  (evil-leader/set-key (kbd "u") 'browse-url-at-point))