# XWEM

> window manager written in Emacs lisp [obsolete]

**Wikidata**: [Q133818612](https://www.wikidata.org/wiki/Q133818612)  
**Source**: https://4ort.xyz/entity/xwem

## Summary
XWEM is a window manager written in Emacs Lisp that was developed in 2003. It allows users to manage graphical windows within the Emacs environment, functioning as an interface between Emacs and the X Window System. Though now considered obsolete, it represents a unique integration of Emacs with low-level system functionality.

## Key Facts
- Inception date: March 21, 2003
- Creator: Zajcev Evgen
- Programming language: Emacs Lisp
- License: GNU General Public License, version 2.0 or later
- Instance of: window manager, free software
- Maintained by: Zajcev Evgen (starting from 2003)
- Different from: EXWM (another Emacs-based window manager)
- Copyright holder: Free Software Foundation (as of 2003)
- Source code repositories:
  - GitHub (preferred): https://github.com/zevlg/xwem.git
  - Legacy CVS: https://cvs.savannah.nongnu.org/viewvc/xwem/xwem/
- Described at: https://www.emacswiki.org/emacs/XWindowEmacsManager

## FAQs
### Q: What is XWEM?
A: XWEM is a window manager implemented entirely in Emacs Lisp. It enables Emacs to control and manage graphical windows using the X Window System.

### Q: Who created XWEM?
A: XWEM was created by Zajcev Evgen, a Russian programmer who also contributed to SXEmacs through an FFI module in 2005.

### Q: Is XWEM still actively maintained?
A: While not officially discontinued, XWEM is marked as obsolete and has seen minimal recent development activity.

## Why It Matters
XWEM stands out as one of the few attempts to integrate a full window management system into the Emacs ecosystem via its own extension language—Emacs Lisp. As such, it demonstrates how deeply extensible Emacs can be when extended beyond text editing into operating system interfaces. Although superseded by more modern projects like EXWM, XWEM played a pioneering role in exploring the potential of Emacs as a desktop environment component. Its open-source nature allowed developers to inspect, modify, and build upon its design, contributing to broader discussions around programmable user interfaces.

## Notable For
- Being among the first window managers written entirely in Emacs Lisp
- Integrating tightly with Emacs while managing external X11 applications
- Serving as a precursor and inspiration for newer systems like EXWM
- Demonstrating advanced use of Emacs as a platform for non-text-oriented tasks
- Hosting its source code across multiple platforms including Savannah and GitHub

## Body

### Overview
XWEM (X Window Emacs Manager) is a tiling and stacking window manager built entirely in Emacs Lisp. It provides mechanisms for controlling application windows under the X Window System directly from within GNU Emacs.

### Development History
Development began on March 21, 2003, led by Zajcev Evgen. The project was hosted originally on Savannah NonGNU and later mirrored on GitHub. Despite being labeled obsolete, the repository remains accessible for historical and educational purposes.

### Technical Details
The core implementation resides in `xwem-main.el`, which initializes the main event loop and handles communication with the X server via Emacs' built-in X support. Unlike traditional window managers written in C or other compiled languages, XWEM leverages the dynamic capabilities of Emacs Lisp for runtime configurability and customization.

### Licensing and Distribution
XWEM is licensed under the GNU General Public License v2.0 or later, making it part of the wider free software movement. This ensures all derivative works remain open and modifiable by users and developers alike.

### Relationship to Other Projects
While conceptually similar to EXWM—an actively maintained alternative—XWEM differs significantly in architecture and approach. Where EXWM uses Emacs primarily as a client to interact with existing window managers, XWEM functions as a standalone manager itself. This distinction makes XWEM historically significant but technically less flexible than successors.

## References

1. [Source](https://github.com/zevlg/xwem/blob/master/lisp/xwem-main.el)
2. [Source](https://cvs.savannah.nongnu.org/viewvc/xwem/xwem/xwem/xwem-main.el?revision=1.1&view=markup)