Draw on your desktop wallpaper. Keep the doodles.
DeskDoodle opens an Excalidraw canvas on top of your current
wallpaper. Sketch whatever you like — a reminder, an arrow pointing at nothing, a cat —
hit Ctrl+S, and it becomes your desktop background. Your doodles stay editable, so the
next run you can move them, redraw them, or wipe them and start over.
https://user-images.githubusercontent.com/PLACEHOLDER/deskdoodle-demo.mp4
npm install -g deskdoodleOr run it without installing:
npx deskdoodle drawdeskdoodle draw # open the canvas on your wallpaper
deskdoodle erase # delete the doodles, keep the wallpaper
deskdoodle restore # put your original wallpaper back, keep the doodles
deskdoodle check # check required tools and providersRun deskdoodle on its own for help.
erase and restore are opposites. erase throws the doodles away and leaves
DeskDoodle in charge of your background. restore hands your desktop back to the
wallpaper it had before DeskDoodle touched it, and keeps the doodles on disk — run
deskdoodle draw again and they are still there, ready to edit.
Inside the editor:
Ctrl+S save and close
Esc close without saving
That is the whole tool.
- Linux with GNOME
- a wallpaper that is a local file (
file://...) - Node.js 22 or newer
-
ImageMagick 7, for the
magickcommand -
gsettingsandgdbus, which GNOME already ships - a browser to draw in: Firefox, Chromium/Chrome, or anything
xdg-openpicks
deskdoodle check tells you which of these are missing.
- Reads your current wallpaper and your monitor's resolution.
- Scales the wallpaper to a base image and serves it to a local editor page.
- You draw. The doodles are a transparent layer, exported at exactly your screen size.
- ImageMagick composites the layer over the base image.
- The result becomes your wallpaper.
Nothing leaves your machine. The editor is served on 127.0.0.1 behind a random token
and shuts down when you close it.
Saved in ~/.config/deskdoodle/config.json.
deskdoodle config show
deskdoodle config set backend auto # auto | gnome
deskdoodle config set browser firefox-kioskBrowser launchers: auto, firefox-kiosk, chromium-app, xdg-open, custom.
A custom launcher takes an absolute path, so there is never any doubt about which
binary runs. Use {url} to place the editor URL, or leave it off to have it appended:
deskdoodle config set browser custom /usr/bin/brave --app={url}Your doodles and everything DeskDoodle renders sit in ~/.local/share/deskdoodle. Only
one thing in there cannot be rebuilt: the record of which wallpaper was yours before
DeskDoodle took over. The rest is regenerated as needed — change your screen resolution
and the wallpaper is re-rendered on the next run.
Delete that record while a doodled wallpaper is showing, and DeskDoodle refuses to start
rather than mistake its own output for your original wallpaper. Set a real wallpaper
again first. deskdoodle restore keeps working even when everything else is gone.
- GNOME only, for now — the wallpaper backend is a plug-in point, so more can follow
- primary monitor only
- local wallpaper files only
pnpm install
pnpm typecheck
pnpm build
pnpm start # runs the built CLI
pnpm build && pnpm link --global # use `deskdoodle` from this checkoutMIT