Emacs X Window Manager
Find a file
Nacho Barrientos cff02333e2 Don't assume that exwm--connection is non-nil
`exwm-input--exit` could be called (via `exwm-exit`) from `exwm-init`
in case of error when initialising EXWM. It could happen that the bit
that failed when exwm-init is executed was the call to `xcb:connect`,
hence `exwm--connection` would be nil when errors are handled (and
`exwm-exit` is called).

Without this patch, in the case above, the user will see a crash as
there's no method allowing a nil XCB connection object:

  Debugger entered--Lisp error:
  (cl-no-applicable-method xcb:-+request nil #<xcb:SetInputFocus ...

even worse, not even giving the chance to the `warn` call in
`exwm-init`'s error handler to actually inform the user about the
actual problem ("[XELB] Connection timeout", for instance).

* exwm-input.el (exwm-input--exit): Check `exwm--connection' is
set before trying to send requests.
2023-06-09 00:00:00 +00:00
.elpaignore Code cleanups 2015-09-06 17:18:48 +08:00
.gitignore Minor fixes for packaging 2015-09-21 13:31:57 +08:00
exwm-background.el Add a module for setting the X background 2022-11-22 00:00:00 +00:00
exwm-cm.el Update copyright year to 2021 2021-10-29 00:00:00 +00:00
exwm-config.el Update copyright year to 2021 2021-10-29 00:00:00 +00:00
exwm-core.el Merge branch 'drop-client-p' into externals/exwm 2022-11-22 00:00:00 +00:00
exwm-floating.el Hide tab-bar on floating windows 2022-07-26 07:39:37 -07:00
exwm-input.el Don't assume that exwm--connection is non-nil 2023-06-09 00:00:00 +00:00
exwm-layout.el Use active-minibuffer-window' rather than minibuffer-window' 2022-11-22 00:00:00 +00:00
exwm-manage.el Update copyright year to 2021 2021-10-29 00:00:00 +00:00
exwm-randr.el Update copyright year to 2021 2021-10-29 00:00:00 +00:00
exwm-systemtray.el Pick the correct line height for the systemtray 2022-11-22 00:00:00 +00:00
exwm-workspace.el Merge branch 'drop-client-p' into externals/exwm 2022-11-22 00:00:00 +00:00
exwm-xim.el Merge branch 'tumashu.github.com/master' into externals/exwm 2021-10-30 00:00:00 +00:00
exwm.el Merge branch 'drop-client-p' into externals/exwm 2022-11-22 00:00:00 +00:00
LICENSE Add license file 2022-02-10 00:00:00 +00:00
README.md Add input method support 2019-02-06 00:00:00 +00:00
xinitrc Add input method support 2019-02-06 00:00:00 +00:00

Emacs X Window Manager

EXWM (Emacs X Window Manager) is a full-featured tiling X window manager for Emacs built on top of XELB. It features:

  • Fully keyboard-driven operations
  • Hybrid layout modes (tiling & stacking)
  • Dynamic workspace support
  • ICCCM/EWMH compliance
  • (Optional) RandR (multi-monitor) support
  • (Optional) Builtin system tray
  • (Optional) Builtin input method

Please check out the screenshots to get an overview of what EXWM is capable of, and the user guide for a detailed explanation of its usage.

Note: If you install EXWM from source, it's recommended to install XELB also from source (otherwise install both from GNU ELPA).