notes from /dev/null

by Charles Choi 최민수


22 Jan 2026

Announcing Casual EWW

I confess to taking a perverse delight in browsing the web from within Emacs. The EWW package that comes with the standard distribution of Emacs makes this possible. On paper, Emacs really has no business trying to support web browsing with its laughably threadbare support for layout and typography, much less its lack of support for multi-threaded operation. In practice though, I’ve found browsing the web from Emacs to be surprisingly useful. To enhance my usage of EWW, I wanted easy discovery of its features via Transient menus. With that motivation, I set out to build Casual EWW, now available on MELPA in the Casual v2.13.0 update.

EWW is a minimal browser in that no CSS nor JavaScript is supported. As such, EWW is best suited for websites that treat HTML as a document specification and not as a sub-system to a web application.

Features of Casual EWW include:

  • Support for in-page paragraph and link navigation.

  • Key bindings that match Safari and Chrome on macOS.

    In particular M-[ and M-] for historical navigation and M-l for entering a URL to open are supported.

  • Menus for toggling and configuring the display of a web page (font, colors, images).

  • Support for document navigation.

    This feature distinguishes EWW from other conventional web browsers for navigating websites that support the rel attribute. For example, Texinfo uses the rel attribute in generating HTML output.

Observations and Closing Thoughts

Some observations in using EWW:

  • The implementation of bookmarks in EWW is… underwhelming.

    Note that EWW bookmarks are a different implementation from a regular Emacs bookmark. The EWW bookmark list does not provide a means for ordering a bookmark, much less for sorting and editing them.

  • The eww-readable command (bound to R) is your friend (when it works).

    EWW provides a “reader” mode via the command eww-readable which attempts to display only the main content of a web page. If successful, I’ve found it to vastly improve EWW’s utility.

    Setting the variable eww-readable-urls to include documentation from https://developer.mozilla.org will break the command css-lookup-symbol (accessible via Casual CSS) as that command expects the web page to not be in reader mode.

For Emacs users, the utility of EWW is very much a YMMV thing as it can overlap the features of other packages like the Info reader and Elfeed. Regardless of what is preferred, it is assuring to know that web browsing (however limited) is supported within Emacs.

Casual EWW is now available on MELPA in the Casual v2.13.0 update.

emacs

Past Articles

6
JAN
2026

Announcing Casual HTML & CSS

Announcing Casual support for the HTML and CSS editing modes in Emacs.

read more
4
JAN
2026

Moment - Thursday January 01, 2026 00:06 PST

Photo taken Thursday January 01, 2026 00:06 PST.

read more
30
DEC
2025

F16 F17 F18

Binding the function keys above the number pad to window management has been a total win for me. Perhaps it might be the same for you.

read more
17
DEC
2025

Export Org to Markdown with the Clipboard

A companion post to my last one on importing Markdown to Org, but the other way around.

read more
4
DEC
2025

Import Markdown to Org with the Clipboard in Emacs

Import Markdown from other apps into your Org files easy.

read more
24
NOV
2025

Announcing Casual CSV

If you need to work with CSV files in Emacs, Casual with csv-mode can help. Announcing Casual CSV, now available in the Casual v2.11.1 update.

read more
13
NOV
2025

Thoughts on Funding Free Software Development

“I don’t like to dream about getting paid.”

read more
3
NOV
2025

Prototyping a Toolbar UI for Edebug

Where a prototype toolbar UI for Edebug is made available for public scrutiny.

read more
30
OCT
2025

Announcing Casual Ediff

Where an earnest attempt is made to improve the usability of Ediff for sensibilities in 2025.

read more

Page 1 / 17   >

 

AboutMastodonBlueskyGitHub

Feeds & Tags
Get Scrim for macOSGet Captee for macOS

Powered by Pelican