No description
0680be104f
; A change has been made in Xorg server 1.20 that replaying a key ; event with keyboard grabbed would generate extra focus change and ; enter/leave events. This basically breaks line-mode for apps like ; Firefox. This commit reimplements the grab & replay functionality ; with XI2 and XTEST. * exwm-input.el (exwm-input--devices): New variable for caching slave keyboards. (exwm-input--update-devices): Update it and re-grab keys if necessary. (exwm-input--on-Hierarchy): Event listener for the Hierarchy event that would in turn call `exwm-input--update-devices' to update the cache. * exwm-input.el (exwm-input--on-KeyPress): Use XI2 KeyPress events. (exwm-input--on-KeyRelease): Event listener for the KeyRelease events. (exwm-input--grab-global-prefix-keys): Use XI2 and also select KeyRelease events. (exwm-input--on-KeyPress-line-mode): Use XI2 KeyPress events and replay key events with XTEST. (exwm-input--on-KeyPress-char-mode, exwm-input--grab-keyboard) (exwm-input--release-keyboard): Use XI2 KeyPress events. * exwm-input.el (exwm-input--init): Initialize the XI2 and XTEST extensions; add listeners for XI2 KeyPress, KeyRelease and Hierarchy events. |
||
---|---|---|
.elpaignore | ||
.gitignore | ||
exwm-cm.el | ||
exwm-config.el | ||
exwm-core.el | ||
exwm-floating.el | ||
exwm-input.el | ||
exwm-layout.el | ||
exwm-manage.el | ||
exwm-randr.el | ||
exwm-systemtray.el | ||
exwm-workspace.el | ||
exwm.el | ||
README.md | ||
xinitrc |
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) Built-in system tray
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).