Spaces.json File¶
The Spaces.json
file is used to define the spaces
of OVE and describe the arrangement of clients
within each space
(these terms are explained in the Basic Concepts page).
Each client
must have its geometry
specified by four properties:
h
: the height of the client in pixelsw
: the width of the client in pixelsx
: the x-coordinate of the top-left corner of the client (x-coordinate values begin at 0 and increase from left to right)y
: the y-coordinate of the top-left corner of the client (y-coordinate values begin at 0 increase downards)
The order in which the clients
are defined determines the oveViewID
of each, and thus the URL that should be opened in each browser window.
By default, OVE assumes that there is a one-to-one mapping between client
pixels and screen
pixels. The optional scale
property can be used to specify an alternative mapping. It accepts either a single scaling factor, or separate scaling factors for the x and y axes, similar to the CSS scale()
function.
The default Spaces.json
file defines two spaces (LocalFour
and LocalNine
), corresponding to 2x2
and 3x3
arrangements of clients
. Each client
in these spaces has a resolution of 1440x808
, so they have a total resolution of 2880x1616
and 4320x2424
respectively.
OVE must be relaunched after any changes are made to Spaces.json
.
Examples¶
Additional spaces can be defined by adding descriptions to the Spaces.json
file.
A number of example additions are provided below.
Single client¶
A space having a single client
with a 4K resolution can be defined by adding:
"4K": [
{"x": 0, "y": 0, "w": 3840, "h": 2160, "scale": 1}
]
The scale
property is optional and can be omitted.
2x2
grid of screens¶
A 2x2
grid of clients
, each with with Full HD (1080p) resolution can be defined by adding:
"HDFour": [
{"x": 0, "y": 1080, "w": 1920, "h": 1080},
{"x": 1920, "y": 1080, "w": 1920, "h": 1080},
{"x": 0, "y": 0, "w": 1920, "h": 1080},
{"x": 1920, "y": 0, "w": 1920, "h": 1080}
]
In the above arrangement, the first client
would be positioned bottom-left, the second client
would be positioned bottom-right, the third client
would be positioned top-left, and the fourth client
would be positioned top-right.
Non-contiguous arrangements and bezel correction¶
The specification of clients
on the Spaces.json
file need not always be contiguous and non-overlapping. The following is a perfectly valid configuration:
"HDFour-alternative": [
{"x": 0, "y": 1090, "w": 1920, "h": 1080},
{"x": 1930, "y": 1090, "w": 1920, "h": 1080},
{"x": 0, "y": 0, "w": 1920, "h": 1080},
{"x": 1930, "y": 0, "w": 1920, "h": 1080}
]
The above arrangement leaves room for a 10 pixel
wide bezel between the each client
in both horizontal and vertical directions and thereby creates a space
of a 3850x2170
resolution (only 8,294,400 of the 8,354,500 pixels in this space are actually displayed by a client
).
The Alignment App exists to help align the monitors by correcting the space
configuration to compensate for the thickness of the bezels and any gaps that may exist between adjacent screens
.