Como posso reiniciar um serviço systemd em alterações gráficas?

Como posso reiniciar um serviço systemd em alterações gráficas?

Eu costumava executar o Synergy por meio de um 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
         ...)

Isso iria parar e iniciar o serviço se, por exemplo. um monitor foi conectado ou desconectado para que o Synergy detectasse a nova configuração.

Estou escrevendo arquivos de serviço Systemd para Synergy, mas não consigo encontrar qual seria um mecanismo equivalente. man systemd.specialnão lista nenhum alvo relacionado a gráficos, systemctl list-units --type=devicemostra apenas o adaptador gráfico (não o monitor) e não está claro para mim como fazer com que o Systemd pare e inicie um serviço em um evento específico.

Como posso fazer essas coisas? Estou escrevendo no Ubuntu 16.04, mas quanto mais independente da distribuição for a resposta, melhor.

informação relacionada