Pimp My IDE / interface shop
Back to garage
15 Oct 2026 / interface craft / physical controls

Texture is cheap. Consequence is the craft.

DEsk turns windows into paper, the dock into a drawer, and notifications into letters. The useful lesson is not walnut and brass. It is that every object keeps one job, one motion, and one visible result.

A physical metaphor earns its space when it explains what can move, what changed, where it went, and how to get it back.

WINDOW / PAPERLift the corner to find Fold, Unfold, and Discard. The material points to the control.
Material + motion + state + return

DEsk commits to the bit.

DEsk v0.1.2 is a beta Wayland desktop whose room is a desk. Windows sit on paper. Folded windows stay on the desk or in a drawer that replaces the dock. Applications live in binders. Notifications arrive as letters. The Control Panel uses meters, levers, and a volume knob.[1]

This could have stopped at costume. It does not. The turned corner of each paper window exposes three window actions. Fold minimizes. Unfold and Refold handle maximize and restore. Discard closes the window. Pulling an edge reveals more paper as the window grows. The object, motion, and software state use the same words.

Do not draw a brass switch unless the user can tell what it switches.

The scene has rules, not just props.

The architecture notes call the desk a place rather than a skin. One lamp shades the room and its objects. One point scale governs the desk. Slow work such as tracing, disk scans, authentication, weather, and sound runs outside the compositor thread. The project targets 60 frames per second on its Low setting for a 2010 laptop.[2]

Those choices matter more than simulated wood. A drawer that opens but blocks input is scenery. A paper window that moves at one scale and receives pointer input at another is a trap. DEsk's source map puts window state, scene layers, input, and drawing in named parts. Its frame loop advances motion by elapsed time and draws only after something changes.

The protocol still owns the window.

Wayland's XDG shell turns a surface into a desktop window. It defines the basic operations used to drag, resize, maximize, and create popups. It also defines a ping and pong exchange that a compositor can use to detect an unresponsive client.[3]

That boundary keeps the metaphor honest. A paper edge can initiate resize, but the window remains an XDG toplevel. A folded packet can represent minimized state, but it cannot invent a second state that applications and accessibility tools cannot read. The physical object should explain the protocol action, not replace it with private theater.

Wear should record use, not fake history.

DEsk says its objects include material, light, shadow, and wear. Wear is strongest when it records something the interface knows. A drawer handle may brighten after keyboard focus. A folded packet may keep the app name and restore path. A frequently used binder may stay near the hand because the user placed it there.

Random scratches do not explain state. They add visual noise and suggest a history that never happened. If an interface remembers use, give that memory a reset and a plain description. If it does not remember use, keep the surface clean enough for labels and focus rings to win.

Run four checks before polishing the grain.

  1. Name the software action. Avoid objects whose only job is decoration.
  2. Make the object's motion match the state change. A drawer opens. A switch changes detents. A folded window can unfold.
  3. Show the result in text as well as shape, motion, or color.
  4. Keep a return path beside the object. Undo, restore, stop, or reset should not live in another room.

DEsk remains beta. Its release notes list missing protocols, HiDPI limits, narrow hardware testing, and unreviewed translations. The project was inspected at one revision for this article. It was not installed or run here.[4]

Interactive makeover / affordance wear bench

Put the metaphor under load.

Traditional purpose replaced: a design review checklist with no preview. Better version: select each required contract, watch the object gain usable state, and copy the remaining review packet.

ActionMotionStateReturn

Object contract

Select only what the design already supplies. The final state means the review template is complete. It does not prove the interface works in its host.

Required checks

Paper-window specimen

Lift the corner for a tactile hint. Use the checklist to make the whole contract visible.

Specimen 04 / window action

A paper shape is not yet a control.

No contract selected. The corner can attract attention, but it does not explain the action or recovery path.

Action / open
Motion / open
State / open
Return / open
0 of 4 checks selectedReview structure is open.
This bench drafts a review packet. It does not inspect a compositor, execute a window action, or verify keyboard, screen-reader, motion, and recovery behavior.
Sources read / 15 Oct 2026

Evidence drawer

Project README

DEsk at revision 195435a

Documents the beta status, paper windows, drawer dock, binder app list, post box, Control Panel, multi-screen behavior, and project boundary.

Inspect the pinned repository
Architecture notes

How the desk is built

Documents the scene rules, point scale, worker ownership, frame loop, target frame rate, source map, and wlroots base.

Read the pinned architecture
Protocol reference

XDG shell

Defines desktop-style surfaces, toplevel window operations, popup roles, and the ping and pong liveness exchange.

Read the protocol reference
Release notes

DEsk v0.1.2 beta

Lists the shipped parts, supported systems, known protocol gaps, HiDPI limit, hardware coverage, and checks reported by the project.

Read the pinned release notes
Artifact check. Tag v0.1.2 resolves to commit 195435a09b9343e49b12e8dd8838a6e579a9aaa4. The repository contains source, build files, installers, checksums, and documentation. The installers can change packages and session files, so none was run for this article. Repository inspection does not verify runtime behavior. Hacker News item 50103338 was the discovery route. Its comments are not evidence for the project claims.