The repo provides a NixOS configuration suitable for machines intended to act as CoTag signage endpoints.
- Install NixOS onto the target machine. Do not continue with any configuration following base OS install.
- Set any deployment specific options in
configuation.nix
. - Run
./setup.sh
as root to complete setup.
In addition to the base NixOS options, system setup may be simplified using some of the included modules.
Toggle activation status. When enabled the machine will boot directly to a browser window.
The URL to load.
Prevent the display from sleeping. Defaults to true
.
Remove the cursor (e.g. for touch or non-interactive systems). Default to true
.
A list of displays to combine as a single, large virtual monitor. Position and rotation may be specified to suite physical installation requirements, allowing for overlap, bezel compensation or portrait / inverted mountings.
This may be omitted to auto-detect attached displays, mirroring output to all.
While the Canvas provides the ability to define a single large render area spread across multiple displays, the compositor may be used to layout multiple, discreet content sources within this (or within a single display).
Window definitions passed to the compositor will generate a light-weight, static resource which may be loaded into the root browser session.
Each window must contain a url
key. It may then use any combination of CSS layout attributes to define it's position within the overall display. CSS transforms may also be used to provide perspective distortion and rotation. Similarly, CSS filters may be applied for colour correction, brightness and contrast compensation.
For example, a vertical split layout that will auto-size to the available screen resolution can be generated with the following expression.
let
defaultUrl = "https://www.acaprojects.com";
in
{ leftUrl ? defaultUrl, rightUrl ? defaultUrl }:
"file://" + tools.compositor.makeLayout
[
{ url = leftUrl;
width = "50%";
}
{ url = rightUrl;
width = "50%";
right = 0;
}
]