DWN - Desktop Window Manager
Author: retoor retoor@molodetz.nl
A lightweight, AI-enhanced window manager for Linux with tiling, floating, and fullscreen layouts.
Quick Start (Copy & Paste These Commands)
# 1. Install dependencies (enter your password when asked)
make deps
# 2. Build DWN
make
# 3. Test it (opens in a safe window - won't affect your desktop)
make run
That's it! Press Super+Backspace to exit the test window.
What is DWN?
DWN is a window manager - the program that controls how windows look and behave on your screen. It replaces your current desktop environment (like GNOME, KDE, or XFCE) with a faster, keyboard-driven alternative.
Features:
- 3 window layouts: Tiling (windows don't overlap), Floating (like normal), Monocle (fullscreen)
- 9 virtual workspaces to organize your windows
- Built-in panels with clock, taskbar, and system tray
- XDG Autostart support (automatically starts nm-applet, blueman, etc.)
- WiFi network selector with dropdown menu (like XFCE)
- Audio volume indicator with scroll-to-adjust
- Desktop notifications
- Optional AI assistant (can launch apps by command!)
- Very fast and lightweight
Installation
Step 1: Install Dependencies
Run this command (works on Ubuntu, Debian, Fedora, and Arch):
make deps
This installs everything DWN needs. You'll need to enter your password.
If make deps doesn't work, install manually:
- Ubuntu/Debian:
sudo apt install build-essential pkg-config libx11-dev libxext-dev libxinerama-dev libxrandr-dev libdbus-1-dev libcurl4-openssl-dev xserver-xephyr dmenu network-manager alsa-utils - Fedora:
sudo dnf install gcc make pkg-config libX11-devel libXext-devel libXinerama-devel libXrandr-devel dbus-devel libcurl-devel xorg-x11-server-Xephyr dmenu NetworkManager alsa-utils - Arch:
sudo pacman -S base-devel pkg-config libx11 libxext libxinerama libxrandr dbus curl xorg-server-xephyr dmenu networkmanager alsa-utils
Step 2: Build
make
You should see "Build successful!" at the end.
Step 3: Test (Recommended!)
Before installing, test DWN in a safe window:
make run
This opens DWN inside a window on your current desktop. You can try it out without changing anything. Press Super+Backspace to close it.
Step 4: Install
sudo make install
Step 5: Use DWN
- Log out of your current session
- At the login screen, click the gear icon (or session selector) near your username
- Select "DWN" from the list
- Log in!
Basic Controls
Essential Shortcuts (Memorize These!)
| Keys | What it does |
|---|---|
Ctrl + Alt + T |
Open a terminal |
Super or Alt + F2 |
Open app launcher |
Super + E |
Open file manager |
Super + B |
Open web browser |
Alt + Tab |
Switch between windows |
Alt + F4 |
Close current window |
Super + Backspace |
Exit DWN (important!) |
Super + S |
Show all shortcuts |
Super + T |
Start interactive tutorial |
Super + Shift + D |
Demo mode (automated feature showcase) |
Workspaces
| Keys | What it does |
|---|---|
Ctrl + Alt + Right |
Next workspace |
Ctrl + Alt + Left |
Previous workspace |
F1 to F9 |
Switch to workspace 1-9 |
Shift + F1 to Shift + F9 |
Move window to workspace 1-9 |
Window Management
| Keys | What it does |
|---|---|
Alt + F9 |
Toggle minimize/restore |
Alt + F10 |
Toggle maximize |
Alt + F11 |
Toggle fullscreen |
Super + F9 |
Toggle floating mode |
Alt + Tab |
Cycle windows forward |
Alt + Shift + Tab |
Cycle windows backward |
Layout Control (Super key shortcuts)
| Keys | What it does |
|---|---|
Super + Space |
Change layout mode (tiling → floating → monocle) |
Super + H |
Shrink main area |
Super + L |
Expand main area |
Super + I |
Add window to main area |
Super + D |
Remove window from main area |
Super + Left |
Snap window to left half (50% width) |
Super + Right |
Snap window to right half (50% width) |
AI Features (Optional)
| Keys | What it does |
|---|---|
Super + A |
Show AI context info |
Super + Shift + A |
Ask AI to do something (e.g., "open firefox") |
Super + Shift + E |
Exa semantic web search |
News Ticker
The bottom panel displays a scrolling news ticker. Navigate articles with these shortcuts:
| Keys | What it does |
|---|---|
Super + Down |
Next news article |
Super + Up |
Previous news article |
Super + Return |
Open current article in browser |
Other Shortcuts
| Keys | What it does |
|---|---|
Print |
Take screenshot (xfce4-screenshooter) |
System Tray
The top panel includes a system tray on the right side with support for external application icons plus built-in battery, audio, and WiFi indicators.
XEmbed System Tray (External Application Icons)
DWN implements the freedesktop.org XEmbed System Tray protocol, allowing external applications to dock their status icons in the panel - just like XFCE, GNOME, or KDE. This means applications like:
- Telegram - Shows notification icon when messages arrive
- nm-applet - NetworkManager GUI applet
- blueman-applet - Bluetooth manager
- pasystray - PulseAudio volume control
- udiskie - USB device automounter
- clipit/parcellite - Clipboard managers
...will automatically appear in your system tray when launched.
Simply start any application with tray icon support and it will dock itself in the panel. Click on icons to interact with them - clicks are forwarded to the application.
Battery Indicator
Shows battery percentage on laptops with color coding:
- Green: > 50%
- Yellow: 20-50%
- Red: < 20%
- Blue: Charging
WiFi Indicator
Located in the top-right corner of the panel, showing your current connection status.
| Action | What it does |
|---|---|
| Click on WiFi icon | Open dropdown with available networks |
| Click on a network | Connect to that network |
| Click on connected network | Disconnect |
The dropdown shows:
- Available WiFi networks with signal strength
●marker next to the currently connected network- Networks are sorted and updated automatically
Note: Requires NetworkManager (nmcli) to be installed.
Audio Indicator
Shows current volume level next to the WiFi indicator.
| Action | What it does |
|---|---|
| Left-click | Toggle mute/unmute |
| Scroll up | Increase volume by 5% |
| Scroll down | Decrease volume by 5% |
Note: Requires ALSA utilities (amixer) to be installed.
Configuration
DWN can be customized by editing a config file.
Create Your Config
mkdir -p ~/.config/dwn
cp /etc/dwn/config.example ~/.config/dwn/config
Edit Your Config
Open ~/.config/dwn/config in any text editor. Here are common changes:
Change terminal:
[general]
terminal = gnome-terminal
Options: xfce4-terminal, gnome-terminal, konsole, alacritty, xterm
Change app launcher:
[general]
launcher = rofi -show run
Change layout:
[layout]
default = floating
Options: tiling, floating, monocle
Change window gaps:
[appearance]
gap = 10
border_width = 2
Configure autostart:
[autostart]
enabled = true
xdg_autostart = true
path = ~/.config/dwn/autostart.d
DWN automatically starts applications from XDG autostart directories:
/etc/xdg/autostart/- System apps (nm-applet, blueman, etc.)~/.config/autostart/- User apps~/.config/dwn/autostart.d/- DWN-specific symlinks
To add custom autostart apps:
mkdir -p ~/.config/dwn/autostart.d
ln -s /usr/bin/telegram-desktop ~/.config/dwn/autostart.d/
AI Features (Optional)
DWN has an AI assistant that can run commands for you. For example, you can press Super+Shift+A, type "open chrome", and it will launch Chrome.
AI Command Setup (OpenRouter)
- Go to openrouter.ai and create a free account
- Get your API key
- Add it to your shell config:
echo 'export OPENROUTER_API_KEY="your-key-here"' >> ~/.bashrc
source ~/.bashrc
- Make sure dmenu is installed:
sudo apt install dmenu
Exa Semantic Search Setup
- Go to dashboard.exa.ai and create an account
- Get your API key
- Add it to your shell config:
echo 'export EXA_API_KEY="your-key-here"' >> ~/.bashrc
source ~/.bashrc
Usage
- Press
Super + Ato see AI context info about your current task - Press
Super + Shift + Ato ask the AI to do something:- "open firefox" - launches Firefox
- "run terminal" - opens a terminal
- "what time is it" - answers your question
- Press
Super + Shift + Eto search the web semantically:- Type a question like "how to configure nginx"
- Select a result to open in browser
Troubleshooting
"make: command not found"
Install build tools:
sudo apt install build-essential
"X11 libraries not found" or build errors
Install dependencies:
make deps
Can't find DWN at login screen
Make sure you ran sudo make install, then:
ls /usr/share/xsessions/dwn.desktop
If missing:
sudo cp scripts/dwn.desktop /usr/share/xsessions/
Terminal shortcut doesn't work
Install the default terminal:
sudo apt install xfce4-terminal
Or change terminal in config (see Configuration section).
Screen is blank after login
DWN started but there's nothing to show. Press Ctrl+Alt+T to open a terminal.
How do I get back to my normal desktop?
- Press
Super+Backspaceto exit DWN - At login screen, select your previous desktop (GNOME, KDE, etc.)
AI says "dmenu not found"
sudo apt install dmenu
WiFi indicator not working
Make sure NetworkManager is installed and running:
sudo apt install network-manager
sudo systemctl enable --now NetworkManager
Audio indicator not working
Make sure ALSA utilities are installed:
sudo apt install alsa-utils
Uninstall
sudo make uninstall
Then select a different desktop at the login screen.
All Make Commands
| Command | What it does |
|---|---|
make help |
Show all commands |
make deps |
Install dependencies |
make |
Build DWN |
make debug |
Build with debug symbols |
make run |
Test in a window |
make install |
Install system-wide |
make uninstall |
Remove from system |
make clean |
Delete build files |
make format |
Format source code |
make check |
Run static analysis |
License
MIT License - do whatever you want with it.
Credits
- Inspired by dwm and XFCE
- AI powered by OpenRouter