Você pode usar o dbus para se apossar dos eventos quando o protetor de tela é ativado ou desativado, veja here .
Você pode usar transmission-remote
para controlar a transmissão a partir da linha de comando, conforme mostrado aqui .
Portanto, você terminará com um script perl nos seguintes termos:
my $cmd = "dbus-monitor --session \"type='signal',interface='org.gnome.ScreenSaver',member='ActiveChanged'\"";
$starttrans="transmission-remote --torrent all --start";
$stoptrans="transmission-remote --torrent all --stop";
open (IN, "$cmd |");
while (<IN>) {
if (m/^\s+boolean true/) {
starttrans;
} elsif (m/^\s+boolean false/) {
stoptrans;
}
}
(Estou escrevendo isso no Windows sem perl / transmissão, então é quase certo que não funcionará corretamente.)