Emacs is my new window manager

(howardism.org)

102 points | by gpi 2 days ago

16 comments

  • omnicognate
    5 hours ago
    Thanks to EXWM (not mentioned here), emacs has been my literal X window manager for several years. I installed it as a lark, thinking there's no way this will work properly, and just never stopped using it. It's brilliant.
    • timeforcomputer
      34 minutes ago
      You can also use EXWM in Xephyr, so you can have an emacs window with its own controlled windows instead of replacing the whole DE/window-manager. I suppose this doesn't work with multiple frames though.

      I have been experimenting with xdotool windowmap/windowunmap and override_redirect (and maybe LD_PRELOAD?) to try get something like EXWM to work without creating another X server, by capturing windows. I'm doing this in vim though.

      By the way, neovim has an apparently working EXWM-like plugin, NXWM/nwm: https://github.com/altermo/nwm

    • symfrog
      3 hours ago
      EXWM is great, having the same flow to manage X applications as for emacs buffers is a huge benefit. My only concern is if X11 will be maintained sufficiently into the future to keep using it, currently there is no Wayland support in EXWM.
      • noosphr
        2 hours ago
        I've moved to openbsd for this reason. It works well and I don't have to deal with Linux drama. Toxic slug strategy is really working well for them.
        • karmakurtisaani
          2 hours ago
          I once read a comment here or reddit explaining that the X11 developers moved to Wayland because the X11 code has turned into an unmaintainable mess that can't be worked with anymore. So the reasons are not drama, but just plain old tech debt.
          • gh02t
            2 hours ago
            The drama was mostly over whether or not Wayland should have been the replacement. AFAIU, everyone agreed X11 development was effectively unsustainable or at least at a dead end.
            • silon42
              1 hour ago
              Wayland is not a solution, just a name for some protocols... It's either KDE or Gnome (with it's weird quirks) or some alternative.
          • noosphr
            2 hours ago
            Openbsd has brought in x11 into their own codebase: https://xenocara.org/

            This is why openbsd is great.

            I don't care about the drama that happens in Linux land at all.

    • kkfx
      1 hour ago
      Me too. Only having issues with floating windows so far.
  • lsth
    2 hours ago
    There is a third option besides replacing your window manager with EXWM or a simpler tiling window manager: to manage desktop windows from within Emacs using your existing X11 window manager or Wayland compositor. This means - you can position and resize all desktop windows, - you can switch between Emacs and desktop windows by moving to the left, right, up, down window and - you can switch back and forth between a named desktop app like Firefox, okular etc. and Emacs.

    You need to install just the Emacs package Emacs Desktop Window Manager (dwin) https://github.com/lsth/dwin, for example from MELPA. Currently it works with X11 window managers as well as with KDE/KWin on Wayland or X11 (using xdotool and kdotool, resp.). I am using it all day myself on KDE/KWin Wayland in my standard setup and there it works fine.

    (I am the author.)

  • finaard
    3 hours ago
    Nowadays there's eat as excellent terminal emulator for emacs, which should replace the need to run external terminals.

    I've been using it for a w while, and recently finally got fed up about terminals on my macbook not behaving as nicely as the ones on my linux box with proper tiling window managers, so spent some effort to make SSH into a terminal with completion easy from emacs, and now mostly handle terminals in emacs.

    • volemo
      2 hours ago
      Thanks for the recommendation!
      • finaard
        1 hour ago
        Also check out the pull requests on that repo if there's something useful - in my case I've been using eat as single terminal instance for a while now - but for replacing stand alone terminals just opening multiple instances via multi-sh or similar isn't really helping for finding the terminals again. My solution was patching eat to allow buffer renames to the terminal title, and for ssh sessions, initially set the terminal title to the host I'm connecting to. Now I can easily find the terminals when switching buffers.

        On top of that I'm using eyebrowse to have multiple workspaces, and some hooks around buffer switching that switch to the workspace a buffer is on instead modifying the current workspace.

  • aaaaaaron
    1 hour ago
    "However, I also don’t like to carry two computers just to jot down personal notes. My remedy is to install a virtualization system and create a “personal” virtual machine."

    I have the same problem, but I'm not sure if a VM is a good solution. The work OS has full access to the VM and I don't trust putting my personal things even in the VM. (I consider the work laptop backdoored and full with spyware.)

    • abc123abc123
      55 minutes ago
      Why bother with a VM? When I'm in that situation, I just run my stuff in the cloud and ssh to my machine, alternatively, ssh to my machine at home. Much more minimalist and light weight than a VM as long as your customer allows outgoing ssh and/or connections to a tor/i2p hidden service.
  • tarruda
    1 hour ago
    A VM is displayed as a window on the host OS and Emacs is the window manager within that VM window. What's the difference from running emacs directly as an application on the host?
  • ejflick
    2 hours ago
    Was just looking at this article yesterday and it inspired me to try it myself. Trying it out today, my fingers became really sore from trying to navigate. Can't imagine using this for a modern development workflow where there's a lot of jumping around. To make it more ergonomic, I'd just be recreating configuration other window managers give me out of the box.

    The author mentions in the footnotes he mostly uses this setup for note taking. That makes sense as he probably remains in one window for extended periods of time.

  • lionkor
    1 hour ago
    This reminds me of "Emacs as PID 1" from a decade ago, to which I sadly cannot find a link anymore
    • Fnoord
      9 minutes ago
      I knew someone who ran it with inittab about 3 decades ago, and I very much doubt they were the only one. Emacs could be used as a full-blown OS long ago. It just depends on your needs.

      Also, the psychotherapist was one of a kind ;)

      Personally, I could live with tmux or zellij as PID 1. Because from there I can do everything, except GUI. Might as well use Sway then to achieve virtually the same.

  • ramon156
    1 hour ago
    Last time I tried I felt like an old fart using emacs. None of the keys felt natural

    That said, i did not give it a fair shot. Does anyone have any good resources to get started? E.g lazygit has a good 15min vid to get u up to speed

    • skydhash
      39 minutes ago
      Everything in Emacs exists under the “M-x” keybind (M stands for Meta which is usually Alt on linux and Option on macOS). Because everything you can do is a command (which are just normal functions that have been annotated). Then you have bindings to directly execute those functions instead of going through a prompt.

      There’s some terminology to learn to make sense of the commands. And the default keybindings are also useful to learn (and you can find them in anything that uses the readline library and equivalent: Bash, zsh, psql,…. You can also find them in macOS text widgets).

      But the thing is that Emacs have a lot of commands. They are assembled into packages and due to the nature of Elisp, can be edited and patched live. While it easy to get started (videos on youtube, the emacs documentation, the “Mastering Emacs” book), After a while, you config can become alien to anyone else. But it will stay discoverable as Emacs have a great help system.

    • chimprich
      1 hour ago
      I felt like that when I started using Emacs, about 25 years ago. It turned out to be worth it, though.

      Emacs has its own tutorial (Help -> tutorial from the menus), which is a pretty good introduction. Learning to get help from Emacs itself is a bit of a learning curve, but really beneficial.

      Learning to the use the help tools properly was something I didn't get around to for years, but I wish I had sooner.

      • massysett
        4 minutes ago
        Emacs says it is “self-documenting.”

        Years ago it was remarkable for software to have docs built-in as Emacs does.

        Then for many years it was standard for software to have help files, and it seemed anachronistic for Emacs to loudly proclaim it is self-documenting.

        Now in the Web and LLM age, much software doesn’t even try to have built-in help or even much documentation, and it’s again remarkable that Emacs is self-documenting, especially the part of Emacs that users can program.

  • dieulot
    5 hours ago
  • ainiriand
    53 minutes ago
    Sometimes you just enjoy hard mode.
  • mkesper
    3 hours ago
    With Debian as VM this would probably much leaner. Was shocked about current Ubuntu image sizes. E.g. no need to have to download about 500MB of firmware packages with each new kernel.
  • mgd
    2 hours ago
    Been a happy EXWM user for a few years now. Really impressed that it comes as a desktop option for GUIX.

    GUIX, EXWM, and Emacs are home for now :)

  • prmoustache
    2 hours ago
    > I do not install personal software

    To the eyes of his employer installing a personal VM is probably exactly the same.

    • calgoo
      2 hours ago
      The only issue I have had installing VMs on work machines in 20 years of corporate jobs, is licensing questions. Once you prove your licensing is fine then they don't care anynore.
  • rsync
    4 hours ago
    Hmm ... I used ratpoison 25 years ago ... is it current/maintained ?

    Is there a live release/support/discussion ecosystem for ratpoison in 2025 ?

    • roryrjb
      3 hours ago
      Ratpoison was always my favourite tiling window manager. There's also a fork called sdorfehs[0] which seems to still be maintained and has a bunch of minor improvements here and there.

      0. https://github.com/jcs/sdorfehs

    • moirre
      3 hours ago
      A quick google search reveals a lot of (4 years old) youtube videos about it. And although not very meaningful, it's archwiki page was updated a lot in the past 4 years, which means there are still people visiting that page and potentially using it. I've also seen some recent ratpoison rices on the internet.

      For support, I'm sure the users in the past has generated enough forum threads for you.

    • cess11
      3 hours ago
      It was released 25 years and four days ago, and is still around. Simple enough to still work I'd bet, though the last official release was in 2017 or so.

      https://www.nongnu.org/ratpoison/

      http://savannah.nongnu.org/projects/ratpoison

      I used it for a while back then, before switching to IceWM because it was more fun to configure. Prepared me well for a much later move to i3.

  • batrat
    3 hours ago
    Me: Open browser full screen, vscode selfhosted, termix, tacticalrmm/guacamole. Nowadays I only need a browser.
    • defraudbah
      3 hours ago
      lol, another side of the spectrum nice setup
  • patrick4urcloud
    4 hours ago
    you can do the same with https://omarchy.org/