Window Management

DWN provides comprehensive window management with both manual and automatic control.

Window States

  • Normal - Standard window state, subject to layout rules
  • Floating - Exempt from tiling, freely movable and resizable
  • Maximized - Fills usable area with decorations
  • Fullscreen - Fills entire screen, no decorations or panels
  • Minimized - Hidden from view, accessible via taskbar

Window Snapping

Snap windows to screen edges with Super+Arrow keys. Snapping is composable:

  • Super+Left - Left half (press twice for full width)
  • Super+Right - Right half
  • Super+Up - Top half
  • Super+Down - Bottom half
  • Combine for quarter-screen: Super+Left then Super+Up

Focus Modes

Mode Description
click Focus window on mouse click (default)
follow Focus follows mouse pointer with configurable delay

Alt-Tab Window Cycling

DWN maintains a Most Recently Used (MRU) stack per workspace. Alt+Tab cycles through windows in order of recent use, not visual order.

Keyboard Window Control

Move and resize floating windows without leaving the keyboard:

  • Super+Alt+Arrow - Move window by 20 pixels
  • Super+Ctrl+Arrow - Resize window by 20 pixels

Window Rules

Automatically apply settings to windows based on their class or title. Rules are matched using glob patterns with case-insensitive matching.

Matching Criteria

  • Class Pattern - Match by WM_CLASS (e.g., Firefox, *terminal*)
  • Title Pattern - Match by window title (e.g., *Calculator*)
  • Combined - Match both class and title simultaneously

Available Actions

Property Description
workspace Move window to specific workspace (1-9)
floating Set floating state (true/false)
sticky Make window visible on all workspaces
fullscreen Start window in fullscreen mode
width, height Set initial window size
x, y Set initial window position

See Configuration for rule syntax.

Window Marks

Mark windows with letters (a-z) for instant navigation, inspired by Vim marks.

Set Mark
Press Super+M then a-z to mark the focused window.
Jump to Mark
Press Super+' then a-z to instantly focus the marked window.
Cross-Workspace
Marks work across workspaces, automatically switching if needed.
26 Slots
Use any letter a-z for marks. Reassigning overwrites the previous mark.

Virtual Workspaces

DWN provides 9 virtual workspaces for organizing your windows.

Independent Layouts
Each workspace maintains its own layout mode, master ratio, and master count.
Quick Switching
Switch with F1-F9, or Ctrl+Alt+Left/Right for sequential navigation.
Window Movement
Move windows between workspaces with Shift+F1-F9.
Workspace Indicator
Panel shows which workspaces have windows and current workspace.

Layout System

Six layout modes available per workspace:

Tiling Layout

Master-stack tiling with configurable ratios. The first window(s) occupy the master area, others stack on the side.

  • Super+H/L - Adjust master area size
  • Super+I/D - Adjust master window count
  • Default master ratio: 55%

Floating Layout

Traditional floating window management. Drag title bars to move, drag edges to resize.

Monocle Layout

All windows fullscreen and stacked. Use Alt-Tab to switch between them. Ideal for focused work.

Centered Master Layout

The master window is centered on screen with stack windows divided on left and right sides. Great for wide monitors.

Columns Layout

All windows arranged in equal-width vertical columns. Each window takes full height.

Fibonacci Layout

Windows arranged in a spiral pattern using recursive splitting. Creates a visually interesting and space-efficient arrangement.

Grid Layout

Windows arranged in an automatically-calculated grid pattern. Perfect for comparing multiple documents or monitoring many terminals simultaneously.

Plugin System

DWN v2.0 supports custom layout plugins. Create your own window arrangements using the Layout Plugin API. Both built-in and dynamically loaded plugins are supported.

See Layouts and Plugin Development for detailed documentation.

Panels & System Tray

Top Panel

Contains workspace indicators, taskbar, layout indicator, and system tray.

Bottom Panel

Contains clock and news ticker (when configured).

System Tray

Full XEmbed protocol support for external application icons plus built-in widgets:

  • Battery - Percentage display with charging indicator
  • Volume - Click for slider, scroll to adjust, right-click to mute
  • WiFi - SSID display, click for network list
  • External Icons - nm-applet, blueman, Telegram, etc.

Notifications

DWN includes a built-in D-Bus notification daemon implementing the freedesktop.org specification.

  • Automatic service registration on startup
  • Configurable colors and timeout
  • Stacking notification display
  • Urgency level support (low, normal, critical)

No external notification daemon required.

Screenshot & OCR

Built-in screenshot capture and OCR text extraction, accessible via the WebSocket API.

Screenshot Modes

Mode Description
fullscreen Capture entire screen
window Capture specific window by ID
active Capture currently focused window
area Capture arbitrary rectangle

OCR Text Extraction

Extract text from screenshots using Tesseract OCR engine:

  • Multi-language support (English by default)
  • Confidence score reporting
  • Useful for automation and accessibility

See API Reference for usage details.

AI Integration

Optional AI features powered by OpenRouter API:

AI Command Palette

Natural language command input (Super+Shift+A). Ask the AI to:

  • Launch applications ("open firefox")
  • Answer questions
  • Get system information

AI Context Analysis

Press Super+A to see AI analysis of your current task based on open windows.

Exa Semantic Search

Web search with semantic understanding (Super+Shift+E). Find documentation, tutorials, and resources.

See AI Integration for setup instructions.

WebSocket API

Full programmatic control via JSON WebSocket API on configurable port (default 8777).

Capabilities

  • Window management (list, focus, move, resize, close)
  • Workspace control (switch, move windows)
  • Layout management (mode, master ratio)
  • Keyboard simulation (key presses, typing)
  • Mouse simulation (move, click, drag)
  • Screenshot capture and OCR
  • System queries (windows, workspaces, monitors)

Use Cases

  • Test automation
  • Custom hotkey scripts
  • Remote desktop control
  • Accessibility tools
  • Integration with other applications

See API Overview for getting started.

Abstraction Layer (v2.0)

DWN v2.0 introduces a comprehensive abstraction layer enabling backend portability and plugin extensibility:

  • Backend Interface - 80+ operation vtable for X11/Wayland portability
  • Type Safety - Strongly typed handles replacing void* casts
  • Memory Safety - Safe string and container abstractions
  • Plugin API - Extensible architecture for layouts and widgets
  • 100% Compatible - Existing code works unchanged

See Abstraction Layer for technical details.

Protocol Compliance

DWN implements standard X11 protocols for compatibility:

  • EWMH - Extended Window Manager Hints
  • ICCCM - Inter-Client Communication Conventions
  • XEmbed - System tray embedding protocol
  • Xinerama - Multi-monitor support