Emacs X Window Manager
Find a file
Steven Allen b4aac53086 Simplify and improve focus handling
- No need for two different timers, roll them into one.
- Debounce focus updates, waiting until the focus has stabilized for a
  full focus interval.
- Ignore windows in "no focus" frames.

* exwm-input.el
  (exwm-input--update-focus-defer-timer):
    Remove the duplicate timer.
  (exwm-input--update-focus-lock):
    Bind `exwm-input--update-focus-window` instead.
  (exwm-input--on-buffer-list-update):
    Move focus logic to `exwm-input--update-focus-defer`.
  (exwm-input--update-focus-defer):
    Use a single `exwm-input--update-focus-timer` and don't record the
    window we're focusing, we pass that into
    `exwm-input--update-focus-commit` anyways.
  (exwm-input--update-focus-commit):
    Debounce focus updates and only commit them if the currently
    selected window matches the selected window when
    `exwm-input--update-focus-defer` was called.
  (exwm-input--update-focus-commit):
    Let-bind the window we're attempting to focus instead of setting a
    "locked" flag. This lets us deduplicate recursive attempts to
    re-focus the current window.
  (exwm-input--update-focus):
    Avoid focusing windows in frames with the `no-accept-focus` frame
    property.
  (exwm-input--exit):
    Remove references to `exwm-input--update-focus-defer-timer`.
2024-01-23 14:29:00 -08:00
.elpaignore ; Add LICENSE to .elpaignore 2024-01-12 15:01:18 +01:00
.gitignore Minor fixes for packaging 2015-09-21 13:31:57 +08:00
exwm-background.el ; Use two spaces after sentence 2024-01-12 10:07:04 +01:00
exwm-config.el Update copyright year to 2024 2024-01-08 00:00:00 +00:00
exwm-core.el New customization group exwm-debug 2024-01-14 01:07:33 +01:00
exwm-floating.el Drop :version keywords from defgroup 2024-01-13 20:23:24 +01:00
exwm-input.el Simplify and improve focus handling 2024-01-23 14:29:00 -08:00
exwm-layout.el Drop :version keywords from defgroup 2024-01-13 20:23:24 +01:00
exwm-manage.el Drop :version keywords from defgroup 2024-01-13 20:23:24 +01:00
exwm-randr.el Drop :version keywords from defgroup 2024-01-13 20:23:24 +01:00
exwm-systemtray.el Drop :version keywords from defgroup 2024-01-13 20:23:24 +01:00
exwm-workspace.el Drop :version keywords from defgroup 2024-01-13 20:23:24 +01:00
exwm-xim.el Update copyright year to 2024 2024-01-08 00:00:00 +00:00
exwm-xsettings.el Move xsettings classes to xelb 2024-01-15 20:30:50 +01:00
exwm.el ; Commentary: Update list of features 2024-01-13 20:38:09 +01:00
LICENSE Add license file 2022-02-10 00:00:00 +00:00
README.md ; README: Refer to the user guide for installation instructions 2024-01-14 12:32:02 +01: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 features:

  • RandR (multi-monitor) support
  • System tray
  • Input method
  • Background setting support
  • XSETTINGS server

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