backend/session: Add rapid hotplug detection

When applied, this patch adds the option to wait after a DRM device change uevent
for another identical one in order to avoid monitor rearrangement due to a monitor
disconnecting and reconnecting from the implementation of DisplayPort's deep sleep
"feature". This is locked behind a new environment variable due to the 1 second delay
that occurs to wait for a second event, but can be enable by setting
WLR_RAPID_HOTPLUG_PREVENT to 1.
This commit is contained in:
Chris P 2024-04-03 05:28:04 -04:00
parent f0ce906b73
commit 2aa8cf10d6
2 changed files with 78 additions and 27 deletions

View file

@ -12,6 +12,9 @@ int libseat_session_open_device(struct wlr_session *base, const char *path);
void libseat_session_close_device(struct wlr_session *base, int fd);
bool libseat_change_vt(struct wlr_session *base, unsigned vt);
bool check_double_uevent(const char *stored_sysname, const char *stored_devnode,
const char *stored_action, void *data);
void session_init(struct wlr_session *session);
struct wlr_device *session_open_if_kms(struct wlr_session *restrict session,