Window Maker is an ultra-fast, lightweight, and extensible window manager for the X Window System (X11). Originally crafted to emulate the timeless, elegant look and feel of the NeXTSTEPβ’ / OpenStep interface, Window Maker delivers a distraction-free desktop environment with native GNUstep integration, comprehensive EWMH / NetWM compliance, and modern compositing / visual enhancements.
- π Complete Feature Matrix & Capabilities
- 1. Compositor Integration & Visual Effects
- 2. Vim-Style Window Marking & Directional Focus
- 3. Multi-Key Sequences & Sticky Chains
- 4. Multi-Monitor, RandR & Hotplug Intelligence
- 5. Next-Gen Image Engine (
wrlib) & JPEG XL - 6. Desktop Hot Corners & Screenshot Engine
- 7. WINGs Widget Toolkit & Modern Typography
- 8. Modern Glass UI Architecture Blueprint
- π Installation & Multi-Distribution Guides
- π₯οΈ Starting Window Maker
- βοΈ Configuration Reference & WPrefs Suite
- π Specialized Documentation Index
- π License & Authors
Window Maker features native support for X11 compositors (Picom, Compton, xcompmgr, and Compiz) with full management from the new Effects panel in WPrefs.app:
- Automated Configuration Templates: Automatically bootstraps
~/.config/picom/picom.confor~/.config/compton.confif missing. - Backend Selection: Seamlessly toggle between GLX (hardware-accelerated OpenGL) and XRender backends.
- Dock & Clip Transparency Slider: Granular 0%β100% opacity controls (
DockOpacity), allowing background wallpapers to show through tiles and clips with modern frosted aesthetics. - Window Animations & Transitions:
- Configurable movement and launch transitions: Classic (legacy acceleration), Smooth (ease-in/out), and Gentle (smoothstep).
- Glide Iconification: Smooth sliding minimization animations.
- Live window content rendering during interactive drags (
ShowContentWhileMoving) and resizes (ShowContentWhileResizing).
Navigate complex multi-window workspaces without touching the mouse:
- Vim-Inspired Window Marking:
- Assign arbitrary key labels to windows (e.g.,
Super+M xmarks focused window withx). - Jump (
MarkJumpKey): Focus and raise the labeled window immediately. - Bring (
MarkBringKey): Teleport the marked window to your active workspace. - Swap (
MarkSwapKey): Swap positions and focus between the active window and marked window. - Persistence: All marks survive restarts and are saved in
~/GNUstep/Defaults/WMState.
- Assign arbitrary key labels to windows (e.g.,
- Directional Window Focus:
- Move keyboard focus topologically (
FocusWindowLeftKey,FocusWindowRightKey,FocusWindowUpKey,FocusWindowDownKey) using window center geometric vectors.
- Move keyboard focus topologically (
- Universal Window Cycling:
- Alt-Tab switcher can optionally cycle windows across all virtual workspaces (
CycleAllWorkspaces = YES).
- Alt-Tab switcher can optionally cycle windows across all virtual workspaces (
-
Prefix-Based Keybindings: Supports Emacs/tmux-style leader-key sequences (e.g.,
<Leader> -> w -> vfor vertical split/tile). -
Sticky-Chain Mode: Keep prefix states open across rapid successive commands with configurable expiration timeout (
KeychainTimeoutDelay, default$500\text{ms}$ ) and explicit cancellation (KeychainCancelKey). -
Customizable Unicode Modifier Labels (
ModifierKeyShortLabels): Replace standard text abbreviations with macOS-style glyphs (β, β₯, β§, β) or custom symbols in menus.
- Dynamic Head Snap (
wClipSnapToHead): When monitors are hotplugged or disconnected, Clips and AppIcons automatically compute their relative coordinates and snap into visible heads without clipping off-screen. - Hotplug Monitor Auto-Activation (
HotplugMonitor): Automatically detects and activates newly plugged displays, expanding your desktop to the right. - Multi-Head Dock Pinning (
KeepDockOnPrimaryHead): Pins the main application dock to the primary display head across dynamic layout adjustments. - EWMH
_NET_WM_MOVERESIZESupport: Full compatibility with client-side decorated applications (VS Code, Google Chrome, Discord, Steam) for interactive moving and resizing. - Multi-Head Fullscreen (
_NET_WM_FULLSCREEN_MONITORS): Multi-display spanning for video players and presentations.
- JPEG XL (JXL) Support: Direct native loading of next-generation
.jxlimages vialibjxl. - Comprehensive Image Support: WebP, PNG, JPEG, TIFF, GIF, XPM, PNM, and SVG.
- In-Memory Image Rasterization: Fast in-memory image encode/decode pipelines that reduce disk thrashing during theme and icon switches.
- Catmull-Rom Scaling: High-fidelity cubic interpolation for crystal-clear icon and thumbnail rendering.
wmivImage Viewer Upgrades:- Direct archive reading (view images inside
.zip,.tar.gz,.7zvialibarchive). - Copy current image directly to clipboard (
Ctrl+C). - Graceful handling and filtering of unsupported formats.
- Direct archive reading (view images inside
-
Programmable Hot Corners (
HotCorners):- Assign distinct actions or shell scripts to the 4 screen corners (Top-Left, Top-Right, Bottom-Left, Bottom-Right).
- Configurable edge sensitivity radius (
HotCornerEdge, 2β10px) and trigger activation delay (HotCornerDelay, default$250\text{ms}$ ).
-
Built-in Screenshot Engine:
- Three capture modes: Entire Screen, Active Window, or Interactive Selection Rectangle.
- Customizable
strftimenaming templates (ScreenshotFileNameTemplate) saved directly to~/GNUstep/Library/WindowMaker/Screenshots/.
- Multi-Tier Font Fallback: Dynamic fallback cascade preventing crashes when specialized legacy X11 fonts are absent.
- Ghosting & Caret Drift Elimination: Completely rebuilt text-selection and caret-tracking calculations in
wtextfield. - Unbroken UTF-8 Titlebars & Menus: Unicode string sanitization ensuring right-to-left and multibyte titles never truncate improperly.
- Titlebar Language Switcher: Compact XKB layout switcher button cycling through active keyboard language groups on click.
Comprehensive roadmap and design notes (doc/GLASS_AND_MODERN_UI_NOTES.md):
- Translucent rounded window borders and titlebars.
- Frosted acrylic popovers with subtle inset lighting highlights.
- High-DPI icon assets and scalable SVG workflow.
sudo apt update
sudo apt install build-essential autoconf automake libtool pkg-config \
libx11-dev libxext-dev libxft-dev libxinerama-dev libxrandr-dev \
libxmu-dev libxpm-dev libpng-dev libjpeg-dev libtiff-dev libgif-dev \
libwebp-dev libjxl-dev libfontconfig1-dev libfreetype6-dev \
libxres-dev libxkbfile-dev compton(Detailed guide: doc/BUILDING_ON_DEBIAN_UBUNTU.md)
sudo pacman -S base-devel libx11 libxext libxft libxinerama libxrandr \
libxmu libxpm libpng libjpeg-turbo libtiff giflib libwebp libjxl \
fontconfig freetype2 libxres libxkbfile picom(Detailed guide: doc/BUILDING_ON_PCLINUXOS_ALT.md)
# Clone repository
git clone git@github.com:theokeist/wmaker.git
cd wmaker
# Generate build configuration
./autogen.sh
# Configure with modern features enabled
./configure \
--prefix=/usr/local \
--enable-modelock \
--enable-randr \
--enable-xinerama \
--enable-jxl \
--enable-webp
# Compile using all available CPU cores
make -j$(nproc)
# Install binaries, manual pages, and icons
sudo make install
sudo ldconfigWindow Maker provides /usr/share/xsessions/wmaker.desktop. Simply select Window Maker in your display manager session dropdown.
Add the following to your ~/.xinitrc:
#!/bin/sh
# Set keyboard layout (optional)
setxkbmap us,cz
# Launch compositor daemon in background
compton -b &
# Start Window Maker
exec wmaker(Comprehensive session management guide: doc/RUNNING_WMAKER.md)
All user preferences are organized under ~/GNUstep/Defaults/:
| File | Description |
|---|---|
WindowMaker |
Core settings: focus modes, animations, keybindings, compositor toggles, dock opacity. |
WMRootMenu |
Applications root menu hierarchy, submenu cascades, and execution commands. |
WMWindowAttributes |
Per-window specifications (e.g. AlwaysOnTop, Borderless, SkipWindowList). |
WMState |
Workspace definitions, docked app positions, clip states, and Vim-style window marks. |
compton.conf |
Compositor parameters (shadow blur radius, opacity rules, fading speed). |
Launch WPrefs from the desktop menu or terminal to graphically customize:
- Effects & Compositor: Backend switching, dock transparency, window animation curves.
- Window Handling: Focus policies (Click-to-Focus, Sloppy, Focus-Follows-Mouse), auto-raise delays.
- Expert Preferences: Mouse wheel focus, multi-workspace cycling, monitor hotplugging.
- Keyboard Shortcuts: Multi-key sequences, directional focus keys, screenshot shortcuts.
- Theme & Appearance: Textures, titlebar gradients, font smoothing, and color schemes.
doc/RUNNING_WMAKER.mdβ Running Window Maker via xinitrc, display managers, and sessions.doc/BUILDING_ON_DEBIAN_UBUNTU.mdβ Step-by-step Debian 12/13 & Ubuntu 25.10 build instructions.doc/BUILDING_ON_PCLINUXOS_ALT.mdβ RPM distro compilation and packaging guide.doc/GLASS_AND_MODERN_UI_NOTES.mdβ Glass UI design architecture and wrlib materials blueprint.doc/GS_DESKTOP_POLISHING.mdβ GNUstep workspace polishing and styling.doc/WINGS_APP_WORKFLOW.mdβ Building lightweight X11 GUI applications with WINGs.FAQβ Comprehensive Frequently Asked Questions & Troubleshooting.
- License: Window Maker is licensed under the GNU General Public License (GPL v2 or later). Accompanying libraries (
WINGs,wrlib,wmlib) are licensed under the GNU Lesser General Public License (LGPL v2 or later). - Original Authors: Alfredo K. Kojima, Dan Pascu, Banlu Kemiyatorn, and the Window Maker Team.
- Repository: theokeist/wmaker (synchronized with window-maker/wmaker).