W3M Rocks
w3m.rocks
w3m.rocks
Using emacspeak with it allows me to keep my eyes on the lab table (in case something goes exothermic too quickly) while still having the ability to pull up references. Same about reading [hearing] HN while in sketchy areas.
The other post about invoking w3m from lynx is worth investigating if You are not familiar with such. Look for "EXTERNAL" in your .lynxrc. I especially like having it "git clone" the page or link I'm on. Reality is that I heavily abuse the EXTERNAL stuff.
I've been noodling about the implementation of adding functionality to w3m and lynx so there is a separate fetch-page func but report a different User-Agent header (eg, "Mozilla"). I've encountered many pages that don't allow access until I change the "lynx-*" header (bastards).
Semi-OT: I'm addicted to lynx's multi-bookmarks feature (26 different bookmark files for easing the organization of your links), and about 15 years ago I wrote some elisp so emacs-w3m has the same functionality (and same bookmarks files).
Wouldn't this feature suffice? https://github.com/tats/w3m/blob/master/doc/README.siteconf
Thank You for directing that to me! And that repo (I've been using the .jp one).
I'm an idiot - I don't know how I missed that.
And yes, w3m rocks.
Might try his to give w3m another shot.
IMHO, the most important thing to improve the user experience is to enable link numbers. With link numbers enabled you can[0] jump to a link by typing the number and then LINK_BEGIN (default '[').
[0]: Technically you can do this without enabling link numbers, but you need count the links yourself.
I like and use w3m a lot (I found the link and posted it here :), but maybe it already has a little too many settings to mess with. Then again, the lynx browser has more than 100, so YMMV.
In this light, Mothra is refreshingly simple: http://man.cat-v.org/plan_9_2nd_ed/1/mothra
I never used mothra, but heard a lot of good things about the plan 9 tools. They got the advantage, that they could start afresh. I'm curious how much work it would be to port it to a *nix system.
The moment somebody sends me a Google Drive link (about three times a week), w3m goes back on the shelf and I have to pick up a modern standard-compliant browser.
Extreme positions and interpretations are for nutters.
In the specific case of Google Drive access, I like the Ruby client.
I see this as congruent to the old-school Lotus Notes/Domino architecture, and not really about the web at all.
There's no value in being an ideologue about it. My reasons for browsing with JS disabled-by-default are fourfold: 1. to defeat many/most active tracking methods, 2. as a sort of passive ad blocker, 3. because it's very often much faster, and 4. for written content JS dependence is moderately correlated to a poor S:N ratio. None of that has much bearing on an office application.
I would love a less cluttered and less resource intensive web experience. I also know is unrealistic in 2022 to have a normal day of browser activity without needing JavaScript and / or CSS.
If I can use a text browser much of the time and easily switch to a full browser only when I need it, that sounds like the best of both worlds. Lots of what I browse would likely be even nicer text only. This very site comes to mind.
The linked article mentions some reasons. I use it, because it fits my console-focused work style. It's blanzigly fast, removes all the distractions like unnecessary images and ads, doesn't require me to take my hands of the keyboard, works very well if I'm working on a mobile hotspot, can be used while being ssh'd into a server... and because opening the side in a regular modern browser is only a key press away.
Because using a 'regular modern browser' is not a superset; it also lacks certain things, such as freedom from JavaScript, freedom from some forms of tracking and it is incompatible with the terminal or other text-based environments. Some folks find those things to be worthwhile.
It is sooo nice to have a web browser well integrated in to an editor as powerful as emacs.
<img src="s.gif" height="1" width="66">I also don't want javascript, as it opens me up to all sorts of javascript vulnerabilities and tracking.
emacs-w3m is just text, no images, and javascript, which is exactly what I want.
https://www.neilvandyke.org/w3mnav/
https://www.neilvandyke.org/quack/
https://www.neilvandyke.org/linux-thinkpad-560e/
Getting docs into an efficient "IDE" is still nice. Just yesterday, I was using nov.el to occasionally reference Blandy et al.'s Rust book in Emacs, faster than I could the PDF or in a dedicated ebook reader program.
Ideal use case would be running webircgateway. Private self hosted irc chan for remote team. Accessed via emacs shell as we share code ;)
Another casualty in the war on user agency.
Also neat: you can disable media elements over a certain size (default is 50kb I think), which is a godsend if like me you have limited mobile data.
I strongly recommend it to the technically-inclined.
Only disadvantage I can tell for HN is lack of comment indentation beyond one level... which might be a deal breaker.
HN indentation works with spacer gifs, so you'll have to enable inline images for that to work. (Press o and tick YES for the Display inline images option.)
EDIT: also if you're using debian you'll also want to install the w3m-img package. Or change the Inline image display method to img2sixel (and install libsixel) if your terminal supports sixels, or to kitty (and install imagemagick) if you're using kitty.
(If your w3m version supports Inline image display method, that is. It's a relatively new feature.)
The option was already enabled but not working, the w3m-img package fixed it... I was only expecting place holders and very surprised to see real images rendered, not sure how it's doing this since i'm using urxvt, which doesn't support images AFAIK... is this layered on top via xorg?
In fact many other terminal tools use w3m-img for image display on the terminal. Though both sixel and kitty protocols are nicer (kitty being as close to ideal as it gets), they're unfortunately not as widely supported.
... holy shit this website is a living fossil
> No images (without terminal hacks). Images viewable externally via keystroke.
In fact I find it very strange how they're introducing the only terminal web browser with inline image support as one incapable of displaying inline images, then writing an entire paragraph about why you don't need inline images in the first place.
[a]: Only in the debian fork, mind you. The website seems to link to an unmantained version for some incomprehensible reason.
The old main page calls links / lynx "neighbors"...
I use links (gentoo user here), but I do not really see a huge difference between the three.
I've also got a reply to the original question by the GP that might clarify what I've been talking about by example of that's what was unclear.
Lynx and W3M are extremely similar, W3M was Japanese and in the 90s had much better support for the language. Lynx has unicode now but I'm not sure if it's fully on par in Japanese text rendering or not now.
I'll also throw browsh in as another sub-category, it uses a headless instance of Firefox (packaged separately allowing independent updates) in the backend for full web support but presents the page in text-mode.
[0] http://links.twibright.com/
Edit: Using it in graphical mode
Well that sounds scientific.
(Never used w3m but links is a useful browser)
Parsing HTML is difficult.
I'd say, this is a security feature - even if the code is not the most secure.
Out of interest, did you report your findings from fuzzing? Did things got fixed?
I typically send content through rdrview[0] before piping through w3m-sandbox[1], which should be pretty safe. I also only browse one site per w3m instance.
[0]: https://github.com/eafer/rdrview
[1]: https://git.sr.ht/~seirdy/bwrap-scripts/tree/trunk/item/w3m-...
docker run -it --rm corbinu/alpine-w3m https://news.ycombinator.com
Press [tab] to navigate from link to link, [enter] to follow a link, [⇧+B] to go back, and [q] to exit. You can also run it with --help instead of a URL for a help page.One thing it's really useful for is searching duck duck go (or similar) from the command line.
I have this in my .zsh_aliases:
ddg() { q="${@}"; w3m "https://duckduckgo.com/lite/?q=$q&kd=-1" }
Most sites will render well enough.
Last commit was 1 year 5 months ago.
Unfortunately he only removed stuff and stopped there.
> Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.