Installation Guide

Get DWN running on your system in just a few minutes.

Requirements

DWN requires X11 and a few common libraries. Most Linux distributions include these by default.

Required Dependencies

Library Purpose Package (Debian/Ubuntu)
libX11 X Window System client library libx11-dev
libXext X extensions library libxext-dev
libXinerama Multi-monitor support libxinerama-dev
libXrandr Display configuration libxrandr-dev
libXft Font rendering libxft-dev
fontconfig Font configuration libfontconfig1-dev
libdbus-1 D-Bus for notifications libdbus-1-dev
libcurl AI features (optional) libcurl4-openssl-dev

Quick Installation

The fastest way to get started. Our build system auto-detects your distribution.

1

Clone the Repository

Download the latest source code from GitHub.

Terminal
git clone https://github.com/dwn/dwn.git
cd dwn
2

Install Dependencies

Automatically install required packages for your distribution.

Terminal
make deps

Supports Debian, Ubuntu, Fedora, Arch, openSUSE, and Void Linux.

3

Build DWN

Compile the window manager with optimizations.

Terminal
make
4

Install System-wide

Install the binary to your system PATH.

Terminal
sudo make install

Default location: /usr/local/bin/dwn. Override with PREFIX=/custom/path make install

5

Configure Your Session

Add DWN to your X session startup.

~/.xinitrc
exec dwn

Distribution-Specific Instructions

Debian / Ubuntu / Linux Mint

Terminal
# Install dependencies
sudo apt update
sudo apt install -y \
    build-essential \
    libx11-dev \
    libxext-dev \
    libxinerama-dev \
    libxrandr-dev \
    libxft-dev \
    libfontconfig1-dev \
    libdbus-1-dev \
    libcurl4-openssl-dev \
    pkg-config

# Build and install
git clone https://github.com/dwn/dwn.git
cd dwn
make
sudo make install

Fedora / RHEL / CentOS

Terminal
# Install dependencies
sudo dnf install -y \
    gcc \
    make \
    libX11-devel \
    libXext-devel \
    libXinerama-devel \
    libXrandr-devel \
    libXft-devel \
    fontconfig-devel \
    dbus-devel \
    libcurl-devel \
    pkg-config

# Build and install
git clone https://github.com/dwn/dwn.git
cd dwn
make
sudo make install

Arch Linux / Manjaro

Terminal
# Install dependencies
sudo pacman -S --needed \
    base-devel \
    libx11 \
    libxext \
    libxinerama \
    libxrandr \
    libxft \
    fontconfig \
    dbus \
    curl \
    pkg-config

# Build and install
git clone https://github.com/dwn/dwn.git
cd dwn
make
sudo make install
AUR Package

An AUR package dwn-git may also be available: yay -S dwn-git

Void Linux

Terminal
# Install dependencies
sudo xbps-install -S \
    base-devel \
    libX11-devel \
    libXext-devel \
    libXinerama-devel \
    libXrandr-devel \
    libXft-devel \
    fontconfig-devel \
    dbus-devel \
    libcurl-devel \
    pkg-config

# Build and install
git clone https://github.com/dwn/dwn.git
cd dwn
make
sudo make install

Session Setup

Configure your display manager or xinit to start DWN.

Using xinit / startx

For minimal setups using startx:

~/.xinitrc
# Optional: set display settings
xrandr --output DP-1 --mode 2560x1440

# Optional: set wallpaper
feh --bg-fill ~/wallpaper.jpg

# Start DWN
exec dwn

Then run startx from a TTY.

Using a Display Manager

Create a desktop entry for GDM, LightDM, etc:

/usr/share/xsessions/dwn.desktop
[Desktop Entry]
Name=DWN
Comment=DWN Window Manager
Exec=dwn
Type=Application
DesktopNames=DWN

DWN will appear in your display manager's session menu.

Testing in a Nested X Server

Test DWN without leaving your current session using Xephyr.

Using make run

The easiest way to test DWN safely:

Terminal
# Make sure Xephyr is installed
# Debian/Ubuntu: sudo apt install xserver-xephyr
# Fedora: sudo dnf install xorg-x11-server-Xephyr
# Arch: sudo pacman -S xorg-server-xephyr

# Run DWN in a nested window
make run

This opens a 1280x720 window running DWN. Perfect for experimenting with configuration changes.

Manual Xephyr Setup

For more control over the test environment:

Terminal
# Start Xephyr on display :1
Xephyr :1 -screen 1920x1080 &

# Run DWN on that display
DISPLAY=:1 ./dwn

# Open a terminal in the test environment
DISPLAY=:1 xterm &

Post-Installation

1

Create Configuration Directory

DWN will create this automatically on first run, but you can set it up in advance:

Terminal
mkdir -p ~/.config/dwn
2

Run the Interactive Tutorial

Once DWN is running, press Super + T to start the built-in tutorial that will teach you all the essential shortcuts.

3

View All Shortcuts

Press Super + S to see a complete list of keyboard shortcuts.

4

Customize Your Setup

See the Configuration Guide to personalize DWN to your liking.

Troubleshooting

This error means DWN can't connect to an X server. Make sure:

  • You're running from a TTY with startx, not from within another X session
  • The DISPLAY environment variable is set correctly
  • X server is installed and working (Xorg -configure to test)

Install pkg-config for your distribution:

sudo apt install pkg-config    # Debian/Ubuntu
sudo dnf install pkg-config    # Fedora
sudo pacman -S pkg-config      # Arch

Make sure you have the development packages installed, not just the runtime libraries. On Debian/Ubuntu, install packages ending with -dev. Run make deps to auto-install everything.

Check for conflicts with other programs grabbing keys:

  • Make sure no other window manager is running
  • Check if compositor (like picom) is grabbing keys
  • Verify keyboard layout is correct with setxkbmap

DWN uses Xft for font rendering. Install some good fonts:

sudo apt install fonts-dejavu fonts-liberation  # Debian/Ubuntu
sudo dnf install dejavu-fonts-all liberation-fonts  # Fedora

You can configure the font in ~/.config/dwn/config.

Installation Complete?

Learn how to use DWN effectively with our documentation.