July 26, 1999 WSMUX 4

### NAME

wsmux - console keyboard/mouse multiplexor for wscons

### SYNOPSIS

wskbd* at ... mux 1 wsmouse* at ... mux 0

pseudo-device wsmux

### DESCRIPTION

The wsmux is a pseudo-device driver that allows several wscons(4) input devices to have their events multiplexed into one stream.

The typical usage for this device is to have two multiplexors, one for mouse events and one for keyboard events. All wsmouse(4) devices should direct their events to the mouse mux (normally 0) and all keyboard devices, except the console, should direct their events to the keyboard mux (normally 1). A device will send its events to the mux indicated by the mux locator. If none is given the device will not use a multiplexor. The keyboard multiplexor should be connected to the display, using the wsconscfg(8) command. It will then receive all keystrokes from all keyboards and, furthermore, keyboards can be dynamically attached and detached without further user interaction. In a similar way, the window system will open the mouse multiplexor and receive all mouse events; mice can also be dynamically attached and detached.

If a wskbd(4) or wsmouse(4) device is opened despite having a mux it will be detached from the mux.

It is also possible to inject events into a multiplexor from a user program.

### FILES

For each mux device, ```/dev/wsmuxN` there is a control device ```/dev/wsmuxctlN`. The control device has a minor number 128 greater than the regular mux device. It can be used to control the mux even when it is open, e.g., by wsmuxctl(8).

  ```/dev/wsmouse` a.k.a. ```/dev/wsmux0`

  ```/dev/wskbd` a.k.a. ```/dev/wsmux1`

  ```/usr/include/dev/wscons/wsconsio.h`

### SEE ALSO

wscons(4), wsdisplay(4), wskbd(4), wsmouse(4), moused(8), wsconscfg(8), wsconsctl(8), wsfontload(8), wsmoused(8), wsmuxctl(8)