Repository navigation
Live Draw
Draw on your screen, over every application — to point at something in a video call, annotate a screencast, sketch on a slide, or just scribble — with a pen, highlighter, laser pointer, shapes, a whiteboard mode, a spotlight and a magnifier. The ink belongs to the workspace it was drawn on and slides with it when you switch; you can copy it, export it as a PNG or SVG, or file it into Notes as a sketch.
It is the desktop twin of the tablet's pen tray: both are two surfaces over the same store (services/LiveDraw.qml), so the tools, palette and pen settings are shared. This page covers the desktop overlay; the touch-first version (with pressure, palm rejection and the floating bubble) is in Tablet Family.
- Super + Alt + D — a toolbar appears and the screen is yours to draw on (every click becomes ink). Press again, or Esc, to close; the drawing stays on its workspace.
- Pick a tool in the toolbar or by key: P pen, H highlighter, L laser, A arrow, R rectangle, O ellipse, I line, E eraser. 1–9 pick an ink from the palette; [ / − and ] / + change thickness.
- D (or the "Drawing" button) puts the pen up: clicks go through to the applications, the ink stays visible; pick the pen up again to continue.
- Ctrl + Z undo, Ctrl + Shift + Z (or Y) redo, Delete clears this screen, S saves, C copies, T hides the toolbar, F zoom, M spotlight, W / K whiteboard / blackboard.
Live Draw is on by default and can be disabled in Settings → Overlays & OSD → Live Draw (liveDraw.enable), where there is also a Start drawing button. The same entry points also exist from the bar's utility buttons, the dock's Live Draw tile, the Dashboard quick toggle, the recording controls and the launcher.
A floating tray you can drag off whatever is being shown and fold down to just the pen (it stays within reach without covering the slide). It offers:
- Pen, highlighter (drawn under the ink, see-through), laser pointer (fades on its own), shapes — arrow, rectangle, ellipse, line; click the shape button again to cycle through them, hold Shift to snap lines to angles and boxes to squares.
- Eraser, undo / redo, clear this screen, thickness, and the ink palette (eight colours by default).
- Spotlight — dims everything except a circle around the pointer, for pointing at one thing in a screen share. Zoom — magnifies around the pointer; scroll adjusts, Esc or a click leaves.
- Board — a blank page over the screen: light or dark, with a pattern (Blank, Grid, Dots, Lines), for explaining something on a whiteboard instead of on top of the apps.
-
Save / copy menu: Copy the drawing (transparent PNG), Copy the screen with it, Save as PNG (transparent, cropped to the ink, into
~/Pictures/Drawings), a Screenshot option (the screen with the drawing, saved toPictures/Screenshotstoo), Save as SVG (vector, sharp at any size), and Save to Notes — which files the drawing as a sketch note and clears the screen.
- Per workspace, per screen. Each sheet is keyed by monitor and workspace: a drawing on a monitor doesn't reappear on another after a hotplug, and switching workspace brings its own drawing. Drawings belong to — Each workspace (default) or The screen (one drawing per monitor that stays whatever workspace is in front).
-
Slide with the workspace. With Slide with the workspace (
tablet.liveDraw.workspaceParallax) the ink travels with the windows during the switch animation, slightly less far, so it reads as sitting a little behind the glass; the cost is one extra canvas for the length of the transition, and only when one of the two sheets has ink. - In memory only — on purpose. A workspace annotation that outlived a reboot would be a surprise. It does survive a reload of the shell, so redrawing is not needed while you tweak things mid-presentation. Ink that must last has the Save button.
- One surface only when there is a reason. A layer-shell surface is created per screen only while the tray is open or that screen holds ink; an always-mapped overlay is blended over every frame for nothing and keeps a fullscreen game off direct scanout.
- Pressure. Stylus pressure varies the width (Pen pressure, with a floor of a third of the nominal width, so strokes don't taper to nothing at their ends); a mouse or finger always draws an even line. The setting reads Waiting for a pen — a mouse always draws even lines until a stylus is seen (pressure strictly between 0 and 1 identifies a real pressure device, independent of how the driver presents itself — this is what makes an OpenTabletDriver virtual tablet work).
-
Smoothing. Line smoothing (0–95, default 55) rounds off every line at the cost of trailing the tip; Mouse smoothing (0–100, default 60) additionally steadies a hand on a mouse or touchpad by letting the brush trail the pointer on a short string. A pen is never smoothed that way. The pipeline is three passes in
StrokeGeometry.js: thin (drop samples closer than ~1.6 px), exponential smoothing of position only, then width from pressure; strokes are drawn with the midpoint trick so consecutive curves meet with equal tangents. - Cursor. System crosshair uses the real cursor instead of the drawn ring (which redraws a screen-sized surface on every pointer move).
qs -c ii ipc call liveDraw toggle|draw|stop|quick # quick = draw with no toolbar; `stop` ends it (hold-to-draw)
qs -c ii ipc call liveDraw pen on|off|toggle # pen down / up (clicks go through)
qs -c ii ipc call liveDraw tool arrow # pen, highlighter, laser, line, arrow, rect, ellipse, eraser
qs -c ii ipc call liveDraw color "#e53935" # or 1-9 for the palette
qs -c ii ipc call liveDraw width 8
qs -c ii ipc call liveDraw board light|dark|off|toggle
qs -c ii ipc call liveDraw spotlight | zoom | toolbar show|hide|toggle | sheet workspace|screen
qs -c ii ipc call liveDraw undo | redo | clear | clearAll
qs -c ii ipc call liveDraw copy | copyScreen | exportAs png|svg | save
qs -c ii ipc call liveDraw status # the whole state as JSONEvery function answers with what it did. Two other global shortcuts exist for binding to your own keys: liveDrawSpotlight and liveDrawZoom. A key held to draw is easy: bind quick to the press and stop to the release.
| Key | Default | Meaning |
|---|---|---|
liveDraw.enable |
on | Master switch (desktop) |
liveDraw.mouseSmoothing |
60 | 0–100 |
liveDraw.sheetMode |
workspace |
workspace or screen
|
liveDraw.nativeCursor |
off | System crosshair |
liveDraw.boardPattern |
grid |
none, grid, dots, lines
|
liveDraw.boardLight / boardDark
|
#f7f6f2 / #1f2124
|
Board tones — literal colours on purpose: paper and chalkboard must not change with the wallpaper |
tablet.liveDraw.width |
4 | Nominal width in px |
tablet.liveDraw.pressure |
on | Pressure-sensitive width |
tablet.liveDraw.smoothing |
55 | |
tablet.liveDraw.palette |
white, near-black, red, orange, yellow, green, blue, purple | Literal pigment colours (the one place colours are not themed: ink that recoloured with the theme couldn't be trusted) |
tablet.liveDraw.workspaceParallax |
on | Slide with the workspace |
The pen's own keys live under tablet.liveDraw because the tablet got there first; both families read them, and all of them are edited from the toolbar's settings popup.
| Piece | Role |
|---|---|
services/LiveDraw.qml |
The store: sheets (kept across shell reloads in a PersistentProperties), tools, colours, board, spotlight, zoom, undo/redo, save |
modules/ii/liveDraw/LiveDrawOverlay.qml |
The desktop scope: global shortcuts, IPC, one window per screen when needed |
modules/common/draw/ |
Shared by desktop and tablet: LiveDrawWindow, DrawSurface (the live stroke), DrawCanvas (finished strokes, repainted only when the sheet changes), DrawToolbar, LiveDrawSettings, StrokeGeometry.js
|
modules/tablet/liveDraw/ |
The tablet's pen tray |
Implementation notes: the surface switches between drawing (its input mask covers the whole screen, every touch is ink) and pen up (the mask covers only the toolbar, so clicks pass through to the apps below); a tablet stylus never produces mouse events, so the toolbar buttons carry a tablet-only tap handler. Canvas.save() cannot be used under Quickshell (all base URLs are qs:), so images are saved with grabToImage + saveToFile.
- Tablet Family — the pen tray, pressure, hub mode
- Notes — sketch notes and drawing inside a note
- Screen Capture & Recording
- Keybinds