The types of context masks These bits are intended to be combined in a single integer representing combinations of desired privileges that are applied to a Screen context
#include <screen/screen.h>
enum { SCREEN_APPLICATION_CONTEXT = 0, SCREEN_WINDOW_MANAGER_CONTEXT = (1 << 0), SCREEN_INPUT_PROVIDER_CONTEXT = (1 << 1), SCREEN_POWER_MANAGER_CONTEXT = (1 << 2), SCREEN_DISPLAY_MANAGER_CONTEXT = (1 << 3), SCREEN_INPUT_MANAGER_CONTEXT = (1 << 4), SCREEN_BUFFER_PROVIDER_CONTEXT = (1 << 5) };
Applications can't modify windows that were created by other applications and can't send events outside their process space. Application contexts aren't aware of other top-level windows in the system, nor are they allowed to operate on them. Application contexts are allowed to parent other windows, even if they are created in other contexts in other processes, and are allowed to control those windows. Application contexts that have write access to /dev/screen/.inject can inject Screen events.
The context also receives notifications when applications create new windows, existing application windows are destroyed, or when an application tries to change certain window properties. A process must have a user or group ID with write access to /dev/screen/.winmgr, to create a context of this type successfully.
This context type doesn't receive notifications when applications create new windows, when applications destroy existing windows, or when an application attempts to change certain window properties. A process must have a user or group ID with write access to /dev/screen/.provider, to create a context of this type successfully.
A process must have a user or group ID with write access to /dev/screen/.powmgr, to create a context of this type successfully.
A process must have an effective user ID of root to create a context of this type successfully. A process must have a user or group ID with write access to /dev/screen/.dpymgr, to create a context of this type successfully.
A process must have a user or group ID with write access to /dev/screen/.inmgr, to create a context of this type successfully.
The context will not be involved in the creation of buffers other than the ones it chooses to attach. A process must have a user or group ID with write access to /dev/screen/.attach, to create a context of this type successfully.