I am running Ubuntu 19.04 on my laptop and want to use EXWM as my window manager, but am not sure how to get it into the list of window managers that one can pull down when one logs in. It seems to only list "officially supported" ones.

2 Answers 2


You need to create /usr/share/xsessions/emacs.desktop with the following content:

[Desktop Entry]
Comment=Emacs Window Manager

After that you should be able to select it from that menu.

  • Yes. I was wrong about there being no executable. But you will have to link your ~/.xinitrc to ~/.xsessions. I have modified my answer below.
    – user16762
    Oct 6, 2019 at 15:10
  • Thanks. This works at least as far as getting the ability to get it to show up in the menu. I still have issues as EXWM doesn't seem to bring up an emacs window, nor start my applications, so all I get is a blank screen that I cannot interact with, but this is a good start. Oct 7, 2019 at 5:19
  • @intel_chris Do you have (exwm-enable) in your config? See the project wiki for more info on setup
    – clemera
    Oct 7, 2019 at 9:39
  • Although it took me a while, I have combined the two ideas and finally got it to work. The problem was as much in my .emacs file as anything else. I was using make-frame to create effectively different workspaces, e.g. full screen emacs sessions that I could switch between to work on different projects. Using make-frame within the emacs that is running exwm does not work well at all. Mostly it seems to make exwm hang, probably some recursion/deadlock issue. However, even despite that emacs frames that you have created before running exwm within that emacs cannot be switched to. <more> Oct 19, 2019 at 14:24
  • Anyway, so my desktop entry, runs my .xinitrc/.xsession file and that invokes emacs which starts exwm and all is essentially fine. I have an emacs that is full screen and acts like a root window. When I run chrome, it comes up in an emacs buffer and I can use my normal emacs keys for moving between windows etc. I still have some minor glitches (e.g. chrome spawns hangouts and that takes over the chrome buffer), but life is much better. Oct 19, 2019 at 14:29

You shouldn't have to. Link or copy the file 'xinitrc' to '~/.xinitrc' and make latter executable by chmod +x ~/.xinitrc Launch EXWM in a tty1 with

xinit -- vt01

To obtain a tty1 at the login screen just do ctl-alt <F1>. It's usually Ctl-alt <F7> to get back, maybe ctl-alt <F8> depending on your system.

Read docs at https://github.com/ch11ng/exwm On the wiki you will find an example ~/.xinitrc to use as a template.

To get a desktop file to launch from a login window, follow clemera above with ln -s ~/.xinitrc ~/.xsessions.

  • I have not yet gotten the instructions there to work. So far all I can get it to do is show a blank screen with no windows and that doesn't respond to anything. There isn't even a way to kill the session, so I end up power-cycling to reboot to try the next experiment. Oct 7, 2019 at 5:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.