OMERO(1) OMERO(1)
NAME
omero - Plan B portable window system
SYNOPSIS
omero [ -A ] [ -dDCFLBMTS ] [ -n addr ] [ -p ] [ -V volspec
] [ -t mouseaddr [ initprog ]
DESCRIPTION
Omero is the Plan B window system and the Graphical User
Interface resource volume. It services a tree of files
(i.e., a volume) to implement the Plan B GUI service. Most
programs that use omero have names that start with the let-
ter o, to make it easier to locate them.
You can refer to omero(4) for a description of both the file
tree and the command arguments. This page is an introduction
and documents the user interface to the window system.
Unlike other window systems, omero implements both window
management and the set of GUI components available. In this
respect, it is both a window system and a GUI toolkit. The
user interacts with omero using any keyboard and pointing
device avalable in the network, see oscreen(1) for examples.
Applications interface with omero using the files in its
volume, and perhaps listening for omero events. This is usu-
ally done via omero(2) routines.
Omero starts ox(1) automatically, to permit file edition,
command execution and file browsing. Other applications may
be started by the user, or by supplying a initprog rc script
to the program.
A screen handled by omero consists of a tree of graphical
panels. There are three kind of panels: rows, columns, and
atoms. Rows and columns group inner panels and handle their
layout. A row arranges for inner panels to be disposed in a
row. A column does what can be expected. Atoms include
text, images, gauges, and the like. See omero(4) for the
complete list.
The graphical representation of panels in the screen corre-
sponds to the file tree serviced by omero to its clients.
For example, a screen that contains two rows has two corre-
sponding files in its root directory. If the user moves one
row within the other using the mouse, the same would happen
to their respective files; and vice-versa.
Any panel may have a tag (a square near its top-left cor-
ner). By default, rows and columns have tags, and atoms do
not. This can be changed through the file system interface.
Page 1 Plan 9 (printed 11/29/25)
OMERO(1) OMERO(1)
The vertical space below the tag is called the margin. When
a panel has hidden panels within it, its tag is shown as a
vertical rectangle instead of a square box.
A panel may be in a dirty state, when the application using
it considers that it has unsaved state. In this case, the
tag is shown in a light green color.
The delete key sends an interrupt request to the applica-
tion. Note this is different from sending a system interrupt
to stop it. To stop applications, you must use a command to
send interrupt notes to them. This may change in the future.
The Escape key selects all the text typed since the last
click of the mouse. The Return key does the same and
requests the execution of the selected text.
Omero uses a three button mouse. In Plan B, the left
control, Start, and Alt keys in the keyboard are equivalent
to the left, middle and right mouse buttons. Later we
describe the mouse operations available in tag and margins,
and then we describe the mouse operations available within
atoms.
If one or more mouse addresses are given with option -t
omero intercepts function keys (starting at F1) and redi-
rects the mouse to the corresponding address when the func-
tion key is pressed.
Selection
The user selection and clipboard are maintained by a
resource volume, which is usually shared among Plan B termi-
nals for the user. This means that operations that involve
either a user selection, or text placed in the clipboard,
may be performed across different machines.
Mouse in Tag and Margins
A click with the left button in a tag changes a row into a
column and vice-versa. It has no effect in other types of
panel.
A click with the middle button in a tag or margin maximizes
the panel by hidding its siblings.
A click with the right button in a tag or margin hides the
panel.
The left and middle mouse buttons can be used to drag a tag
(or margin) and drop it somewhere else (press button, move
pointer somewhere else, release). This moves the corre-
sponding panel to a target location. The left button takes
as the destination the innermost row/column that is not
Page 2 Plan 9 (printed 11/29/25)
OMERO(1) OMERO(1)
created by an application and contains the target. The mid-
dle button takes as the destination the innermost row/column
than contains the target.
In any case, Omero does its best to locate the panel in the
new placement, by considering the relative position within
the target where the drag terminated.
The mouse wheel (or up/down arrow keys) can be used in the
tag of a panel to control the number of inner elements
shown. Moving the wheel down (or pressing the down arrow
key) in the tag of a panel, changes the number of panels
shown within it. This number cycles between 1 and the num-
ber of inner panels. For example, a down arrow in the tag of
the panel used by an application has the effect of minimiz-
ing it (i.e. show only the first inner panel, which is usu-
ally a text line or tag). In this example, pressing down-
arrow once more with show the first two inner panels, and so
on.
Moving the wheel up (or pressing the up arrow key) in the
tag of a panel, unhides all panels contained within it. This
can be used, for example, to restore a previously hidden
panel, by using up-arrow in its container.
The wheel (or up/down keys) can be used in the left margin
of a panel (below its tag) to cycle the order of its inner
panels. This is useful to see panels can cannot be seen due
to the lack of screen space, and to change the order in
which panels are shown.
A chord of left and middle buttons in a tag or margin can be
used to copy to the clipboard the path of the panel
affected. For rows and columns with tags, this is equivalent
of using the Sel command to snarf the path of the file that
represents the panel.
A chord of left and right buttons in a tag or margin can be
used to execute the command Ocp using the contents of the
snarf buffer and the involved panel path as arguments. This
has the effect of replicating a panel whose path is in the
snarf buffer.
Mouse and Arrow Keys on Atoms
Within a panel, a click with the left button can be used to
set the insertion point. The left button can be also used to
select region of text.
A click with the middle button requests the execution of the
command corresponding to the word or selection at the click.
On images, the command depends on the application.
Page 3 Plan 9 (printed 11/29/25)
OMERO(1) OMERO(1)
A click with the right button sends the word or selection at
the click to the youps(4), service to plumb the text to the
appropriate application in the network.
Holding the right button down is used to scroll on text pan-
els. The scrollbar is actually the panel itself. The top
corresponds to the start of the text, and the bottom corre-
sponds to the end of the text.
A chord of left and middle buttons (press left, then press
middle, release middle, release left) can be used to cut
text. A chord of left and right buttons pastes the text in
the snarf buffer.
A chord of middle and left buttons runs a command using the
selection as an argument.
A chord of right and left buttons extends the current selec-
tion to the point at the chord.
The up and down keys (or the mouse wheel) causes a text
panel to scroll up and down. The left key performs an undo
operation on editable text panels, and the right key per-
forms a redo.
Builtin Commands
Omero understand by itself the commands:
Row to create a row,
Col to create a column,
Ox to run another instance of ox(1), which uses its own
separate namespace.
Del to delete a panel.
Sel to copy to the clipboard the path of the file repre-
senting a panel,
Arg to append to the clipboard the path of a panel,
In all cases, the command argument is selected by a click
with the left button. For example, to delete a panel:
Middle-click on Del and then left click in the panel. Along
the lines of Plan 9's acme(1), all text is similar. It does
not matter where the text of the command stands or who did
type it.
SOURCE
/sys/src/cmd/omero
Page 4 Plan 9 (printed 11/29/25)
OMERO(1) OMERO(1)
SEE ALSO
ox(1), omero(4), rio(4),
BUGS
Frame usage should be reworked.
Page 5 Plan 9 (printed 11/29/25)