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.special
não lista nenhum alvo relacionado a gráficos, systemctl list-units --type=device
mostra 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.