Script de exemplo error.sh
:
#! /bin/bash
zenity --error --text='Something very bad has happened!'
Meu incron-config
:
~/Documents IN_MOVED_TO ~/scripts/error.sh
Se eu executar error.sh
na interface gráfica do terminal, aparece, mas não no cenário incron acima.
Como faço para o zenity exibir essa caixa de diálogo quando movo o arquivo na pasta Documentos?
Para executar um comando da GUI no cron, você precisará informar ao cron qual exibição o programa deve usar. Para isso você usa: export DISPLAY =: 0
Para uma notificação do zenity a cada 30 minutos, edite
crontab -e
e defina um trabalho como:Detalhado como: link
fonte
Há outra solução possível, se você deseja que ele funcione independentemente do nome de usuário, encontrando o usuário ativo da tela X, usando o ConsoleKit (o comando
ck-list-sessions
). Supondo que o script abaixo seja executado como root, ele mostrará uma mensagem de zenity para o usuário ativo atual no seu computador:O pequeno script awk é apenas para analisar ck-list-sessions e emitir o nome de usuário e a exibição do usuário que está ativo (também pode exigir que seja uma conexão local se você quiser excluir usuários do ssh -X, se desejar).
(Eu uso isso em um script de backup que é executado ao conectar uma unidade USB.)
fonte