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
- 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 |
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 |
|---|---|
Super + F9 |
Toggle floating mode |
Alt + F10 |
Toggle maximize |
Alt + F11 |
Toggle fullscreen |
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 |
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 battery, audio, and WiFi indicators.
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
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
| bin | |
| build | |
| config | |
| include | |
| scripts | |
| site | |
| src | |
| LICENSE | |
| Makefile | |
| README.md |