Layout changes to make controlling the checkboxes less confusing.
Added variable support for the winddow title selection.
Previously window title matching was mandatory, which is now optional.
This would make it difficult to set up condition which are independent
of the window title. For example, a condition wich triggers on focus
window change.
Add support for configuring the regex options used for the window title
options.
Also adds the option to check the content displayed in a given window
using the Windows API as an alternative to the OCR of the video
condition.
This will only avoid crashes.
Functionality relying on X11 might not be available in such situations.
(E.g. window title, idle detection, key press simulation)
This enables running the advanced scene switcher in environments in
which this library is not available with only minimal loss of
functionality (idle detection)
* Add missing include
* Rework CMakeLists.txt to support out of tree builds
* Update build instructions
* Fix windows build issue and copy locale on Linux
* Update build instructions
* Add downloads section
This is done to avoid build issues in future.
For example previously the class "Duration" class caused build issues on
the MacOS platform due to a name conflict.
* move definitions of switcher structs to separate files
* remove useless comment
* cleanup and silence warnings
* add generic switch
* removed delay on main thread startup as it served no purpose
* clean up ultility.hpp
* do not save switchStr to file as it could cause issues when scenes are renamed
* rename sceneRoundTrip to sceneSequence
* add option to switch if window is maximized to title tab
Reverts part of commit e61905d02f
Fallback to WM_NAME if _NET_WM_NAME does not exist
Also fixes some BadWindow errors that were due to some apps like Steam only populating WM_NAME, and only for certain windows (tooltips count as windows due to the odd way the GUI works on Linux, so they don't have either property)
Freedesktop recommends using _NET_WM_NAME instead of WM_NAME, and on KDE, for example, the difference between them is including the application name for some windows (e.g. "freedesktop - Google Search - Vivaldi" compared to "freedesktop - Google Search")