What does HackerNews think of exwm?

Emacs X Window Manager

Language: Emacs Lisp

There have been tiling window managers based around Emacs before. I think the most recent I tried was https://github.com/ch11ng/exwm -- in this case the window manager is itself emacs, and your windows are buffers in emacs etc.

It makes a lot of sense, since Emacs does its own tiling, and one is usually familiar with the keystrokes already, and then you don't have tiling in tiling.

So I keep meaning to go back and try this again, or something similar, but I recall it having issues with a lot of my commonly used applications back when I tried it.

When I get in the tiling mood, I use regolith, which is a nice packaging up of i3 in with the gnome environment. I'd love to have something like that, but built around emacs.

(The crazy thing is I'd probably end up editing source code in CLion inside that... since the CLion Rust plugin is superior to anything I can get in emacs)

You can even use Emacs as a window manager if you are so inclined. https://github.com/ch11ng/exwm
I've been using i3 for a few years now. I wouldn't go back to a non-tiling window manager at this point. Initially I was drawn to stumpwm [0] because it's built with Common Lisp and therefore very hackable. There is also exwm [1] which uses emacs, but I haven't tried it.

In practice, though, I've found that I rarely want to write any hacks for i3 itself. But this article is very cool and I may use some of this stuff. The one thing I have spent some time on is my i3blocks config which has some things I like such as CPU/RAM usage monitors and ability to control pulseaudio (switch outputs, control volume etc.).

I use i3 at work but for more than a year now at home I've been using sway. I've had a few bugs with Firefox on Wayland, but currently it's all working very well. Sway is excellent.

[0] https://stumpwm.github.io/ [1] https://github.com/ch11ng/exwm

I use qutebrowser in one-window-per-tab mode and EXWM[1] as my window manager (with ivy for switching buffers). It still needs some more integration but currently is my favorite solution to this problem.

[1]: https://github.com/ch11ng/exwm

Meta: mods, please consider changing the link to the repo's root [1], since the screenshots page lacks a description of what the project is. It's easy enough to find the screenshots page by reading the root page.

[1]: https://github.com/ch11ng/exwm

When I started using Emacs, I didn't think I'd use it much except for org-mode, which was the reason I started learning it. Then, as my usage expanded, I didn't think I'd want to use it for anything beyond org-mode, programming, and core text editing functions. Certainly not email or any of that other foolishness. Flash forward a couple of years and here I am, looking into making Emacs into my actual X window manager [1] so that I finally use it for everything, period.

I recognize that the practical arguments in favor of doing this are limited at best. Sometimes people "Emacs evangelize" by talking about how living entirely within the program allows them to have one text editing paradigm for everything in their lives; even though that is indeed nice, non-users aren't wrong to be skeptical about the practical benefits, given the amount of effort that will probably be involved. The secret is that for many Emacs users, it's just plain fun -- hence the things shown in this article, and also EXWM.

[1] https://github.com/ch11ng/exwm

https://github.com/ch11ng/exwm

Chrome in emacs? No problem. Excel on linux on emacs? No problem, just run Excel on Windows on VirtualBox on emacs.

(in case you missed it from my first comment, I'm being facetious)

If you want to talk about text editors in that post, Emacs is wildly, almost obscenely configurable (I'm currently using Emacs as my Linux WM[0]). Vim has its own scripting language that you can use to write custom bindings and configs, and they can get similarly complicated. Sublime has a pretty good Python API. Even Nano can have its syntax highlighting extended.

The extensibility of those systems are why they've stuck around. The composability of Vim's keybindings are why people keep reimplementing Vim modes in different pieces of software.

If you don't like Electron, fine, but what does that have to do with building malleable systems? Can you name me any popular native text editor that's used for serious work and that doesn't support plugins?

> Moreover, why should we go through all the hoops needed to encourage novice/non-programmers to modify things they don't really understand anyway[?]

This is like asking why a programming language should have power-user features in it. I mean, by that logic why would anyone add pointers to a language like C? Pointers are hard, and most programmers aren't very good with them. Why go through the hoops needed to encourage programmers to use a memory model that most novices don't understand very well?

If you design a system or program only for beginners and no one else, then only beginners will use it. Once they've matured, they'll leave so that they can find something else that meets their evolving needs. Good software design considers the entire life-cycle of how a user will interact with a program as they develop and learn new features.

Many users will never get to the point where they'll want to program extensions themselves, but even they will often benefit from having extensions written for them by the surrounding community.

[0]: https://github.com/ch11ng/exwm

> Of course now lots of people just use emacs with shell buffers as a windowing system, inside of something like screen or tmux.

There is an X window manager written entirely in elisp for GNU Emacs, EXWM, that was started in 2015:

https://github.com/ch11ng/exwm

I have been using it exclusively on my machines for the past three years. By far the best computing environment I have used.

In 2018 I stumbled on XWEM, an X window manager in elisp for XEmacs that was developed from 2003 to 2004:

http://www.nongnu.org/xwem/

exwm [1] is the best change I have made to my desktop experience in terms of improving productivity. For a tutorial on how to set exwm up see Uncle Dave Emacs Tutorial 14 - EXWM aka managing X windows with emacs [2].

[1]https://github.com/ch11ng/exwm

[2] https://m.youtube.com/watch?v=Gk9-q8tXbMs

I use rcirc [1] on Gentoo from exwm [2]. I frequent freenode, oftc [3]. Honestly, I love irc. Also, exwm changed how I work in a very positive way. Next, I want to try the Next browser written in Lisp [4]. Although I have never used it, I know of people that use Bitl Bee [5] to interface with slack from emacs irc clients.

[1]https://en.m.wikipedia.org/wiki/Rcirc

[2]https://github.com/ch11ng/exwm

[3]https://www.oftc.net/

[4]https://next.atlas.engineer/

[5]https://www.emacswiki.org/emacs/BitlBee

I agree, there is no better desktop environment than Emacs: https://github.com/ch11ng/exwm