Skip to content
/ DoteWM Public

A framework for writing window managers in familiar HTML, JS, and CSS.

License

Notifications You must be signed in to change notification settings

FoxMoss/DoteWM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f0132cf · · Nov 27, 2025

History

27 Commits
Nov 27, 2025
Nov 4, 2025
Nov 27, 2025
Nov 4, 2025
Nov 4, 2025
Nov 4, 2025
Nov 25, 2025
Nov 4, 2025
Nov 4, 2025
Nov 26, 2025
Nov 4, 2025
Nov 27, 2025
Nov 26, 2025
Nov 27, 2025
Nov 27, 2025

Repository files navigation

A framework for writing window managers in familiar HTML, JS, and CSS.

A project.

Demos

Windows 98 styled, written in dreamland

github.com/FoxMoss/dote-dreamland-win95-example

This is the one I actually developed on and will have the least amount of bugs. dreamland.js is a great framework, if you're new take a look at the docs.

Windows XP styled, written in React

github.com/FoxMoss/dote-react-xp-example

A port of the Win 98 one to React and XP.css, a bit more rough.

DVD Logo Window Manager, written in vanilla js

github.com/FoxMoss/dote-vanilla-dvd-example

The most rough of the bunch, completely unusable. Many hours will be wasted waiting for your terminal to hit the corner..

Install

On Arch

We are on the AUR under dote-wm. So install with your favorite AUR helper.

yay -S dote-wm

On Debian

Check releases! I'll try to provide up to date .deb files..

On Other Distros

You'll have to build from source, it wont take too long.

The dependencies on arch are as follows and will need to be renamed to the ecosystem of your choice.

gcc-libs
libx11
libxext
libxcomposite
libxfixes
libxi
mesa
glew
nanomsg
protobuf
abseil-cpp
gtk3
nspr
nss
alsa-lib
nlohmann-json
cmake
git
json
cmake
git

Compile commands are standard CMake affair:

mkdir build

cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j3j3

Usage

Any files placed inside ~/.config/dote/ will be served with index.html being loaded first. Hot reloading is best effort, sometimes a change will need a full restart..

Testing

I would recommend developing in Xephyr as changes can occasionally crash your window manager.

Xephyr :1 -resizeable -no-host-grab


# in another terminal
DISPLAY=:1 dotewmm

Daily Driving

Set your ~/.xinitrc to the following:

exec dotewm

Or consult your login manager on usage.