Definir mensagem da linha de comando para a tela Cinnamon Lock

3

Estou tentando criar um pequeno script para definir uma mensagem aleatória quando eu bloquear a tela do meu computador.

Então eu preciso ser capaz de definir uma mensagem a partir da linha de comando e chamá-la quando eu executar a função da tela de bloqueio.

Eu encontro o comando para bloquear a tela: cinnamon-screensaver-command -l mas no man não há detalhes sobre como definir a mensagem da tela de bloqueio.

Se você tiver algumas ideias ...

    
por Etienne Prothon 07.12.2015 / 13:51

2 respostas

2

O protetor de tela Cinnamon oferece o serviço DBus org.cinnamon.ScreenSaver , que, entre outros, tem o seguinte método:

method void org.cinnamon.ScreenSaver.Lock(QString body)

Este método é exatamente aquele que é chamado ao bloquear a tela com uma mensagem personalizada. Se você quiser chamar isso de um script bash, você precisa de um frontend DBus, como gdbus ou qdbus.

Eu pessoalmente prefiro o qdbus, pois ainda não entendi a sintaxe do gdbus. Você pode, no entanto, ter que instalar o qdbus primeiro com

sudo apt-get install qdbus

Isso também pode instalar algumas outras bibliotecas do Qt. Quando instalado, você pode chamar o método usando

qdbus org.cinnamon.ScreenSaver / Lock "$message"

com $message contendo sua mensagem personalizada. Essa chamada de método, no entanto, não funcionará se a tela já estiver bloqueada. Se este for o caso, o método será bloqueado até que a tela seja desbloqueada e, em seguida, retorne sem voltar a bloquear a tela.

    
por s3lph 07.12.2015 / 14:37
2

cinnamon-screensaver-command agora tem uma opção "-m" ou "--away-message" para isso, então você pode usar isso. Eu tenho um pequeno script de shell que lê algo como:

#!/bin/sh

cinnamon-screensaver-command -l -m $(fortune -s)

    
por Dave Cridland 21.08.2017 / 16:22