DEVDRAW(1)

NAME
devdraw - draw device simulator

SYNOPSIS
invoked via initdraw (see graphics((3)))

DESCRIPTION
Devdraw serves a custom graphics protocol and is the only program that talks directly to X window servers.

  Apple macOS

On macOS, because a laptop trackpad click only has one button (the trackpad itself) Option-click is button 2, and Command-click is button 3. While the main mouse button is held down, Control, Option, and Command serve as simulated buttons 1, 2, 3 for chording in acme((4)). For example, the 1-3 pasting chord in acme can be executed by highlighting text while holding down the trackpad button and then, while still holding down the button, pressing the Command key.

As usual, buttons 4 and 5 represent a scroll wheel. Two-finger scrolling on the trackpad sends those button events.

Holding down shift while clicking adds 5 to the button number. For example, Command-Click is button 3, so Command-Shift-Click is button 8. Most programs do not respond to those buttons; one notable exception is acme((1)), which interprets button 8 (shifted button 3) as a reverse search.

Typing Command-F toggles full screen mode.

Devdraw automatically detects high-resolution (retina) displays. For debugging, typing Command-R toggles retina mode.

Other than the special cases mentioned above, holding down Command while typing a character Kcmd (0xF100) plus that character. Some programs (notably acme(1)) recognize standard keyboard shortcuts such as Command-Z (undo), Command-Shift-Z (redo), Command-X (cut), and Command-V (paste).

  X Windows

On Unix systems, Control-click is mouse button 2, and Alt-click is mouse button 3. While the main mouse button is held down, Control and Alt serve as simulated buttons 2, 3 for chording in acme((4)). For example, the 1-3 pasting chord in acme can be executed by highlighting text while holding down the trackpad button and then, while still holding down the button, pressing the Alt key.

Because the Control and Alt keys have other meanings (see keyboard((7)) for the Alt key's meaning) and there is no third modifier key like on the Mac, there is no way to type Kcmd variants, so there is no access to keyboard shortcuts for undo, redo, cut, and paste.

SOURCE
/src/cmd/devdraw

SEE ALSO
draw((3)), drawfcall((3)), graphics((3)), keyboard((7))

BUGS
Devdraw should probably present a standard 9P server instead of using its own protocol.