summaryrefslogblamecommitdiffstats
path: root/README.md
blob: cf404921c4762a63cbd291d92543aadb5549e008 (plain) (tree)
1
2
3
4
5




                                                      












                                                                                


                                                                               













                                                                            


                                                                          









                                                                                                  





                                                                               

                                                                                   







                                                                                









                                                                              






                                                                               
 

                 





















                                                                             

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:

  • mgrIP: The ip of the instructor's PC

  • client: An array containing all clients and their positions. For the exact syntax compare with the provided sample configuration

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.