MOUSEFS(4) MOUSEFS(4)
NAME
mousefs, kbdfs - file systems for mouse and keyboard
network redirection
SYNOPSIS
mousefs [ -AdD ] [ -m mnt ] [ -n addr ] [ -V vol ]
kbdfs [ -AdD ] [ -m mnt ] [ -n addr ] [ -V vol ]
DESCRIPTION
Mousefs wraps the local mouse to permit mouse redirection.
This program exports a file system with just two files:
mouse and mousectl. These files behave as said in mouse(3).
By default, mousefs mounts itself at /dev before existing
devices, or at mnt if -m says so.
Kbdfs performs the similar task for the keyboard, and sup-
plies cons (compatible with cons(3)) and kbdctl files.
Besides forwarding events from the underlying device to the
process(es) using the files provided, mousefs and kbdfs lis-
ten for remote calls from other instances of the programs.
Any event sent from a remote peer will be handled as if sent
from the local device. This permits other machines to send
mouse and keyboard events to the machine where the programs
run.
Calls can be initiated by a write of call address to the
mousectl file exported by mousefs or to the kbdctl file
exported by kbdfs. In this case, the program connects to
such system (using tcp and mouse as the default network and
port) and redirects events from the local device to that
connection. A special address local is understood, meaning
the local system.
In the case of the mouse, writes to /dev/mouse while the
system is being called cause event forwarding to the calling
system, to permit mouse teleporting (e.g., like done by
acme(1)).
To cancel an outgoing call, press mouse button 1 while at
the top-left corner of the screen (or window) that is donat-
ing its mouse. This reclaims the mouse for local usage.
Any connection (no matter who initiated it) can be cancelled
by a write of close address to the mousectl or kbdctl file.
When kbdfs is started before, mousefs arranges for the key-
board to be redirected along with the mouse. This requires
kbdfs to be started in the machines involved. Mousefs
Page 1 Plan 9 (printed 11/29/25)
MOUSEFS(4) MOUSEFS(4)
assumes that the port for a kbdfs is one plus the port for
the corresponding mousefs in that system.
Oscreen(1) provides a more convenient user interface to both
programs.
Factotum is used to authenticate with peers. Any protocol
supported by factotum(4) can be used. Option -A disables
authentication, option -V can be used to announce a volume,
as said in planb(4).
SOURCE
/sys/src/cmd/mousefs.c
/sys/src/cmd/kbdfs.c
SEE ALSO
oscreen(1), and mouse(3).
BUGS
The programs try to avoid loops by refusing to call others
while being called, and by refusing to call their own
address. However, by using multiple IP addresses, these pro-
grams ban be fooled and loops can be created. The event
streams are not encrypted.
Page 2 Plan 9 (printed 11/29/25)