¿Cómo puedo reiniciar un servicio systemd en cambios de gráficos?

¿Cómo puedo reiniciar un servicio systemd en cambios de gráficos?

Solía ​​ejecutar Synergy a través de un script Upstart que incluía:

start on (login-session-start
          ...
          or drm-device-added
          or drm-device-changed
          or drm-device-removed
          or graphics-device-added
          or graphics-device-changed
          or graphics-device-removed
          ...)

stop on (drm-device-added
         or drm-device-changed
         or drm-device-removed
         or graphics-device-added
         or graphics-device-changed
         or graphics-device-removed
         ...)

Esto detendría e iniciaría el servicio si, por ejemplo. se conectó o desconectó un monitor para que Synergy detectara la nueva configuración.

Estoy escribiendo archivos de servicio Systemd para Synergy, pero no encuentro cuál sería un mecanismo equivalente. man systemd.specialno enumera ningún objetivo relacionado con gráficos, systemctl list-units --type=devicesolo muestra el adaptador de gráficos (no el monitor) y no me queda claro cómo hacer que Systemd detenga e inicie un servicio en un evento en particular.

¿Cómo puedo hacer estas cosas? Lo estoy escribiendo en Ubuntu 16.04, pero cuanto más independiente de la distribución sea la respuesta, mejor.

información relacionada