Pool Video Switch 2
Developer and Integrator documentation
Configuration File
The configuration file should be saved as /opt/openslx/pvs2/pvs2.ini
. As this
extension is stateless the same set of files is used by both client and manager.
A sample configuration can be found in sample_configuration
.
General settings
-
rooms: list all rooms that should be available to users
-
allowClientQuit: If set to true, users can shut down the client by clicking on
"Quit" in the toolbar of pvsclient.
-
showLockDesktopButton: If set to true there will be a button "Lock" that when
clicks calls the script "lockDesktop.sh".
Room settings
A room section represents a physical or virtual room where clients are
placed on defined positions. Viable configuration options are:
MUST:
CAN:
-
tutorIP: The ip of a client in this room which should be set as tutor by
default. Usually the instructor's PC.
-
backgroundImage: Path to an image file that will be drawn as a background behind the room window
-
gridSize: size of the grid, defaults to minimal size to fit all clients on the
screen
-
clientSize: size of the clients on the grid. In combination with a big grid.
This allows you to create well-detailed room configurations.
-
priority: Important for the auto-connect feature, but also affects the sorting
in the connect window of the client.
Lock/Unlock Scripts
The functionality of PVS client(pvsclient
) can be extended by providing
additional shell scripts that are executed on certain events.
When the PVS client receives the message from the manager to lock the screen it
executes kb-lock.sh
in the configuration directory (/opt/openslx/pvs2
). When it
receives an unlock message the client executes kb-unlock.sh
in the same
directory.
We suggest to implement additional locking measures in these files. In the
sample_configuration
folder of this repository you can find 2 scripts that use
xinput
to disable (enable) the keyboard so that users cannot (even when the
keyboard input is grabbed by VMWare Player) type while the screen is locked.
Switch-Scripts
For some deployments it can make sense to run pvsmgr
on a regular instance
(with a running VM) instead of a dedicated manager computer.
If pvsclient
detects that it is running on a instructor's computer it shows
the button "Switch" with which the user can switch to a running pvsmgr window.
To perform the window switching pvsclient
calls the pair of shell scripts
switchToManager.sh
and switchBack.sh
. See the sample configuration which
uses wmctrl
to perform the switching.
Lock-Desktop-Script
To allow users to lock their workstations (and not just the VM) we add a button
"Lock" (when in [general]showLockDesktopButton=true) that when clicked causes
the script /opt/openslx/pvs2/lockDesktop.sh. In this script you should call
something like "xscreensaver-command --lock" or similar.
Network Setup
FOR CONTRIBUTORS
Code Style
Please check the file .astylerc
for details. We recommend to install a
pre-commit hook to make sure that one only commit complying code. Such a hook
can be found in scripts/astyle-check.sh
Steps to install the hook:
# install astyle
apt-get install astyle
cd pvs2
cd .git/hooks
ln -s ../../scripts/astyle-check.sh pre-commit
chmod +x pre-commit
If a staged file does not comply to our coding style, you can use
astyle --options=./.astylerc <FILE>
to correct the style.