A framework for writing window managers in familiar HTML, JS, and CSS.
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.
We are on the AUR under dote-wm. So install with your favorite AUR helper.
yay -S dote-wm
Check releases! I'll try to provide up to date .deb
files.
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
Compile commands are standard CMake affair:
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j3Any 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.
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 dotewmSet your ~/.xinitrc to the following:
exec dotewm
Or consult your login manager on usage.
CEF (Chromium Embedded Framework) is used to render the HTML/CSS/JS. CEF can take in command line arguments to control certain behaviors. Due to the way Dote launches CEF, these arguments cannot be specified directly on the command line when launching Dote. Instead, you can set these arguments in the "CEF_ARGS" environment variable before starting Dote. For example, to enable remote debugging on port 9222, you would do the following in your terminal:
export CEF_ARGS="--remote-debugging-port=9222"
dotewmOnce enabled to remotely debug you can access chrome://inspect.




