diff --git a/README.md b/README.md index 828055d7..6443a33d 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,14 @@ If you like this project and find it useful and would like to help out you can s * [Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ESQ72XUPGKXRY) * BTC - 14ZFcYjsKPiVreHqcaekvHGL846u3ZuT13 +## Documentation + +Please also be sure to see the following files for more information + +* [client/README.md](client/README.md) +* [c-host/README.md](c-host/README.md) +* [module/README.md](module/README.md) + ## Obtaining and using Looking Glass Please see https://looking-glass.hostfission.com/quickstart @@ -24,18 +32,6 @@ Latest bleeding edge builds of the Windows host application can be obtained from https://looking-glass.hostfission.com/downloads -## Key Bindings - -By default Looking Glass uses the `Scroll Lock` key as the escape key for commands as well as the input capture mode toggle, this can be changed using the `-m` switch if you desire a different key. -Below are a list of current key bindings: - -| Command | Description | -|-|-| -| ScrLk | Toggle cursor screen capture | -| ScrLk+F | Full Screen toggle | -| ScrLk+I | Spice keyboard & mouse enable toggle | -| ScrLk+N | Toggle night vision mode (EGL renderer only!) | - # Help and support ## Web diff --git a/VERSION b/VERSION index 0f8126d6..7b50f8cc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -a12-224-gee5d6c7c3e+1 \ No newline at end of file +a12-225-gdba9764c5e+1 \ No newline at end of file diff --git a/client/README.md b/client/README.md new file mode 100644 index 00000000..e7e89d46 --- /dev/null +++ b/client/README.md @@ -0,0 +1,133 @@ +#Looking Glass Client + +This is the Looking Glass client application that is designed to work in tandem with the Looking Glass Host application + +## Build Dependencies + +* binutils-dev +* cmake +* fonts-freefont-ttf +* libsdl2-dev +* libsdl2-ttf-dev +* libspice-protocol-dev +* libfontconfig1-dev +* libx11-dev +* nettle-dev + +### Debian (and maybe Ubuntu) + + apt-get install binutils-dev cmake fonts-freefont-ttf libsdl2-dev libsdl2-ttf-dev libspice-protocol-dev libfontconfig1-dev libx11-dev nettle-dev + +## Building + + mkdir client/build + cd client/build + cmake ../ + make + +## Key Bindings + +By default Looking Glass uses the `Scroll Lock` key as the escape key for commands as well as the input capture mode toggle, this can be changed using the `-m` switch if you desire a different key. +Below are a list of current key bindings: + +| Command | Description | +|-|-| +| ScrLk | Toggle cursor screen capture | +| ScrLk+F | Full Screen toggle | +| ScrLk+I | Spice keyboard & mouse enable toggle | +| ScrLk+N | Toggle night vision mode (EGL renderer only!) | + +## Setting options via command line arguments + +The syntax is simple: `module:name=value`, for example: + + ./looking-glass-host win:fullScreen=yes egl:nvGain=1 + +## Setting options via configuration files + +By default the application will look for and load the config files in the following locations + + * /etc/looking-glass-client.ini + * ~/.looking-glass-client.ini + +The format of this file is the commonly known INI format, for example: + + [win] + fullScreen=yes + + [egl] + nvGain=1 + +Command line arguments will override any options loaded from the config files. + +## Supported options + +``` +|------------------------------------------------------------------------------------------------------------| +| Long | Short | Value | Description | +|------------------------------------------------------------------------------------------------------------| +| app:configFile | -C | NULL | A file to read additional configuration from | +| app:shmFile | -f | /dev/uio0 | The path to the shared memory file | +| app:shmSize | -L | 128 | Specify the size in MB of the shared memory file (0 = detect) | +| app:renderer | -g | auto | Specify the renderer to use | +| app:license | -l | no | Show the license for this application and then terminate | +| app:cursorPollInterval | | 1000 | How often to check for a cursor update in microseconds | +| app:framePollInterval | | 1000 | How often to check for a frame update in microseconds | +|------------------------------------------------------------------------------------------------------------| + +|-------------------------------------------------------------------------------------------------------| +| Long | Short | Value | Description | +|-------------------------------------------------------------------------------------------------------| +| win:title | | Looking Glass (client) | The window title | +| win:position | | center | Initial window position at startup | +| win:size | | 1024x768 | Initial window size at startup | +| win:autoResize | -a | no | Auto resize the window to the guest | +| win:allowResize | -n | yes | Aallow the window to be manually resized | +| win:keepAspect | -r | yes | Maintain the correct aspect ratio | +| win:borderless | -d | no | Borderless mode | +| win:fullScreen | -F | no | Launch in fullscreen borderless mode | +| win:fpsLimit | -K | 120 | Frame rate limit (0 = disable - not recommended) | +| win:showFPS | -k | no | Enable the FPS & UPS display | +| win:ignoreQuit | -Q | no | Ignore requests to quit (ie: Alt+F4) | +| win:noScreensaver | -S | no | Prevent the screensaver from starting | +| win:alerts | -q | yes | Show on screen alert messages | +|-------------------------------------------------------------------------------------------------------| + +|---------------------------------------------------------------------------------------------------------------------------------------| +| Long | Short | Value | Description | +|---------------------------------------------------------------------------------------------------------------------------------------| +| input:grabKeyboard | -G | yes | Grab the keyboard in capture mode | +| input:escapeKey | -m | 71 = ScrollLock | Specify the escape key, see https://wiki.libsdl.org/SDLScancodeLookup for valid values | +| input:hideCursor | -M | yes | Hide the local mouse cursor | +|---------------------------------------------------------------------------------------------------------------------------------------| + +|----------------------------------------------------------------------------------------------------------------------| +| Long | Short | Value | Description | +|----------------------------------------------------------------------------------------------------------------------| +| spice:enable | -s | yes | Enable the built in SPICE client for input and/or clipboard support | +| spice:host | -c | 192.168.10.50 | The SPICE server host or UNIX socket | +| spice:port | -p | 5900 | The SPICE server port (0 = unix socket) | +| spice:input | | yes | Use SPICE to send keyboard and mouse input events to the guest | +| spice:clipboard | | yes | Use SPICE to syncronize the clipboard contents with the guest | +| spice:clipboardToVM | | yes | Allow the clipboard to be syncronized TO the VM | +| spice:clipboardToLocal | | yes | Allow the clipboard to be syncronized FROM the VM | +| spice:scaleCursor | -j | yes | Scale cursor input position to screen size when up/down scaled | +|----------------------------------------------------------------------------------------------------------------------| + +|--------------------------------------------------------------------------| +| Long | Short | Value | Description | +|--------------------------------------------------------------------------| +| egl:vsync | | no | Enable vsync | +| egl:nvGainMax | | 1 | The maximum night vision gain | +| egl:nvGain | | 0 | The initial night vision gain at startup | +|--------------------------------------------------------------------------| + +|------------------------------------------------------------------------------------| +| Long | Short | Value | Description | +|------------------------------------------------------------------------------------| +| opengl:mipmap | | yes | Enable mipmapping | +| opengl:vsync | | no | Enable vsync | +| opengl:preventBuffer | | yes | Prevent the driver from buffering frames | +| opengl:amdPinnedMem | | yes | Use GL_AMD_pinned_memory if it is available | +|------------------------------------------------------------------------------------| +```