Emacs X Window Manager
Find a file
Adrián Medraño Calvo b8d621041a Use default visual, depth and colormap in systray embedder window
We were using the Emacs' frame's depth, but not the visual nor colormap.
This failed with Emacs 29 and its support for 32-bit depths.

We now use the default screen's visual: using a non-default visual in
the system tray requires support for embedding icons with different
visuals, which is not implemented.  We restrict our limited transparency
support to Emacs frames with depth equal to the default visual's detph.

* exwm-core.el (exwm--get-visual-depth-colormap): New function.
* exwm-systemtray.el (exwm-systemtray--init): Use root window's
visual, depth and colormap. Reset all attributes that refer
(perhaps due to defaults) to the parent window, as it might have a
different visual, depth or colormap.
(exwm-systemtray--init): Set _NET_SYSTEM_TRAY_VISUAL.
(exwm-systemtray-background-color): Emit a warning when
transparency is selected but not supported.
(exwm-systemtray--set-background-color): New function to set
embedder window background.
(exwm-systemtray--embedder-window-depth): Add variable.
(exwm-systemtray--transparency-supported-p): New function to check
whether transparency is supported.
2022-11-04 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-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 Use 32-bit visual for frame containers 2022-03-24 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 Update copyright year to 2021 2021-10-29 00:00:00 +00:00
exwm-layout.el Fix previous commit "Remove duplicate code" 2021-11-10 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 Use default visual, depth and colormap in systray embedder window 2022-11-04 00:00:00 +00:00
exwm-workspace.el Fix logging order in exwm-workspace--set-active 2022-10-29 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 Focus workspace frames upon _NET_ACTIVE_WINDOW 2022-10-29 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).