reddit / emacs
EXWM vs. other tiling WM
ExistingProgram3883 · 2022-03-18 15:43
Currently, I am trying to choose a tiling window manager for day to day work -- programming, academic writing, video conferencing and the like while working on a mono- or multi-display setup running Debian. I'm wondering how popular EXWM actually is within the group of Emacs users compared to i3, dwm, xmonad and others.
- What are factors to consider, when choosing EXWM vs. any other tiling WM?
- Would you tell me which tiling WM you use and why?
Thanks already in advance for sharing your experience.
Kartoshk · 2022-03-18 15:48
I'm using xmonad, started because it's the one of which I've happened to hear most.
Looked into using EXWM, here are things that dissuaded me from using it right now:
1. there seem to not be a way to have "different independent workspaces" on different monitors, this is something I enjoy very much in xmonad, changing them independently from one another
2. my emacs often hangs, I use lsp with scala, and sometimes in other situations.
not having my wm hang when emacs is having troubles is a blessing
ThorstoneS · 2022-03-18 16:20
I looked into exwm, but decided against it because:
- exwm hangs when email locks due to being single-threaded
- multi-monitor support is lacking
I use i3wm (actually regolith-desktop) and feel that emacs integrates nicely.
MagpieMars · 2022-03-18 16:25
In regards to workspaces per monitor;
This can be done by setting `exwm-randr-workspace-output-plist`
Here is an example:
exwm-randr-workspace-output-plist
'(0 "DP-1" 1 "DP-1" 2 "DP-2" 3 "DP-2"))
Workspaces 0 and 1 are assigned to DP-1 (monitor 1), workspaces 2 and 3 are assigned to DP-2 (monitor 2)
Configuring like this, you can assign any number of workspaces. Be it with 2, 3 or even 4 monitors
lisp · 2022-03-18 16:35
I just use emacs maximized with no title bar, no menu bar, and no scroll bar.
All day, everyday.
AuroraDraco · 2022-03-18 16:43
Biggest problem for me is that emacs, albeit a great program has a tendency to hang at times. I dont mind that so much as its not an every day occurrence for me (not talking about those that last 5-10 seconds, you can wait those out, I am talking about when it actually hangs). But if that's your whole OS, things start worrying me.
Now as for what I use, its qtile. Why, because I am too lazy to switch from something that works and honestly, I don't want fancy features from my WM, it just needs to tile windows. I originally tried qtile as a dynamic window manager moving from i3, and was planning to try other things, but honestly I don't need them. Emacs can do the fancy stuff
redback-spider · 2022-03-18 16:46
I am a long term user of exwm the main advantage is that you have 1 layer of keybindings to control everything. That is a huge advantage. Like I have some sort of mod key and I only need 1, also you can configure all in your lisp config which is at least slightly nicer than most tiling wm configs, and you don't need external scripts because you can mostly program every behaviour in elisp directly.
The disadvantage is for me at least, that exwm doesn't work to well with xah-fly-keys, but I would argue that for evil or other vim modes it's similary strange because the command mode makes not much sense in a X-buffer inside of emacs.
You can try to mimic some emacs functionality inside a tiling wm like getting a select-buffer and find-file dialog that behaves similar to smex or so through rofi.
And yes multimontior support is a bit better. I would start with i3.
But using a while exwm can be useful to learn what you try to find solutions inside of a tiling wm.
L-Szos · 2022-03-18 16:56
I use StumpWM, a WM written in Common Lisp. I use it because its quite hackable, similar to EXWM, and is rather stable. It has manual and dynamic tiling, as well as floating windows (either in a floating group or floating in a tiling group). I used EXWM before Stump, but had issues with emacs hanging and causing problems. One thing holding stump back is that workspaces (groups in stump parlance) arent per monitor (head in stump parlance). I heard someone was working on fixing that, but I'm unsure of their progress.
ExistingProgram3883 · 2022-03-18 17:08
What was the thing of i3 that made you switch to qtile?
AuroraDraco · 2022-03-18 17:09
I wanted to try dynamic tiling. And turns out I like it more in the end. Things get done easier
BettaGeorge · 2022-03-18 17:33
Out of curiosity, what is lacking in the multi-monitor department? I use exwm with three monitors and hotplugging, and have never experienced any issues. It is actually the only WM besides i3 that has ever satisfied my monitor requirements.
BettaGeorge · 2022-03-18 17:35
>1. there seem to not be a way to have "different independent workspaces" on different monitors, this is something I enjoy very much in xmonad, changing them independently from one another
Been using exwm with independent workspaces on three monitors for a year now, so I can confidently say that it supports this. It takes literally one line of elisp (see the other commenter's reply).
xmonad is great, though.
[deleted] · 2022-03-18 17:41
[deleted]
BettaGeorge · 2022-03-18 17:42
Exwm! Exwm forever!
Although if you have never used a tiling window manager before, yo probably shouldn't start with exwm. That's like giving an unconfigured vanilla emacs to someone who has never used a text editor before. I would say start with i3, which has brilliant multi-monitor support and atrocious configuration files, run that for a few months, then switch to exwm and rejoice at the elisp config.
Do not be discouraged by people claiming that exwm has bad multimonitor support; that is simply not true (anymore). I have replicated all of i3's multimonitor behaviour in exwm, only better.
The only downside of exwm is that sometimes, if a part of your emacs hangs, it will freeze your entire system. It doesn't happen to me often, but it does happen and is terrible.
But it is _so much easier_ to have emacs keybinds everywhere by default than to try and teach i3 (or xmonad) to accept all the emacs keybinds you care about. Unless the freezing becomes a daily occurrence, I am never going back.
ExistingProgram3883 · 2022-03-18 17:49
Thanks for your advice. Do you have any guide or resources to start with and get the most emacs-keybinding-compatibility out of i3?
Should I consider some DE like regolith?
ExistingProgram3883 · 2022-03-18 17:53
That's an interesting view. Basically this is my current setup (beside a Firefox browser) running on gnome.
Have you tried i3 and others or did you just not bother to switch this setup?
franburstall · 2022-03-18 18:52
I went straight from vanilla wm (whatever cinnamon uses) to exwm and have never regretted it. As other posters have said, have one mod-key for everything is very wonderful but the main thing is that there is no context switch at all.
jrm2046 · 2022-03-18 18:58
The main reason I don't use EXWM any more is my need for better mouse support (i.e. long click vs short click vs click-and-drag) for graphics packages like Gimp and Blender.
ExistingProgram3883 · 2022-03-18 19:08
Thanks for your opinion. What is your current setup then?
jrm2046 · 2022-03-18 19:17
Cinnamon/Mint. I bounced between a few tiling WMs, but decided if I can't use EXWM I'd just use emacs full screen and do as much as I can in there, and put my graphics packages on a separate workspace. Beats having to log in/out just to use a mouse heavy program.
I know the original question was more about alternative tiling WMs, so apologies for straying off course. Just wanted to throw in my 2 cents of what's holding me back from EXWM since I haven't seen others raise the mouse concern previously.
adeldude13 · 2022-03-18 19:42
i use i3, it has the best community support, its easy to configure and it gets the job done without having to tinker with it all the day
Kartoshk · 2022-03-18 19:48
Thank you very much for sharing this!
It is much better than I expected from what I could find to read online
I thought that it supported only "both displays show two screens which part of workspace#1 and switch together to two other screens that are workspace#2"
With that what I habituated to in xmonad is 10 workspaces and each can be assigned to any display, so shuffling them around is very easy.
Now I suspect that shuffling around windows between workspaces of two separate displays could be just as easy with habituation.
totherme · 2022-03-18 19:49
I've not tried EXWM because I'm afraid of emacs hanging. I have tried:
- xmonad
- wmii
- stumpwm
- i3
- awesome
- possibly others I've forgotten
And tbh, I'm fairly happy with all of them. In stumpwm it was fun to be able to mess with the config while the wm was running (just like in emacs).
I do slightly prefer recipe-based window layouts like in xmonad and awesome to the more manual-feeling ones like i3.
I'm currently using awesome partly because I'm trying it out, and partly because it seems happy to do most of what I want with the default configs.
Stuff I want includes:
- for it to work with multiple monitors (or "dual head" if you prefer that old terminology)
- an option for floating windows for graphics editors, etc
- a full screen option
- a vertical tiling option
- an easy way to shunt windows between multiple desktops and monitors/heads
- a temporary maximise option (although if not present, it might only be two keypresses to move the window and my viewport to another empty workspace)
- somewhere to put applets like nm-applet, and so on
- documentation (like a man page or info manual or something)
- tab-completion when I'm typing a command/app to run
So far, awesomewm (as installed by the ubuntu package) might be the only one that's done all these for me out of the box with no configs. However, it's been a long time since I tried some of these, so I might be unfairly comparing outdated versions with new ones.
ExistingProgram3883 · 2022-03-18 19:50
Thanks for your opinion. Any additional setup (regolith or the like)? Can you point me to any good guide?
adeldude13 · 2022-03-18 20:28
i recommend you go through the [i3 user guide](https://i3wm.org/docs/userguide.html), here is [my setup](https://notabug.org/adeldude13/dotfiles) if you want to take a look
ThorstoneS · 2022-03-18 21:09
I'm teaching, and I use one perticular feature a lot: preparing a screen on my screen and then "throwing" it to the right with <Super><Ctrl><Shift><L>.
When I tried it, it was a bit clunky. But that may have just been me, and easily fixed with a better config.
The WM freezing whenever emacs does was the deciding factor, though.
Horrih · 2022-03-18 21:26
Exactly the same as both of you guys. It just works, firefox needs some mouse anyway so using a tiling window manager does nothing to help with that.
I don't need splits with more than two apps Which gnome covers well with nice bindings so i never saw the need of switching to a tiling WM.
The content of the emacs instance can already be split/resized at will anyway but even then i don't do that often.
BettaGeorge · 2022-03-18 21:40
Pretty sure I've seen emacs configs for i3 floating around the web. Drop one of those into your config folder and see what happens, I guess.
Be warned, the i3 config syntax is horrid. For years, I had a perl script that took a reasonably-written config and parsed it into an i3 config because I could not be bothered to do it by hand.
Atemu12 · 2022-03-18 22:20
Another factor to consider is that EXWM will be stuck on X11 for the foreseeable future.
i3 for example has sway as a wayland equivalent.
arthurno1 · 2022-03-19 00:56
I have something similar; I run (usually) screen split in two windows: firefox and emacs. But I use compiz with grid plugin, so I can press keyboard shortcut and put a window to the left or right, or behind/afront. Before I used to use dwm for a while, but I realized I was still managing my windows more than I wanted. It was just different management operations than with typical floating wm.
Danrobi1 · 2022-03-19 01:33
> Basically this is my current setup (beside a Firefox browser) running on gnome
Managing every applications with-in Emacs buffers that's so awesome. Best WM is actually Emacs. You wont find any WM's out there who by default has anything close to Emacs buffers behavior. If you know Emacs you're already set for EXWM.
Danrobi1 · 2022-03-19 01:47
> I used EXWM before Stump, but had issues with emacs hanging and causing problems.
Never tried Stump's. Its interesting to heard tho that Stump does not hang. I thought it was an Emacs thing, being single threaded.
[Emacs doesn’t have actual parallelism (yet), only one thread runs at a time.](https://www.emacswiki.org/emacs/NoThreading)
L-Szos · 2022-03-19 02:49
Well, to be clear, StumpWM *can* hang, for example if you run a non terminating shell command synchronously. I'm not sure why emacs hangs, but I wouldn't be surprised if its related to the single threadedness.
grewil · 2022-03-19 05:51
Another i3 user here. I think it’s great - polished and sleek, and you can interact with it programmatically while it’s running. I use an addon called i3-gnome, which makes all of gnome-control-center work, including all settings regarding screens. Please note that you should both install it, then follow the instructions on its tips and tricks page (some extra packages are added and some i3 settings changed).
https://github.com/i3-gnome/i3-gnome
ExistingProgram3883 · 2022-03-19 05:53
Thanks for this good hint on i3-gnome.
Have you been using i3 on the host running VirtualBox VMS as well?
grewil · 2022-03-19 05:56
Yes, I use it everywhere since a few years.
ExistingProgram3883 · 2022-03-19 06:03
Good to here, does it interfere with VirtualBox hosts keys? (I'm dependent on this hypervisor at work for several reasons)
grewil · 2022-03-19 06:10
I don’t really know because I have Linux installed directly on the metal so to speak. It may depend on which key you choose as i3 meta key too - if you use Windows as host OS, and select the Windows key as i3 meta key, there could potentially be problems, as Windows seem to have that key hard coded into it.
I have tried running a VNC session on a host with i3, and where the remote VNC server also ran i3 (so sort of half similar to your setup). Iirc I had to choose different meta i3 keys for the two, but I may remember wrong - in full screen mode it may have worked with the same - which could be the case for Vbox too.
ExistingProgram3883 · 2022-03-19 06:19
Thanks, I see. I meant it the opposite way: Linux with i3 running on bare hosting several Linux/Windows-VMs in VirtualBox. I read that there are lots of lots of problems. But I assume those will be there with EXWM as well, won't they?
grewil · 2022-03-19 06:21
Aha, sorry I misunderstood! Hm, you better give it a try and tweak around a bit - I would think it’s possible, but then I’m an optimist. Good luck!
Horrih · 2022-03-19 07:17
For those who switched, what replaced the universal search of gnome ?
I.e when i want to open a file or app, I press the super aka windows key then type the first 2/3 characters to search for it then <ret> to open.
Is there a similar file/app indexing in exwm ?
_viz_ · 2022-03-19 10:05
A certain child in me temps me to try wmii from time to time, and I
have to admit that it is an itch that I would like to scratch however,
given how it is essentially dead, I longed to ask a wmii user about
their experience before satisfying the child with the plaything of
her choice. So here are the questions from the child herself: Just how
was the experience? Did you go crazy and use Elisp to interact with
wmii? Should I try it out for the heck of it?
arthurno1 · 2022-03-19 11:00
I am using [Rofi](https://github.com/davatorium/rofi) and have been happy with it for like few years now. I use it to both run programs and, instead of alt-tab, to switch between top-level windows (applications). It can also open files, and there is a relatively recent [add-on that extends it to be more like a file explorer](https://github.com/marvinkreis/rofi-file-browser-extended) as well.
I think it is quite fast and snappy, and you can extend it with CSS themes to blend it well with your desktop. There are quite many available already.
I think /u/auroradraco had some recent post where he did some Helm+Emacs rofi-clone, or was it someone else, I don't remember. Search this thread, it wasn't so long time ago, so you will find it easily.
zixx999 · 2022-03-19 11:56
I like i3, but I recently came back to Plasma, and found a plug-in called Bismuth that adds pretty decent tiling to it.
naokotani · 2022-03-19 12:01
I use I3. I've considered using exwm because I like emacs, but the reality is that i3 works quite well and all that I use my DE for is switching between terminal, emacs and browser and discord. Not even sure what else I'd want to to do.
gammarray · 2022-03-19 13:24
I switched from MacOS to Linux with Emacs + EXWM 4 years ago and never looked back.
Yeah, when Emacs hangs/blocks, it’s annoying, but (usually) easy to recover from by switching to another TTY and running ‘pkill -sigusr2 emacs’.
Most important reason to use EXWM despite the known issues: staying flow is easier when using consistent keystrokes across application boundaries.
Edit: To clarify further, I don’t just mean consistent keystrokes for window switching. You get that, in-app navigation, and (some) editing keystrokes. Plus, if you’re really ambitious you can script things like moving lines or changing text case with Elisp. I have created a number of productivity enhancement functions for use in X applications thanks to EXWM; it feels like a super power.
AuroraDraco · 2022-03-19 13:33
Hello, I did indeed make one of those (although it was with counsel and not helm, but that doesn't matter so much). [Here](https://www.reddit.com/r/unixporn/comments/s7p7pr/so_which_run_launcher_do_you_use_rofi_or_dmenu/) is the post about it and [here](https://github.com/Vidianos-Giannitsis/Dotfiles/tree/master/emacs/.emacs.d#emacs-launchers) is the section of my config that has the code to run the emacs-run-launcher function (although if I recall correctly the code is also in my comment in the reddit post).
However, both dmenu and rofi are exceptional programs for doing the tasks u/Horrih asked for. I just made a run launcher for emacs for the fun of it. But I guess if you want an emacs-based launcher and don't want to rely on external stuff its great. Feel free to try it, I am pretty sure it takes things from the same list your gnome menu does, but its emacs, so you should feel right at home.
totherme · 2022-03-19 14:02
The experience was good, and wmii was my WM of choice for a long time.
Xmonad had been my intro to tiling window managers, but it had seemed to be a reaction to the 10kloc project. Realising this made me curious, so naturally I had to try wmii to see if it was better. At the time, I think wmii kinda did offer a better experience, but just because it had been around longer. At the time I started running xmonad, it still felt like it was mostly [a couple](https://donsbot.com/2007/05/01/roll-your-own-window-manager-part-1-defining-and-testing-a-model/) of [blog posts](https://donsbot.com/2007/05/17/roll-your-own-window-manager-tracking-focus-with-a-zipper/) about how you could use [a neat data structure](https://en.wikibooks.org/wiki/Haskell/Zippers) and haskell to write a window manager in one or two thousand lines of code, instead of the 10kloc that the C folks thought was small. But the haskell folks hadn't been doing it for long, so `xmobar` wasn't a thing yet, and running programs involved using `dmenu` from the wmii folks... With wmii all the bits already fit together properly. My experience was that (once I'd plumbed it into my `.xinitrc`) it *just worked*, and it did dynamic tiling window management, which was what I wanted.
I don't think I ever used elisp to interact with wmii. I was fascinated by the whole plan9 "everything is a file" thing, but wasn't yet enough of a tinkerer to actually make use of it. For me at the time, having dynamic tiling and the ability to bind whatever scripts I wanted to whatever keys I wanted already felt *amazing*. I think I did more tinkering when I got into stumpwm, because the ability to live-edit your WM makes it easier to "just try this one thing". With xmonad and wmii, I'd had to be itchy enough that I was prepared to save and shut down all my stuff as the price of scratching. With stumpwm, the bar to messing with something was much lower.
At some point I started doing things like telling my WM that my default terminal program should be `emacsclient -c -e '(eshell)'`, but this is kinda the opposite of what you were asking about. Once I was in emacs I never had much need to mess with the WM. And in any case, eshell turned out to be [a gateway drug](https://www.kindness.city/blog/2022-03-12-using-emacs-as-my-shell.html) for me anyway.
> Should I try it out for the heck of it?
I think so long as your experiments aren't going to hurt anyone, the answer to that question should always be "yes" :)
I'm not sure wmii has any concepts to teach that you can't get from existing tiling WMs, but it might be of historical interest. It might also just be fun to play with.
On the off-chance that you've not tried it, another rough contemporary is [ratpoison](https://www.nongnu.org/ratpoison/). I never got into that because it's not as "dynamic" as xmonad and wmii, being modelled instead after [gnu screen](https://www.gnu.org/software/screen/) (which is kinda more similar to the i3 experience). These days I suppose they'd say it was similar to [tmux](https://github.com/tmux/tmux/wiki). Ratpoison pre-dates all the other WMs I've talked about, and still seems to be (sort of) going. Looks like the only commits since 2017 have been non-code ones, but folks clearly cared enough to move the IRC channel when the freenode controversy happened last year.
Horrih · 2022-03-19 14:58
Thanks guys, for some reason i expected some not sexy stuff integrated into emacs, but i might give it a try !
_viz_ · 2022-03-19 15:49
Thanks for your detailed reply.
>The experience was good, and wmii was my WM of choice for a long time.
>
>Xmonad had been my intro to tiling window managers, but it had seemed
>to be a reaction to the 10kloc project. Realising this made me
>curious, so naturally I had to try wmii to see if it was better. At
>the time, I think wmii kinda did offer a better experience, but just
>because it had been around longer. At the time I started running
>xmonad, it still felt like it was mostly a couple of blog posts about
>how you could use a neat data structure and haskell to write a window
>manager in one or two thousand lines of code, instead of the 10kloc
>that the C folks thought was small. But the haskell folks hadn't been
>doing it for long, so xmobar wasn't a thing yet, and running programs
>involved using dmenu from the wmii folks... With wmii all the bits
>already fit together properly. My experience was that (once I'd
>plumbed it into my .xinitrc) it just worked, and it did dynamic tiling
>window management, which was what I wanted.
>
I was introduced to wmii from dwm. As far as I can tell, wmii seems
to be the father of the dwm project, influencing it in a lot of ways.
The dynamic tiling is the predominant similar but I think wmii also
used tags (which came from larswm IIRC). I was mostly fascinated by
its aesthetics after seeing Uriel's screenshot of his setup.
[ And thanks for the history lesson, this part of the
dwm-awesome-wmii-wmi-xmonad atmosphere that I did not know about. ]
>I don't think I ever used elisp to interact with wmii. I was
>fascinated by the whole plan9 "everything is a file" thing, but wasn't
>yet enough of a tinkerer to actually make use of it.
But of course, this part fascinates me the most. I was introduced to
the notion of sharing the WM's state from a patch of Mitch Weaver's
(https://github.com/mitchweaver) which exposed dwm's tags state via a
filesystem interface so that he can use lemonbar as his status bar. I
managed to extract the relevant bits from his dwm configuration and
incorporated into mine... then I learnt about wmii and its filesystem
interface, and began exposing more of dwm's state which sort of
allowed me to script things (and I did the same to windowchef when I
eventually hopped to it as well) but it wasn't complete in the sense
that I could not write to the file to make changes to the WM, so I
switched to awesome instead which is scriptable (and also because, it
had tags).
>For me at the time, having dynamic tiling and the ability to bind
>whatever scripts I wanted to whatever keys I wanted already felt
>amazing. I think I did more tinkering when I got into stumpwm,
>because the ability to live-edit your WM makes it easier to "just try
>this one thing". With xmonad and wmii, I'd had to be itchy enough
>that I was prepared to save and shut down all my stuff as the price
>of scratching. With stumpwm, the bar to messing with something was
>much lower. At some point I started doing things like telling my WM
>that my default terminal program should be emacsclient -c -e
>'(eshell)', but this is kinda the opposite of what you were asking
>about. Once I was in emacs I never had much need to mess with the
>WM. And in any case, eshell turned out to be a gateway drug for me
>anyway.
Yes, this is one of the things that annoy me about awesome. I change
something, reload the config, and I get hit with a whiplash. It is
annoying but I do not tinker enough with awesome to find this
annoying. Emacs is also my main interface, and I try to recreate a
9term-like environment.
>> Should I try it out for the heck of it?
> I think so long as your experiments aren't going to hurt anyone, the
>answer to that question should always be "yes" 😃 I'm not sure wmii
>has any concepts to teach that you can't get from existing tiling
>WMs, but it might be of historical interest. It might also just be
>fun to play with. On the off-chance that you've not tried it,
>another rough contemporary is ratpoison. I never got into that
>because it's not as "dynamic" as xmonad and wmii, being modelled
>instead after gnu screen (which is kinda more similar to the i3
>experience). These days I suppose they'd say it was similar to
>tmux. Ratpoison pre-dates all the other WMs I've talked about, and
>still seems to be (sort of) going. Looks like the only commits since
>2017 have been non-code ones, but folks clearly cared enough to move
>the IRC channel when the freenode controversy happened last year.
I tried ratpoison and got scared. :) Personally, I do not
particularly care for tiling anymore since I just fullscreen all the
windows most of the times but I'm interested to see if a filesystem
interface really is feasible for anything semi-complex. But wmii
being a dynamic tiling WM is also a plus.
Thanks again, I loved this exchange.
totherme · 2022-03-19 15:56
Thank you!
If you do anything fun with the filesystem interface, and find the time to write about it, I'd love to read about it.
arthurno1 · 2022-03-19 16:01
Thanks for the reminder!
PanamanCreel · 2022-03-19 17:21
I also use Stumpwm. I tried EmacsWM. My emacwm was prone to hanging often, and while some programs worked just fine, most of the web browsers generated their own window and hung over what ever window I worked with.
Stumpwm allows me to make changes on the fly, I can either choose not to have a modeline (and let Emacs act as my modeline) or have one with no problems either way.
by_wicker · 2022-03-19 18:40
Also, when I was using it I used one EXWM workspace per monitor, but then `eyebrowse` to give workspaces *per* monitor. I would now use `tab-bar-mode` rather than `eyebrowse`.
I found the hierarchy helpful. Switching EXWM workspaces was switching monitors, then within the monitor switch activity workspaces. I really liked that a window can then be in many workspaces, in different locations (though not visible in more than one at a time).
by_wicker · 2022-03-19 18:43
> if you have never used a tiling window manager before, yo probably shouldn't start with exwm
I would say the important issue is how familiar you are with *Emacs*'s window management. If you're comfortable splitting and controlling Emacs's windows, you're sorted.
Personally I loved having just the Emacs world for window management, but ultimately found it not worth dealing with the downsides, especially making use of TRAMP over high latency connections that causes a lot of delays. `M-x tramp-cleanup-all-connections` was a frequent command! To some extent I got around it by running other instances within EXWM, but bugs and other issues mean I found that for me the balance of benefits is with a separate WM.
I currently use `i3` and integrated Emacs and i3 window movement, and generally it works better for me. It's also much prettier. While it's hardly living in the mainstream, it's much closer to it than EXWM, and that brings benefits in itself.
At the time I left EXWM it was looking abandoned, and then there's the Wayland issue, so apart from the fact I find `i3` quite pleasant, there was the added benefit that `sway` is there for a very low friction switch to Wayland.
by_wicker · 2022-03-19 18:48
That has always been my way, which is why EXWM appealed. Always fullscreen, except if I needed a web browser or something, in which case I split the screen for the two. I managed Emacs windows, and WM windows, so why not just bring them together so I only have one interface?
Though I've since left it for `i3` after some hopping around, and am broadly slightly happier with that too.
But doing most things in Emacs, full screen, means my needs for a WM are pretty light. I don't have masses of windows to manage, or heavy tiling use since it's usually just one or two windows per workspace.
by_wicker · 2022-03-19 19:09
I have trodden this path. Most of my time is in a fullscreen Emacs, and the rest is mostly just the web browser.
- years of Unity and then (briefly) Gnome 3 desktop with very minimal pseudo-tiling
- EXWM for almost 3 years
- tried i3, but others sounded interesting so I tried:
- dwm
- herbstluftwm
- back to i3
I loved having only one windowing model, and the ability to use the likes of `tab-bar` mode for workspaces where an X window can live in more than one workspace. Not many WMs offer that for some reason.
I left EXWM because:
- pauses and hangs, e.g. using TRAMP over long-latency connections
- Annoying to have to log out/in just to restart Emacs. Even worse now I use lsp etc., and frankly, a quick restart is sometimes well worth it. I never got restarting Emacs without logging out to work.
- bugs - e.g. at the time I had to use some Java app that just would not display
- it was apparently abandoned at the time, with no path to Wayland.
- ugliness, as there's nothing but Emacs and X windows. No desktop background or other prettiness. I'm surprised how much I appreciate this.
I slightly miss the tight coherent single windowing-model, but mostly I find life better in i3. I have window movement keys integrated between i3 and Emacs so `s-{hjkl}` allows me to step to adjacent Emacs windows or X windows (e.g. as [described here](https://www.reddit.com/r/emacs/comments/pd8prz/system_crafters_bringing_some_light_about_the/hb6hgz6), but I have extended that to manage multiple Emacs instances).
In both cases I used `gnome-flashback` to get a curated Desktop Environment without having to roll my own - e.g. [i3-gnome-flashback](https://github.com/regolith-linux/i3-gnome-flashback) and [exwm-gnome-flashback](https://github.com/WJCFerguson/exwm-gnome-flashback).
by_wicker · 2022-03-19 19:14
Bringing terminal into Emacs is worth it IMO. I like `vterm`.
Yeah, living fullin in the Emacs ecosystem means we really need very little from our WM. Integrating i3 with Emacs via scripts and `emacsclient --eval` is pretty straightforward too. Same goes for any WM with CLI or socket control.
naokotani · 2022-03-19 19:22
I have used vterm and I agree that it's good, but there are a lot of good terminal emulators to choose from.
I like using the asynchronus shell commands feature in emacs too. Defintely more than one way to skin a cat.
doolio_ · 2022-03-19 22:04
How do you switch to another TTY in such a case?
gammarray · 2022-03-20 12:20
Here’s a good overview https://www.techwalla.com/articles/how-to-switch-tty
doolio_ · 2022-03-20 22:15
Thank you.