Shameless plug time: About a year and a half ago, I wrote [1] about a way of squeezing more text onto the screen, using Emacs, that plays well with eww and does a reasonable job of preserving readability. Basically, it's a hack that builds on follow-mode to quickly convert a frame into a columnar display for long buffers, with interactive adjustment of the number of columns.
I used Emacs around 2010-2012 or so as a journalist, and I remember asking help on Stackoverflow regarding this exact same thing. I've lost my elisp multi-column-mode snippet; thanks for sharing yours. It was a really good way to edit a longer story; it's actually quite surprising that using something like this in a text editor is not that common. I later moved over to Plan9 Acme editor and IIRC implemented a similar solution there as well.
I remember trying to use this one as well, because the paradigm/concept is really cool and IMO unusual. I couldn't really get used to it, but it was a fun and inspirational way to make one's brain explode.
The most important part of this is toward the end, and whether you consider it a limitation or a feature is a matter of perspective: the modern commercial web does not play nice with this. So static HTML and blogs yes, Reddit and most anything commercial no.
You can actually get other close-to-browser experiences with stuff like xwidget and embedded WebKit (https://emacsdocs.org/docs/emacs/Embedded-WebKit-Widgets) but generally it’s not worth the fight for commercial sites these days; everything is vibed and only tested against Chrome, so if you’re lucky they’ll load in other Chromium browsers and _maybe_ Firefox.
I use Firefox and cannot remember the last time I had to switch to Chrome. Most site work with JS off too (especially if you use reader view).
Quite a lot of sites work well with other browser engines too. I have tried PaleMoon, Netsurf. Users of Apple mobile devices seem to be fine with Safari.
Really light or unusual browsers might be a problem. Dillo, for example (its very fast though).
The two things that I'm missing in Safari are auto dark mode (re-coloring pages) and toggling javascript per-site. Currently I'm using the "Quiche" browser (paid) for that, but github is suddenly hating it (requiring a login). I like that desktop chrome lets me toggle javascript per site out of the box.
It sounds like the dark mode thing is coming in the next Safari release.
It really, really depends on what sort of websites you visit. I use FireFox as my main browser, but at least once a week I have trouble trying to do something on some website that only works on Chrome and its descendants. I'm sure you're not lying, but given you also say "most sites work with JS off too" I can absolutely tell you're not the average internet user. But yeah, we're discussing using eww here, so I'll accept none of us are.
Even before I had much of the Internet ban me because I was playing with a bot, my FF profile on Linux was giving me a lot of trouble. About 6 months ago a lot of web sites barely functioned for me. I can't log in to E-trade. Home Depot and Lowes search doesn't work for me.
If I open a brand new FF profile, some of these sites do work. But I guess the combination of FF, on Linux, with my addons is triggering something.
These days, when I think I've got a Firefox issue and try switching to chrome the usual outcome is that I discover the website was broken and Chrome doesn't work either.
I think that's absolutely right: whether this works or not depends on what you do.
I tried xwidget-webkit as main browser briefly, but very quickly gave up. When a collaborator sends me a Google Doc, for example, I really still need a browser to work on it. I still use xwidget-webkit daily -- it's a great PDF viewer, and really nice to be able to have Jupyter notebooks open side by side with code buffers -- but for most tasks involving the web I'll switch to a browser.
Not long ago reddit killed old.reddit.com effectively by forcing
log ins to it. That totally defeated the point of it so I stopped
using reddit. I also no longer read it since the platform is so
censorship-heavy.
The one thing above all that is urgently necessary is a content-addressable replacement for (or layer above) HTTP(S) which is genuinely ready to go and has adoption which is meaningful and moving in the right direction. Unfortunately we seem to be going in the wrong direction there right now. Cute browser setups and retro-chic web servers are fun and a nice gesture but they won't get us there.
Richard Stallman (RMS) also uses the Web from Emacs. But I believe he pastes URLs into a program that sends him a screen copy by email (at least as of approx. 20 years ago, when I last saw him in person).
I love how the people who basically invented computing prefer doing things using pen and paper, or go really out of their way (emailing screenshots of websites) to avoid certain widespread technologies they helped create.
Long ago some sales dept colleagues did this with large excel spreadsheet. I couldn't stop insulting them in my head (treehugger me fully triggered). Maybe they were all math geniuses ..
You should read some of the Emacs mailing lists. There’s been a recent (~last 12 months) discussion about changing the default Emacs logo. The proposed new logo, an SVG, was attached to the mail parent. A side thread ensued when RMS asked how to open an SVG and view it in its image form.
I love my Emacs. And yet here I am completely dumbfounded by this interaction!
I have an old - and I mean old - laptop sit in my bathroom I use for reading random-ish Wikipedia articles, and it's too puny to run any mainstream browser. I used to use Dillo, which is fine resource-wise, but I grew annoyed over time that it does not have session management.
Then, recently, it hit me - w3m-mode has both tabs and session management. It somehow even displays images more reliably than Dillo. I wouldn't use it as my main browser on the desktop, but for my specific use case, it's perfect.
It makes me think that having a local semantic AI layer in your browser would be cool, to strip away ads and just show you the content you want to see (like reader mode).
Paired with a local on-device model would be pretty sweet.
Seems like the end game is forcing all ad-financed and tracking-financed content behind login walls.
Feels like we were already almost there because of ad blocking, without even considering AI agents and summaries. And I take no offense in ad blockers, I use them myself.
Sad thing about current public web "content" apps (be it newspapers or other formats) is that the paid versions often share all tracking features with the ad-financed version of the same service, when both are behind a login wall. Only fewer ads, at least hopefully no ads from other vendors / no intrusive brokered ads.
Self-advertisement going through the roof when accepting an offer for a paid subscription is another frequent annoyance though.
Tried gemini browsers again recently, and while I appreciate the zen / distraction free system, all I was thinking about was bringing emacs ux around it. Modern web doesn't mesh well with my brain.
I appreciate the post though I am not an eMacs user. The spirit is much aligned with my own desire to use the web this way. Well done getting Laborem Exercens on the homepage.
the idea is to open a webpage in a headless browser, run all the javascript and whatnot, and then ai-generate a program to translate the page as-displayed into a textonly format.
not great for everything, and it does, unfortunately need an LLM call to generate the translation program, but if you truly want to live in emacs, I've found it as a good stop-gap for certain pages that EWW cannot effectively render.
You don't need AI for that, this all can be done deterministically. I'm currently using Mac and using OSA layer I can easily grab the readable text out of DOM as it's rendered on the page to display in an Emacs buffer.
I don't want to hate on this particular post, but I really dislike the great number of blog posts, videos, and articles that have a title which says "Why I do X in <some unconventional way>" where upon reading the blog post hoping to learn some useful feature that say, browsing the web in Emacs affords you (like closer integration between research and writing for example), you learn that the benefit in question is actually that the method is less useful than conventional means.
I think the idea that you do something in a more difficult or less convenient manner for the sake of "mindfulness" or "focus" is well-established, and what I hope for (and am always disappointed by the lack of) when reading such blog posts is an actually useful feature of the unconventional method in question.
The title of this blog post promises some usefulness from using Emacs as your browser, and upon reading, you discover that the "usefulness" is the inconvenience and impracticality of using it that way.
> you learn that the benefit in question is actually that the method is less useful than conventional means. … hope for … an actually useful feature of the unconventional method in question.
People write these things, and use these methods, specifically because they don't conceive of usefulness the same way you do.
In this case, the justification offered doesn't mention all the various keybinds that have been pushed down to the "how" section. But clearly the simplicity is a feature:
> D will download images locally, b goes back a page, a will save bookmarks. All of this makes browsing in eww truly enjoyable.
The point is the same as usual for TUIs: you don't have to switch over to the mouse and hunt out a button, as the necessary key is always literally at hand.
People who find this sort of thing "truly enjoyable" (what clearer statement is there of featurefulness!) commonly take it for granted and don't explain the virtues of it very well. That sort of explanation is found in think pieces about TUI design more generally.
TFA describes a goal of avoiding distraction. That is not at all the same thing as "inconvenience and impracticality". Clearly the author finds these keybinds quite convenient and practical. It's just that they don't cover a bunch of web interactions that you perhaps value, but the author doesn't.
You mischaracterise me. I am an Emacs user and I use qutebrowser as my web browser, which uses Vi-like bindings and Python configuration. When forced by circumstance to use other browsers, I use browser extensions to add Vi-like bindings. I find it extremely efficient and enjoyable.
The keybindings aren't mentioned in the "Why?" section of this blog post, and clearly aren't the point of the post. You can get extensions to add Emacs bindings to full-featured browsers, and there's even the Nyxt browser which has Emacs keybinds and Lisp configuration.
The core reason listed in this blogpost for browsing this way is the very fact that it is less featureful and less convenient. As someone who uses Emacs, I know that eww isn't as convenient as a fully-fledged web browser and I know that sometimes the hard way of doing things can be beneficial. I found this blog post disappointing because it doesn't afford you any new information, nor tell anyone about any actually useful features about browsing in eww.
This is why I find the whole emacs conversation confusing
You’ll have people who demonstrate their whole set up and interactions and hot keys and shortcuts and everything and then when you say OK well why would you do it like that it all boils down to:
“This extremely precise implementation works for only me and my specific workflow”
I found that it’s almost more useful to think about emacs users showing off their org mode bindings are basically like Warhammer players showing off their painted figurines
I mean, I get what you're saying. There's an element of that with Emacs and super bespoke setups in general, of course.
But also, consider this: maybe they just have very specific, unusual needs that you're unable to relate to because they're very different from your lived experience. I'm not saying this as a criticism. I feel like most people struggle to comprehend just how different someone else's lived experience can be from their own. I certainly do. Usually, when I read these emacs setup blog posts, I'll dislike most of their setup, but often there will be some nugget in there I'll absolutely love, and then I might add that nugget to my init.org.
Let me try to explain my singular point of view. I have very severe ADHD-C, and GUIs always felt horrible for me to use. Especially big complex GUIs. Things like MS Office, Photoshop, big IDEs etc.
Why? Multiple things:
1. Visual processing:
ADHD can include strange visual processing or spatial reasoning problems. It's very hard for me to describe this one in a detailed manner, but suffice it to say, Icons don't make sense to me. Text does. I am capable of learning some icons, certainly, but certain ones never stick. For example, the protonmail web client has the reply and forward button displayed as arrows pointing in opposite directions, I always click the wrong one. Every time. And everytime I'm positive it's the right one and click it immediately. As I'm sitting here now, looking at an HN textbox, I can reason my way into understanding that to the western mind things flow from left to right, and so left should be reply and right should be forward. But when I'm actually there wanting to reply to an email, I hit forward every time without thinking. If on the other hand the buttons just said "reply" and "forward", this wouldn't happen. I can't explain it even to myself really. That's just how my brain brains.
2. I lose my train of thought extremely easily:
You know how sometimes when you walk into a room, you suddenly forget why you're in there? This supposedly happens to most people occasionally. For me it's more like 15 times a day, not just with rooms, but any sudden sensory transition. Like a pop up window. Ah yes. I'm in some stupid baroque GUI program. I realise I need to change a setting. I locate the settings button from the dropdowns, which every program seems to have in a slightly different place, big settings window pops up covering most of the main window. I immediately forget why I'm in the settings. I try to remember why for half a minute, and fail. I close the settings window and try to remember what I was doing before. 2 minutes later I remember which setting it was. I open the settings. I forget why I opened the settings again. Ok, annoying, but not that big a deal right? Oh but you see opening the settings is just the first roll of the dice. The settings window has 15 different tabs. And some of the tabs have buttons that spawn new sub windows, and even some of the subwindows have tabs(looking at you, Microsoft. What is wrong with you people?!). I call it menu purgatory.
3. Extraneous information distracts me very easily.
This one should be self-explanatory
4. My hand eye coordination is not fantastic, so I often click the wrong thing, which then feeds back into the wrong thing, which then feeds into 2 and 3 again. Keybindings don't require coordination, only muscle memory.
On a bad day, with a shitty piece of software like that, I can spend literally half the day locked in a cognitive battle of attrition with the software instead of getting work done. That's not an exaggeration.
Because I'm so hampered by what to other people is just minor annoyances, I need software that I can configure completely arbitrarily. No change can be off limits. That is almost never the case with GUI software, at least without cloning the source and patching it, figuring out the build system, possibly learning the implementation language. With Lisp software, the config file is really just a hotpatch. And Lisp is my favourite language, so yay. I would prefer Common Lisp, but beggars can't be choosers and Elisp isn't that bad once you learn to avoid the footguns. Certainly better than vimscript, which I've always found incomprehensible.
So that's why my setup is roughly this:
Never use GUIs with the exception of Firefox(I want to use Nyxt but I could never quite get past the learning curve, and there are still key features missing) and occasionally mpv(which is barely a GUI anyway). Everything else, find a good TUI. If you can't find one, find a shitty one for emacs and bend it to your will. This keeps (auto-) defenestration at a minimum.
> I really dislike the great number of blog posts, videos, and articles that have a title which says "Why I do X in <some unconventional way>" where upon reading the blog post hoping to learn some useful feature that say, browsing the web in Emacs affords you (like closer integration between research and writing for example), you learn that the benefit in question is actually that the method is less useful than conventional means.
It wouldn't be unconventional if most found it useful. That doesn't mean the author themself doesn't find it useful:
>> I have seen in my own use of the modern browser (chromium/firefox) that it is far too easy to get distracted
They find EWW useful to cut distractions.
>> In addition to this, my belief is that we should make strides toward leaving behind Layer 8 of the internet - the limiting frontends of social platforms and locked away corners of the net that limit actual discourse (Discord, I’m looking at you). [...] The internet is just a delivery mechanism.
They also find it a useful way to stick to their ideals which I understand to be that they should be in control of the front-end and the internet is only to be treated as a delivery mechanism of information.
I'll go through some personal upsides to using eww.
The main utility I see in browsing the web through emacs is the potential to integrate it into your workflow. You can have your code/notes open in one buffer and have the website in another, which is useful for documentation, or an article you're following along, etc.
With gptel, it's easy to highlight part of a blogpost and ask an llm a question about it, or get it to rewrite or annotate the whole page.
An added bonus is that your keybindings for the rest of emacs are also valid here. (Though for that I've recently started using Glide, a firefox fork, and set all of its keymap to match my emacs bindings)
>You can have your code/notes open in one buffer and have the website in another, which is useful for documentation, or an article you're following along, etc.
I’m curious what the difference is between that and having pinned windows in Ubuntu
For example I’ll have sublime text, one terminal, a notepad, and a firefox window with multiple tabs, pinned to the four corners of my desktop
Everything You describe is possible without emacs so I’m genuinely trying to understand the appeal
> I’m curious what the difference is between that and having pinned windows in Ubuntu
The difference is the text consumption. Can you easily retrieve any text you're seeing on the screen into your editor?
Inserting any piece of text I see on the screen into my notes? A couple of keystrokes. I can grab text in any form, even if it's a frame in a YT video - I'd just select the area, snapshot it - Emacs OCRs the text out of it, which takes milliseconds. I fully control the playback of said video directly from my editor - rewind, pause, mute, speed up, extract transcript, etc. It is enormously liberating and empowering.
I have complete and utter control over text - I can send a query to an LLM in the middle of typing this very comment, without ever missing a beat. I can ask for anything - fact-check it, spell check it, reword it, explain it, give me different variations of the same sentence. I can replace part of it with diffing in-place. I can even start changing the behavior of Emacs itself, right there on the spot.
I can directly grab any part of the log of a process running in the terminal. Grep through it, semantically search through it with an LLM, whatever. Similarly, I can directly grab a piece of any text in Emacs and send it over to another app, e.g., as a command to run in the terminal.
> Everything You describe is possible without emacs
Everything is possible with Turing-complete languages, but Turing-completeness is a trap. It's all about affordability. What Emacs grants as a Lisp-REPL loop with a built-in text editor is lowering that affordability bar to the lowest imaginable minimum.
Have you ever thought: "What if I could change the 'Open File' dialog in Sublime so I can browse GitHub repos directly instead of folders and files?" This kind of thinking has probably never occurred to you - for an Emacs user, that is some prosaic, just-another-Wednesday kind of thought.¹
By the way fishing that url out of my browser history took a keystroke - of course Emacs can search through my browser history too - https://github.com/agzam/browser-hist.el
I think the takeaway for me is that emacs is for people who get enjoyment out of building their own custom computing environment
The example you describe is something I would rarely do so building a process around it would be inefficient for me but if that’s where people want to spend time then great
It's just a drop in a vast ocean of things. Your close-minded thinking just sees one thing and makes generalized assumptions.
> where people want to spend time
You're reading it completely backwards. This is the thing that I never understood about the majority of programmers. For whatever reason they just readily accept the status quo. Here's a typical example:
So often do I feel like rolling my eyes whenever I pair with my colleagues - I'd do something trivial, like fetching a list of PRs related to a specific ticket number at the cursor. They'd be like "whoa, that's cool", and then never do anything about it - they stick to their "learned helplessness" paradigm - copy the ticket number, switch to browser, navigate to Jira, pass through SSO, look around for the phone just to push the button, paste the ticket number, find the linked PRs, etc. The other teammate watching all that may say something like: "you could do it faster directly on GitHub"... And here I am - pressing a key, voila - the list. Why the heck don't they do anything about it, I just don't get it. Trained engineers, they spend years dealing with cranky software, why in the world are they unwilling to do anything about these seemingly small yet everyday annoyances? Why do so many programmers treat software as if it's magic? And I think I know the answer: because the software you use shapes your affordances. If there's no downloadable get-me-list-of-prs-for-a-jira-ticket VSCode extension and no simple way to build it, it would never occur to them to even get annoyed. In Emacs, I can write a picker in a scratch buffer by hand and it would take me minutes. Today with LLMs, I can just spend fifteen seconds, not even typing, speaking my thoughts and it goes to build it, run a sequence of e2e tests and hand it to me on the spot.
Sure, go ahead, talk about time. Make me chuckle. The irony is that the time you spend using a Lisp-based system never feels wasted; it only gets better, it has a compounding effect. It's the time you waste convincing skeptics that it is in fact enormously pragmatic and time-saving that feels like tilting at windmills. Why am I even still talking to you here, if it was clear from the beginning that you didn't in fact have good-will curiosity, only simply wanted to find evidence for your already settled and stiffened
mind.
> Everything You describe is possible without emacs so I’m genuinely trying to understand the appeal
The advantage is that it’s a single program with multiple windows with a shared list of buffers. So you can save transform your layout and save it, manipulate the content without any real boundary, unified bookmarks,…
Your WM can’t access sublime and firefox internals. And the last two can’t talk with each other.
If you don't want to, then you don't want to. Understand you may want things others don't, and vice versa.
Although I don't browse the web with Emacs, I see the utility.
Tell me: How would you select some text, and with a keystroke, send the selected text to yourself via email, with the URL included and the title of the page in the subject line?
> Tell me: How would you select some text, and with a keystroke, send the selected text to yourself via email, with the URL included and the title of the page in the subject line?
I think the takeaway for me is that emacs is for people who get enjoyment out of building their own custom computing environment
The example you describe is something I would rarely do so building a process around it would be inefficient for me but if that’s where people want to spend time then great
> The example you describe is something I would rarely do
There is some tacit knowledge in here that is nearly impossible to convey in words. Your "rarely do" is the thought that subconsciously ignores the principle of least effort; there's an affordability gap, e.g., I am more likely to use a thesaurus simply because I have it built into my text editor, versus someone who has to reach for it in the browser/separate app.
> building a process around it would be inefficient for me
That's what you're missing. Emacs makes it incredibly cheap. It's a Lisp REPL. When you understand what it means in practice, it opens up incredible opportunities for exploratory computing. You're not "building processes around", you're essentially living in one mega-process, a simulation, a digital universe where you are a god, commanding change at will. Right now, as I'm typing this very comment, I noticed a tiny gap in the way how I'm using LLMs, so I'm changing this stuff on the fly, with the agent running things in the adjacent buffer while I'm finishing this comment. The crazy thing is that it doesn't have to compile, restart, ask me to pause typing, etc. It's applying changes to my editor live. By the time I finish typing the comment, it will probably have already built this feature, tested it out, and it will be ready for me to use, instantly.
> I think the takeaway for me is that emacs is for people who get enjoyment out of building their own custom computing environment
For long time users, that's the whole point of Emacs.
> The example you describe is something I would rarely do
I used to do it at work all the time (not with Emacs, but with AutoHotKey). Find a long article I'd really like to read, but don't want to waste time at work. With a keystroke, I'd quickly send the email to me with the URL etc.
> But why would I want them to as the default interaction?
Some find it useful. One can write code in vim or sublime, the only differences are the specific actions to get it done and the user experience. People will lean towards one another, not for the capability to write code, but for how it’s done.
So what I’m trying to showcase is not the capability, but the Emacs ways of getting it done. You can also implement something with a WM setup or tmux (with w3m). But it’s a different feel and effort, so people like ones and dislike the others.
If you're on MacOS and tempted by Emacs, the homebrew emacs-plus package will make it slightly less painful but bear in mind it really works best and fastest on proper *nix machines
I went through trying to use emacs for everything years ago and had a blast but ultimately it just didn't work out. You'd have to be stallman level crazy to really do it but I applaud anyone trying or doing it.
Would love to try to explore emacs again, but the emacs pinky shenanigans are such a turn-off. Simultaneously the most efficient and possibly the least ergonomic way to navigate a computer?
I've bound CTRL to Capslock and don't have much problems with it. Given that in emacs you have dired, magit, org, org-babel and now ghostel (and many more) I can't think of any more ergonomic way in using my computer.
I have all my plugins like flash-jump or gptel available everywhere, it's amazing.
Easy fix, and better than Caps-Ctrl in my opinion: swap Lalt and Lctrl. That way ctrl is under your left thumb, alt under your right. No need for pinkies at all.
You can use software like Kanata to accomplish this if you don't have a programmable keyboard.
CTRL-A seems awkward in that mapping. I still prefer swapping Caps Lock and Left-Ctrl; this gives you similar Ctrl key positioning to the old terminals (VT100, ADM-3A, early PC keyboards) that were used in the early days of emacs and are the reason for all those C- keybindings.
You can use "evil mode" for Vi-like bindings if you prefer. There are a number of Emacs "distributions" like Spacemacs and Doom Emacs which come preconfigured for Vi-like editing.
+100 here. Going full evil+spacemacs (for self-documenting arpeggios instead of chord sets) a bit over a decade ago transformed Emacs from a fun toy to a fulltime environment for me.
Funnily enough, I am the opposite: I tried Vim, but I preferred the "pinky shenanigans" of Emacs to reduce trying to figure out what mode I was in to just edit files.
many people use homerow mods, but I haven't tried them personally.
if you happen to use a thinkpad and don't use the trackpoint, you can remap the two mouse buttons above the trackpad to ctrl and alt using keyd on linux. this completely solved RSI on my laptop.
> but the emacs pinky shenanigans are such a turn-off
Do you touch type? You’re meant to use the modifier keys on the opposite side (so use both hands) rather than stretching your pinky to press them. Also there are packages such as god-mode which help.
But the most helpful thing is doing navigation by page instead of line which reduce the use of keybindings.
Maybe I am not up to date on my browser threats, but exactly how much damage can a website without JavaScript do? The most I can think of is cross-site form requests and cookie shenanigans, but that is a problem primarily solved by web hosts, not browser providers.
> The internet is just a delivery mechanism, and for people that see it for what it really is, the internet has never been more alive. I truly recommend using the internet as if it was 1999.
Well, he has a point - Google controlling so much of the www is bad.
On the other hand, it's not all bad only. While more and more youtube videos are crap, there are useful youtube videos. Many people use it for learning too and often that works as well. Using emacs as browser really does not fix the issue. Also, emacs needs a proper editor if it ever wants to be a good operating system.
FWIW, you can login to here (https://news.ycombinator.com) using eww. The only minor issue is you are really limited to 1 line if you want to comment. And seems you cannot vote either.
I have yet to figure out how to get around those issues.
And a big plus, eww is great for resource limited systems like old 32bit laptops.
> I have seen in my own use of the modern browser (chromium/firefox) that it is far too easy to get distracted - too easy to get off track and fall down rabbit holes that take over my day.
I have a very easy solution for that: zero sound output from my main desktop/workstation computer. I mean: technically I leave the sound drivers and the sound on, but there's nothing connected to the output (so speakers / no headphone).
The deep underlying philosophical question being: "If a PC outputs audio to nothing plugged into it, does it make a sound?"
The answer doesn't really matters though. What matters is that it's a great way to not get distracted.
My main desktop emits, on purpose, no sound since... 20 years?
Unfortunately GNU Emacs is single-threaded and blocking by design and not well suited for this kind of thing. Using it for things like browser or window manager usually ends in either weird hacks or uncomfortable pauses.
I have more hope in projects like lem which implement new emacsen from scratch.
> ends in either weird hacks or uncomfortable pauses
Not true in practice. It is absolutely useful in real, battle-tested scenarios. If this were a deal-breaking problem, we'd keep seeing it discussed and eventually fixed. Like the issue with long lines, which was a problem in Emacs for decades and is now mitigated. Nobody complains about it anymore.
Lem is very cool, yet too young to be pragmatically compared with the 40-year package ecosystem of Emacs. Let's be honest, with all the "better" stuff, we're not witnessing herds of Lispers switching to it. Another decade may pass before we see it make more than a blip on the radar. Aside from a number of devoted Common Lispers, there's not much usage of it in the real world.
Meanwhile, Emacs is seeing another uptick. First it was Spacemacs, then Doom, now LLMs are making it very appealing, and we see HN submissions every other week. Don't get me wrong, I'm betting on both of these horses, even on Neomacs, and whichever wins, I'd be happy to see it. Emacs for now remains the uncontested king of Lisp-based text editors.
Emacs has asynchronous IO support which is more than sufficient for networking. It is up to the relevant mode or application that runs on top of Emacs to take advantage of it and not all of them do (for example, Gnus).
There are also various multi-processing configurations for even more flexibility: multiple Emacs processes that can coordinate, Emacs modules over a C API which can create native threads outside of Emacs and so on. What Emacs lacks is parallelism inside a single Emacs process, which is arguably not needed and would be a net negative from a safety, ease of development and debugging point of view.
Lem is nice but nowhere near as nice as modern Emacs (and probably never will be). Emacs Lisp isn't Common Lisp but has evolved significantly and the remaining differences don't really matter in practice because Emacs momentum, massive user base and ecosystem are a tremendous advantage.
Shameless plug time: About a year and a half ago, I wrote [1] about a way of squeezing more text onto the screen, using Emacs, that plays well with eww and does a reasonable job of preserving readability. Basically, it's a hack that builds on follow-mode to quickly convert a frame into a columnar display for long buffers, with interactive adjustment of the number of columns.
[1] https://www.reindeereffect.com/0002
I used Emacs around 2010-2012 or so as a journalist, and I remember asking help on Stackoverflow regarding this exact same thing. I've lost my elisp multi-column-mode snippet; thanks for sharing yours. It was a really good way to edit a longer story; it's actually quite surprising that using something like this in a text editor is not that common. I later moved over to Plan9 Acme editor and IIRC implemented a similar solution there as well.
If you want to put the multi-column mode on massive steroids, check out an old Vim add-on called microViche for inspiration -- "text editing on an infinite pane": https://www.youtube.com/watch?v=9YNiPUTGO28 and https://www.youtube.com/watch?v=xkED6Mv_4bc
The addon itself, FWIW (no idea if it works on a current Vim): https://www.vim.org/scripts/script.php?script_id=4835
I remember trying to use this one as well, because the paradigm/concept is really cool and IMO unusual. I couldn't really get used to it, but it was a fun and inspirational way to make one's brain explode.
The most important part of this is toward the end, and whether you consider it a limitation or a feature is a matter of perspective: the modern commercial web does not play nice with this. So static HTML and blogs yes, Reddit and most anything commercial no.
You can actually get other close-to-browser experiences with stuff like xwidget and embedded WebKit (https://emacsdocs.org/docs/emacs/Embedded-WebKit-Widgets) but generally it’s not worth the fight for commercial sites these days; everything is vibed and only tested against Chrome, so if you’re lucky they’ll load in other Chromium browsers and _maybe_ Firefox.
I use Firefox and cannot remember the last time I had to switch to Chrome. Most site work with JS off too (especially if you use reader view).
Quite a lot of sites work well with other browser engines too. I have tried PaleMoon, Netsurf. Users of Apple mobile devices seem to be fine with Safari.
Really light or unusual browsers might be a problem. Dillo, for example (its very fast though).
The two things that I'm missing in Safari are auto dark mode (re-coloring pages) and toggling javascript per-site. Currently I'm using the "Quiche" browser (paid) for that, but github is suddenly hating it (requiring a login). I like that desktop chrome lets me toggle javascript per site out of the box.
It sounds like the dark mode thing is coming in the next Safari release.
It really, really depends on what sort of websites you visit. I use FireFox as my main browser, but at least once a week I have trouble trying to do something on some website that only works on Chrome and its descendants. I'm sure you're not lying, but given you also say "most sites work with JS off too" I can absolutely tell you're not the average internet user. But yeah, we're discussing using eww here, so I'll accept none of us are.
Even before I had much of the Internet ban me because I was playing with a bot, my FF profile on Linux was giving me a lot of trouble. About 6 months ago a lot of web sites barely functioned for me. I can't log in to E-trade. Home Depot and Lowes search doesn't work for me.
If I open a brand new FF profile, some of these sites do work. But I guess the combination of FF, on Linux, with my addons is triggering something.
These days, when I think I've got a Firefox issue and try switching to chrome the usual outcome is that I discover the website was broken and Chrome doesn't work either.
I can't remember the last time I had to open chromium. Everything works fine with FF for me. Couldn't be happier about it
Possibly, I use Firefox on Linux. I am in the UK so maybe British sites are better? Maybe just luck or usage patterns. Very likely the addons.
my distro didn't compile emacs with xwidget support so i can't try this :(.
I think that's absolutely right: whether this works or not depends on what you do.
I tried xwidget-webkit as main browser briefly, but very quickly gave up. When a collaborator sends me a Google Doc, for example, I really still need a browser to work on it. I still use xwidget-webkit daily -- it's a great PDF viewer, and really nice to be able to have Jupyter notebooks open side by side with code buffers -- but for most tasks involving the web I'll switch to a browser.
> Reddit and most anything commercial no.
Not long ago reddit killed old.reddit.com effectively by forcing log ins to it. That totally defeated the point of it so I stopped using reddit. I also no longer read it since the platform is so censorship-heavy.
The one thing above all that is urgently necessary is a content-addressable replacement for (or layer above) HTTP(S) which is genuinely ready to go and has adoption which is meaningful and moving in the right direction. Unfortunately we seem to be going in the wrong direction there right now. Cute browser setups and retro-chic web servers are fun and a nice gesture but they won't get us there.
iroh-blobs is in progress: https://github.com/n0-computer/iroh-blobs
I believe some of the old IPFS folks moved to Iroh
Richard Stallman (RMS) also uses the Web from Emacs. But I believe he pastes URLs into a program that sends him a screen copy by email (at least as of approx. 20 years ago, when I last saw him in person).
His motive is not mindfulness, but ideology.
Love him or hate him, but I shudder to think of a world without him. The Tech Trinity is: Thompson, Stallman and Torvalds.
This almost seems like satire to me
Donald Knuth has his secretary print his email. He'll handwrite replies on the paper, and she'll send them out.
I love how the people who basically invented computing prefer doing things using pen and paper, or go really out of their way (emailing screenshots of websites) to avoid certain widespread technologies they helped create.
It's they who best understand what their inventions are capable of. It paradoxically stands to reason.
Long ago some sales dept colleagues did this with large excel spreadsheet. I couldn't stop insulting them in my head (treehugger me fully triggered). Maybe they were all math geniuses ..
You should read some of the Emacs mailing lists. There’s been a recent (~last 12 months) discussion about changing the default Emacs logo. The proposed new logo, an SVG, was attached to the mail parent. A side thread ensued when RMS asked how to open an SVG and view it in its image form.
I love my Emacs. And yet here I am completely dumbfounded by this interaction!
SVG is 21st century tech!
EDIT: eww can render SVG quite well!
EDIT 2: but no SVG animations...
I have an old - and I mean old - laptop sit in my bathroom I use for reading random-ish Wikipedia articles, and it's too puny to run any mainstream browser. I used to use Dillo, which is fine resource-wise, but I grew annoyed over time that it does not have session management.
Then, recently, it hit me - w3m-mode has both tabs and session management. It somehow even displays images more reliably than Dillo. I wouldn't use it as my main browser on the desktop, but for my specific use case, it's perfect.
It makes me think that having a local semantic AI layer in your browser would be cool, to strip away ads and just show you the content you want to see (like reader mode).
Paired with a local on-device model would be pretty sweet.
Seems like the end game is forcing all ad-financed and tracking-financed content behind login walls.
Feels like we were already almost there because of ad blocking, without even considering AI agents and summaries. And I take no offense in ad blockers, I use them myself.
Sad thing about current public web "content" apps (be it newspapers or other formats) is that the paid versions often share all tracking features with the ad-financed version of the same service, when both are behind a login wall. Only fewer ads, at least hopefully no ads from other vendors / no intrusive brokered ads.
Self-advertisement going through the roof when accepting an offer for a paid subscription is another frequent annoyance though.
Tried gemini browsers again recently, and while I appreciate the zen / distraction free system, all I was thinking about was bringing emacs ux around it. Modern web doesn't mesh well with my brain.
I appreciate the post though I am not an eMacs user. The spirit is much aligned with my own desire to use the web this way. Well done getting Laborem Exercens on the homepage.
I've been working on some open source tools for this that you might find interesting:
https://github.com/sstraust/simpleweb
the idea is to open a webpage in a headless browser, run all the javascript and whatnot, and then ai-generate a program to translate the page as-displayed into a textonly format.
not great for everything, and it does, unfortunately need an LLM call to generate the translation program, but if you truly want to live in emacs, I've found it as a good stop-gap for certain pages that EWW cannot effectively render.
You don't need AI for that, this all can be done deterministically. I'm currently using Mac and using OSA layer I can easily grab the readable text out of DOM as it's rendered on the page to display in an Emacs buffer.
I like to give my AI assistant a URL and ask it to tell me what the page says — and my preferred way to talk to the assistant is in Emacs.
I don't want to hate on this particular post, but I really dislike the great number of blog posts, videos, and articles that have a title which says "Why I do X in <some unconventional way>" where upon reading the blog post hoping to learn some useful feature that say, browsing the web in Emacs affords you (like closer integration between research and writing for example), you learn that the benefit in question is actually that the method is less useful than conventional means.
I think the idea that you do something in a more difficult or less convenient manner for the sake of "mindfulness" or "focus" is well-established, and what I hope for (and am always disappointed by the lack of) when reading such blog posts is an actually useful feature of the unconventional method in question.
The title of this blog post promises some usefulness from using Emacs as your browser, and upon reading, you discover that the "usefulness" is the inconvenience and impracticality of using it that way.
> you learn that the benefit in question is actually that the method is less useful than conventional means. … hope for … an actually useful feature of the unconventional method in question.
People write these things, and use these methods, specifically because they don't conceive of usefulness the same way you do.
In this case, the justification offered doesn't mention all the various keybinds that have been pushed down to the "how" section. But clearly the simplicity is a feature:
> D will download images locally, b goes back a page, a will save bookmarks. All of this makes browsing in eww truly enjoyable.
The point is the same as usual for TUIs: you don't have to switch over to the mouse and hunt out a button, as the necessary key is always literally at hand.
People who find this sort of thing "truly enjoyable" (what clearer statement is there of featurefulness!) commonly take it for granted and don't explain the virtues of it very well. That sort of explanation is found in think pieces about TUI design more generally.
TFA describes a goal of avoiding distraction. That is not at all the same thing as "inconvenience and impracticality". Clearly the author finds these keybinds quite convenient and practical. It's just that they don't cover a bunch of web interactions that you perhaps value, but the author doesn't.
You mischaracterise me. I am an Emacs user and I use qutebrowser as my web browser, which uses Vi-like bindings and Python configuration. When forced by circumstance to use other browsers, I use browser extensions to add Vi-like bindings. I find it extremely efficient and enjoyable.
The keybindings aren't mentioned in the "Why?" section of this blog post, and clearly aren't the point of the post. You can get extensions to add Emacs bindings to full-featured browsers, and there's even the Nyxt browser which has Emacs keybinds and Lisp configuration.
The core reason listed in this blogpost for browsing this way is the very fact that it is less featureful and less convenient. As someone who uses Emacs, I know that eww isn't as convenient as a fully-fledged web browser and I know that sometimes the hard way of doing things can be beneficial. I found this blog post disappointing because it doesn't afford you any new information, nor tell anyone about any actually useful features about browsing in eww.
This is why I find the whole emacs conversation confusing
You’ll have people who demonstrate their whole set up and interactions and hot keys and shortcuts and everything and then when you say OK well why would you do it like that it all boils down to:
“This extremely precise implementation works for only me and my specific workflow”
I found that it’s almost more useful to think about emacs users showing off their org mode bindings are basically like Warhammer players showing off their painted figurines
You can possibly learn some new setting you can add to your own flow.
My config is loaded with things from posts like these.
That's their value.
I mean, I get what you're saying. There's an element of that with Emacs and super bespoke setups in general, of course.
But also, consider this: maybe they just have very specific, unusual needs that you're unable to relate to because they're very different from your lived experience. I'm not saying this as a criticism. I feel like most people struggle to comprehend just how different someone else's lived experience can be from their own. I certainly do. Usually, when I read these emacs setup blog posts, I'll dislike most of their setup, but often there will be some nugget in there I'll absolutely love, and then I might add that nugget to my init.org.
Let me try to explain my singular point of view. I have very severe ADHD-C, and GUIs always felt horrible for me to use. Especially big complex GUIs. Things like MS Office, Photoshop, big IDEs etc.
Why? Multiple things:
1. Visual processing:
ADHD can include strange visual processing or spatial reasoning problems. It's very hard for me to describe this one in a detailed manner, but suffice it to say, Icons don't make sense to me. Text does. I am capable of learning some icons, certainly, but certain ones never stick. For example, the protonmail web client has the reply and forward button displayed as arrows pointing in opposite directions, I always click the wrong one. Every time. And everytime I'm positive it's the right one and click it immediately. As I'm sitting here now, looking at an HN textbox, I can reason my way into understanding that to the western mind things flow from left to right, and so left should be reply and right should be forward. But when I'm actually there wanting to reply to an email, I hit forward every time without thinking. If on the other hand the buttons just said "reply" and "forward", this wouldn't happen. I can't explain it even to myself really. That's just how my brain brains.
2. I lose my train of thought extremely easily:
You know how sometimes when you walk into a room, you suddenly forget why you're in there? This supposedly happens to most people occasionally. For me it's more like 15 times a day, not just with rooms, but any sudden sensory transition. Like a pop up window. Ah yes. I'm in some stupid baroque GUI program. I realise I need to change a setting. I locate the settings button from the dropdowns, which every program seems to have in a slightly different place, big settings window pops up covering most of the main window. I immediately forget why I'm in the settings. I try to remember why for half a minute, and fail. I close the settings window and try to remember what I was doing before. 2 minutes later I remember which setting it was. I open the settings. I forget why I opened the settings again. Ok, annoying, but not that big a deal right? Oh but you see opening the settings is just the first roll of the dice. The settings window has 15 different tabs. And some of the tabs have buttons that spawn new sub windows, and even some of the subwindows have tabs(looking at you, Microsoft. What is wrong with you people?!). I call it menu purgatory.
3. Extraneous information distracts me very easily.
This one should be self-explanatory
4. My hand eye coordination is not fantastic, so I often click the wrong thing, which then feeds back into the wrong thing, which then feeds into 2 and 3 again. Keybindings don't require coordination, only muscle memory.
On a bad day, with a shitty piece of software like that, I can spend literally half the day locked in a cognitive battle of attrition with the software instead of getting work done. That's not an exaggeration.
Because I'm so hampered by what to other people is just minor annoyances, I need software that I can configure completely arbitrarily. No change can be off limits. That is almost never the case with GUI software, at least without cloning the source and patching it, figuring out the build system, possibly learning the implementation language. With Lisp software, the config file is really just a hotpatch. And Lisp is my favourite language, so yay. I would prefer Common Lisp, but beggars can't be choosers and Elisp isn't that bad once you learn to avoid the footguns. Certainly better than vimscript, which I've always found incomprehensible.
So that's why my setup is roughly this:
Never use GUIs with the exception of Firefox(I want to use Nyxt but I could never quite get past the learning curve, and there are still key features missing) and occasionally mpv(which is barely a GUI anyway). Everything else, find a good TUI. If you can't find one, find a shitty one for emacs and bend it to your will. This keeps (auto-) defenestration at a minimum.
> I really dislike the great number of blog posts, videos, and articles that have a title which says "Why I do X in <some unconventional way>" where upon reading the blog post hoping to learn some useful feature that say, browsing the web in Emacs affords you (like closer integration between research and writing for example), you learn that the benefit in question is actually that the method is less useful than conventional means.
It wouldn't be unconventional if most found it useful. That doesn't mean the author themself doesn't find it useful:
>> I have seen in my own use of the modern browser (chromium/firefox) that it is far too easy to get distracted
They find EWW useful to cut distractions.
>> In addition to this, my belief is that we should make strides toward leaving behind Layer 8 of the internet - the limiting frontends of social platforms and locked away corners of the net that limit actual discourse (Discord, I’m looking at you). [...] The internet is just a delivery mechanism.
They also find it a useful way to stick to their ideals which I understand to be that they should be in control of the front-end and the internet is only to be treated as a delivery mechanism of information.
I'll go through some personal upsides to using eww.
The main utility I see in browsing the web through emacs is the potential to integrate it into your workflow. You can have your code/notes open in one buffer and have the website in another, which is useful for documentation, or an article you're following along, etc.
With gptel, it's easy to highlight part of a blogpost and ask an llm a question about it, or get it to rewrite or annotate the whole page.
With macros you can do basic automation, like this webscraping example here: https://nickdrozd.github.io/2018/10/17/web-scraping.html
An added bonus is that your keybindings for the rest of emacs are also valid here. (Though for that I've recently started using Glide, a firefox fork, and set all of its keymap to match my emacs bindings)
>You can have your code/notes open in one buffer and have the website in another, which is useful for documentation, or an article you're following along, etc.
I’m curious what the difference is between that and having pinned windows in Ubuntu
For example I’ll have sublime text, one terminal, a notepad, and a firefox window with multiple tabs, pinned to the four corners of my desktop
Everything You describe is possible without emacs so I’m genuinely trying to understand the appeal
> I’m curious what the difference is between that and having pinned windows in Ubuntu
The difference is the text consumption. Can you easily retrieve any text you're seeing on the screen into your editor?
Inserting any piece of text I see on the screen into my notes? A couple of keystrokes. I can grab text in any form, even if it's a frame in a YT video - I'd just select the area, snapshot it - Emacs OCRs the text out of it, which takes milliseconds. I fully control the playback of said video directly from my editor - rewind, pause, mute, speed up, extract transcript, etc. It is enormously liberating and empowering.
I have complete and utter control over text - I can send a query to an LLM in the middle of typing this very comment, without ever missing a beat. I can ask for anything - fact-check it, spell check it, reword it, explain it, give me different variations of the same sentence. I can replace part of it with diffing in-place. I can even start changing the behavior of Emacs itself, right there on the spot.
I can directly grab any part of the log of a process running in the terminal. Grep through it, semantically search through it with an LLM, whatever. Similarly, I can directly grab a piece of any text in Emacs and send it over to another app, e.g., as a command to run in the terminal.
> Everything You describe is possible without emacs
Everything is possible with Turing-complete languages, but Turing-completeness is a trap. It's all about affordability. What Emacs grants as a Lisp-REPL loop with a built-in text editor is lowering that affordability bar to the lowest imaginable minimum.
Have you ever thought: "What if I could change the 'Open File' dialog in Sublime so I can browse GitHub repos directly instead of folders and files?" This kind of thinking has probably never occurred to you - for an Emacs user, that is some prosaic, just-another-Wednesday kind of thought.¹
---
¹ https://www.youtube.com/watch?v=BDn8ak-8yIs
By the way fishing that url out of my browser history took a keystroke - of course Emacs can search through my browser history too - https://github.com/agzam/browser-hist.el
I think the takeaway for me is that emacs is for people who get enjoyment out of building their own custom computing environment
The example you describe is something I would rarely do so building a process around it would be inefficient for me but if that’s where people want to spend time then great
> The example you describe
It's just a drop in a vast ocean of things. Your close-minded thinking just sees one thing and makes generalized assumptions.
> where people want to spend time
You're reading it completely backwards. This is the thing that I never understood about the majority of programmers. For whatever reason they just readily accept the status quo. Here's a typical example:
So often do I feel like rolling my eyes whenever I pair with my colleagues - I'd do something trivial, like fetching a list of PRs related to a specific ticket number at the cursor. They'd be like "whoa, that's cool", and then never do anything about it - they stick to their "learned helplessness" paradigm - copy the ticket number, switch to browser, navigate to Jira, pass through SSO, look around for the phone just to push the button, paste the ticket number, find the linked PRs, etc. The other teammate watching all that may say something like: "you could do it faster directly on GitHub"... And here I am - pressing a key, voila - the list. Why the heck don't they do anything about it, I just don't get it. Trained engineers, they spend years dealing with cranky software, why in the world are they unwilling to do anything about these seemingly small yet everyday annoyances? Why do so many programmers treat software as if it's magic? And I think I know the answer: because the software you use shapes your affordances. If there's no downloadable get-me-list-of-prs-for-a-jira-ticket VSCode extension and no simple way to build it, it would never occur to them to even get annoyed. In Emacs, I can write a picker in a scratch buffer by hand and it would take me minutes. Today with LLMs, I can just spend fifteen seconds, not even typing, speaking my thoughts and it goes to build it, run a sequence of e2e tests and hand it to me on the spot.
Sure, go ahead, talk about time. Make me chuckle. The irony is that the time you spend using a Lisp-based system never feels wasted; it only gets better, it has a compounding effect. It's the time you waste convincing skeptics that it is in fact enormously pragmatic and time-saving that feels like tilting at windmills. Why am I even still talking to you here, if it was clear from the beginning that you didn't in fact have good-will curiosity, only simply wanted to find evidence for your already settled and stiffened mind.
> Everything You describe is possible without emacs so I’m genuinely trying to understand the appeal
The advantage is that it’s a single program with multiple windows with a shared list of buffers. So you can save transform your layout and save it, manipulate the content without any real boundary, unified bookmarks,…
Your WM can’t access sublime and firefox internals. And the last two can’t talk with each other.
> Your WM can’t access sublime and firefox internals. And the last two can’t talk with each other.
But why would I want them to as the default interaction?
I can ctrl-c > ctrl-v from one to the other trivially and ffx has console and inspector internals visible with one Function key press
If you don't want to, then you don't want to. Understand you may want things others don't, and vice versa.
Although I don't browse the web with Emacs, I see the utility.
Tell me: How would you select some text, and with a keystroke, send the selected text to yourself via email, with the URL included and the title of the page in the subject line?
> Tell me: How would you select some text, and with a keystroke, send the selected text to yourself via email, with the URL included and the title of the page in the subject line?
I think the takeaway for me is that emacs is for people who get enjoyment out of building their own custom computing environment
The example you describe is something I would rarely do so building a process around it would be inefficient for me but if that’s where people want to spend time then great
> The example you describe is something I would rarely do
There is some tacit knowledge in here that is nearly impossible to convey in words. Your "rarely do" is the thought that subconsciously ignores the principle of least effort; there's an affordability gap, e.g., I am more likely to use a thesaurus simply because I have it built into my text editor, versus someone who has to reach for it in the browser/separate app.
> building a process around it would be inefficient for me
That's what you're missing. Emacs makes it incredibly cheap. It's a Lisp REPL. When you understand what it means in practice, it opens up incredible opportunities for exploratory computing. You're not "building processes around", you're essentially living in one mega-process, a simulation, a digital universe where you are a god, commanding change at will. Right now, as I'm typing this very comment, I noticed a tiny gap in the way how I'm using LLMs, so I'm changing this stuff on the fly, with the agent running things in the adjacent buffer while I'm finishing this comment. The crazy thing is that it doesn't have to compile, restart, ask me to pause typing, etc. It's applying changes to my editor live. By the time I finish typing the comment, it will probably have already built this feature, tested it out, and it will be ready for me to use, instantly.
> I think the takeaway for me is that emacs is for people who get enjoyment out of building their own custom computing environment
For long time users, that's the whole point of Emacs.
> The example you describe is something I would rarely do
I used to do it at work all the time (not with Emacs, but with AutoHotKey). Find a long article I'd really like to read, but don't want to waste time at work. With a keystroke, I'd quickly send the email to me with the URL etc.
> But why would I want them to as the default interaction?
Some find it useful. One can write code in vim or sublime, the only differences are the specific actions to get it done and the user experience. People will lean towards one another, not for the capability to write code, but for how it’s done.
So what I’m trying to showcase is not the capability, but the Emacs ways of getting it done. You can also implement something with a WM setup or tmux (with w3m). But it’s a different feel and effort, so people like ones and dislike the others.
Makes sense!
Less distraction is a feature
In 2026 it's almost a healthcare requirement to me.
"I use emacs to brush my teeth" or whatever is like catnip for hacker news.
If you're on MacOS and tempted by Emacs, the homebrew emacs-plus package will make it slightly less painful but bear in mind it really works best and fastest on proper *nix machines
> it really works best and fastest on proper *nix machines
Last I heard, Apple has each version of macOS certified for POSIX/SUS compliance. Did they stop doing that?
Sarcasm is the lowest form of wit
I didn't mean any snark or insult by my original comment btw, just meant non MacOS Unixes
I use Emacs For Mac OS X. Up to date and installs via a .dmg. Great experience.
https://emacsformacosx.com
There is the cost of spawning a subprocess on Mac though compared to forking, and Emacs does a lot of spawning
Might be a skill issue, but I never could get emacs to run fast. I ended up switching to vim, years ago though.
But emacs always felt like a whale.
I went through trying to use emacs for everything years ago and had a blast but ultimately it just didn't work out. You'd have to be stallman level crazy to really do it but I applaud anyone trying or doing it.
Would love to try to explore emacs again, but the emacs pinky shenanigans are such a turn-off. Simultaneously the most efficient and possibly the least ergonomic way to navigate a computer?
I've bound CTRL to Capslock and don't have much problems with it. Given that in emacs you have dired, magit, org, org-babel and now ghostel (and many more) I can't think of any more ergonomic way in using my computer. I have all my plugins like flash-jump or gptel available everywhere, it's amazing.
Easy fix, and better than Caps-Ctrl in my opinion: swap Lalt and Lctrl. That way ctrl is under your left thumb, alt under your right. No need for pinkies at all.
You can use software like Kanata to accomplish this if you don't have a programmable keyboard.
CTRL-A seems awkward in that mapping. I still prefer swapping Caps Lock and Left-Ctrl; this gives you similar Ctrl key positioning to the old terminals (VT100, ADM-3A, early PC keyboards) that were used in the early days of emacs and are the reason for all those C- keybindings.
You can use "evil mode" for Vi-like bindings if you prefer. There are a number of Emacs "distributions" like Spacemacs and Doom Emacs which come preconfigured for Vi-like editing.
+100 here. Going full evil+spacemacs (for self-documenting arpeggios instead of chord sets) a bit over a decade ago transformed Emacs from a fun toy to a fulltime environment for me.
Funnily enough, I am the opposite: I tried Vim, but I preferred the "pinky shenanigans" of Emacs to reduce trying to figure out what mode I was in to just edit files.
many people use homerow mods, but I haven't tried them personally.
if you happen to use a thinkpad and don't use the trackpoint, you can remap the two mouse buttons above the trackpad to ctrl and alt using keyd on linux. this completely solved RSI on my laptop.
> but the emacs pinky shenanigans are such a turn-off
I've never had this. I'm either lucky, or I know to use both Ctrl keys on the keyboard.
If you're typing C-x, you should use the right control key. The standard ergonomics advice is to use both hands when doing multiple key combinations.
Also, just use the usual cursor keys for navigation!
> but the emacs pinky shenanigans are such a turn-off
Do you touch type? You’re meant to use the modifier keys on the opposite side (so use both hands) rather than stretching your pinky to press them. Also there are packages such as god-mode which help.
But the most helpful thing is doing navigation by page instead of line which reduce the use of keybindings.
I think you're in for a lot of trouble if you do this without heavy-duty sandboxing in 2026. There is going to be an Emacs security apocalypse soon.
Maybe I am not up to date on my browser threats, but exactly how much damage can a website without JavaScript do? The most I can think of is cross-site form requests and cookie shenanigans, but that is a problem primarily solved by web hosts, not browser providers.
Can you be more specific about this?
> The internet is just a delivery mechanism, and for people that see it for what it really is, the internet has never been more alive. I truly recommend using the internet as if it was 1999.
Well, he has a point - Google controlling so much of the www is bad.
On the other hand, it's not all bad only. While more and more youtube videos are crap, there are useful youtube videos. Many people use it for learning too and often that works as well. Using emacs as browser really does not fix the issue. Also, emacs needs a proper editor if it ever wants to be a good operating system.
FWIW, you can login to here (https://news.ycombinator.com) using eww. The only minor issue is you are really limited to 1 line if you want to comment. And seems you cannot vote either.
I have yet to figure out how to get around those issues.
And a big plus, eww is great for resource limited systems like old 32bit laptops.
1 line? Did you try C-q RET?
This is line 2 after C-q RET
No, it did not work :(
> I have seen in my own use of the modern browser (chromium/firefox) that it is far too easy to get distracted - too easy to get off track and fall down rabbit holes that take over my day.
I have a very easy solution for that: zero sound output from my main desktop/workstation computer. I mean: technically I leave the sound drivers and the sound on, but there's nothing connected to the output (so speakers / no headphone).
The deep underlying philosophical question being: "If a PC outputs audio to nothing plugged into it, does it make a sound?"
The answer doesn't really matters though. What matters is that it's a great way to not get distracted.
My main desktop emits, on purpose, no sound since... 20 years?
For the rest, I've got laptops.
Unfortunately GNU Emacs is single-threaded and blocking by design and not well suited for this kind of thing. Using it for things like browser or window manager usually ends in either weird hacks or uncomfortable pauses.
I have more hope in projects like lem which implement new emacsen from scratch.
> ends in either weird hacks or uncomfortable pauses
Not true in practice. It is absolutely useful in real, battle-tested scenarios. If this were a deal-breaking problem, we'd keep seeing it discussed and eventually fixed. Like the issue with long lines, which was a problem in Emacs for decades and is now mitigated. Nobody complains about it anymore.
Lem is very cool, yet too young to be pragmatically compared with the 40-year package ecosystem of Emacs. Let's be honest, with all the "better" stuff, we're not witnessing herds of Lispers switching to it. Another decade may pass before we see it make more than a blip on the radar. Aside from a number of devoted Common Lispers, there's not much usage of it in the real world.
Meanwhile, Emacs is seeing another uptick. First it was Spacemacs, then Doom, now LLMs are making it very appealing, and we see HN submissions every other week. Don't get me wrong, I'm betting on both of these horses, even on Neomacs, and whichever wins, I'd be happy to see it. Emacs for now remains the uncontested king of Lisp-based text editors.
Emacs has asynchronous IO support which is more than sufficient for networking. It is up to the relevant mode or application that runs on top of Emacs to take advantage of it and not all of them do (for example, Gnus).
There are also various multi-processing configurations for even more flexibility: multiple Emacs processes that can coordinate, Emacs modules over a C API which can create native threads outside of Emacs and so on. What Emacs lacks is parallelism inside a single Emacs process, which is arguably not needed and would be a net negative from a safety, ease of development and debugging point of view.
Look at the recently introduced canvas API (https://monadicsheep.org/blog/an-introduction-to-canvas-in-e...) for some examples of what's possible via that flexibility.
Lem is nice but nowhere near as nice as modern Emacs (and probably never will be). Emacs Lisp isn't Common Lisp but has evolved significantly and the remaining differences don't really matter in practice because Emacs momentum, massive user base and ecosystem are a tremendous advantage.