Minimal systems in cases may not have XDG_SESSION_TYPE set at all, causing the program to segfault at the `strcmp`. This commit sets XDG_SESSION_TYPE to `unspecified` (according to https://www.freedesktop.org/software/systemd/man/pam_systemd.html) if it is not defined in the environment.
* [client]: ignore Alt-F4 in ignoreQuit mode
* [client]: turn down the SNR for SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4
* [client]: turn down the SNR for SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS
This partially resolves lag issues on hosts running the amdgpu driver.
If mouse caputure is enable the lag issue returns, this is because SDL
calls `XSync` in `X11_WarpMouse` and `X11_WarpMouseGlobal`, if these
calls are removed all input lag issues dissapear.
This issue has been reported to SDL as the calls to `XSync` are not
required per the xlib documentation.
the client now will look for a configuration file in the following
locations by default.
* /etc/looking-glass.conf
* ~/.looking-glass.conf
All configuration files are loaded and may override values specified by
any prior configuration files loaded.
Sample Config:
global:
{
fullScreen=false;
showFPS=true;
x=0;
y=0;
w=800;
h=600;
}
OpenGL:
{
mipmap="false";
}
Since we do not use IRQs anymore we can use the ivshmem-plain device
which doesn't need the ivshmem-server. The QEMU arguments now should be
as follows:
-device ivshmem-plain,memdev=ivshmem
-object memory-backend-file,id=ivshmem,share=on,mem-path=/dev/shm/looking-glass,size=32M
Obviously adjusting the memory size as required. It is suggested that
the shared memory file be created before the guest is started with the
appropriate permissions, for example:
touch /dev/shm/looking-glass
chown user:kvm /dev/shm/looking-glass
chmod 660 /dev/shm/looking-glass
This is the first of two commits that completely turn the rendering code
on it's head. This change set decouples the guest's capture rate from
the host's render rate for both cursor and frame updates. This helps
prevent the host application from stalling when waiting for frame draws
when all it want's to do is send cursor updates.
* Breaks OpenGL-Basic for now