Existem muitas possibilidades:
Configure uma webcam na sua caixa do Linux, aponte para a tela da máquina do Windows para que você possa capturar o que está nela, configure o Windows para que ele não bloqueie ou anule a tela. Instale o fswebcam e use o cron para automatizar sua execução a cada 30 minutos. Crie um arquivo chamado, por exemplo cronfile contendo isto:
%pre%Em seguida, ative o cronfile com:
%pre%isso colocará um arquivo com registro de data e hora no seu diretório home a cada 30 minutos.
Os primeiros cinco campos em uma definição de trabalho de crontab decidem quando executar o trabalho; isso simplesmente será executado a cada 30 minutos (* / 30) de cada hora, todos os dias de cada mês (o quinto campo permite que você decida em quais dias da semana um trabalho será executado). O comando que será executado é o resto da linha.
fswebcam usa um nome de arquivo no qual salvar a imagem capturada. Neste caso, construímos o nome do arquivo usando a saída do comando date (os backticks dizem ao shell para executar primeiro o comando dentro e colocar seu valor de saída lá, antes de executar o resto da linha). Também usei aspas duplas porque a saída de data pode conter espaços, portanto, o nome do arquivo precisa ser citado para funcionar.
É tudo o que existe para isso.
Outra opção é usar o VNC como você está usando agora. Você teria que configurar tanto o sistema Windows quanto o Linux para não deixar a tela em branco após algum período de inatividade. Então você poderia usar um programa de captura de tela (sugiro obturador) e automatizá-lo a cada 30 minutos usando a mesma técnica cron descrita acima.