Não é possível configurar o gsettings para trabalhar na inicialização usando cron, rc.local ou autostart

3

Estou tentando "bloquear" o computador executando um script na inicialização que ativa o bloqueio, a tela de bloqueio após 10 minutos e a senha, etc. Estou usando o Ubuntu 12.04

Eu tentei editar crontab, anacrontab e rc.local para executar meu script ou inserir o código do script nos arquivos e não consigo fazer nada funcionar.

Alguma idéia?

* esta é a única maneira de eu conseguir que os comandos sejam executados em um script manualmente *

(su - $(logname) -c "gsettings set org.gnome.desktop.screensaver lock-enabled true")

(su - $(logname) -c "gsettings set org.gnome.desktop.screensaver lock-delay 600")

(su - $(logname) -c "gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend true")

(su - $(logname) -c "gsettings set org.gnome.desktop.screensaver user-switch-enabled false")

* Estes comandos funcionam se inseridos no terminal manualmente *

gsettings set org.gnome.desktop.screensaver lock-enabled true
gsettings set org.gnome.desktop.screensaver lock-delay 600
gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend true
gsettings set org.gnome.desktop.screensaver user-switch-enabled false

Eu também tentei inserir o seguinte código de outras postagens sobre o uso de gsettings no cron sem sorte:

DISPLAY=:0 
GSETTINGS_BACKEND=dconf
sessionfile='find "${HOME}/.dbus/session-bus/" -type f'
export 'grep "DBUS_SESSION_BUS_ADDRESS" "${sessionfile}" | sed '/^#/d''

Também verifiquei duplamente que meu script era executável e criei /home/username/.config/autostart/screenlock.desktop:

[Desktop Entry]
Type=Application
Exec=/path/screenlock.sh
Terminal=False
Hidden=true
NoDisplay=true
X-GNOME-Autostart-enabled=true
Name[en_US]=screen lock
Name=screen lock

Também adicionar /path/screenlock.sh a bash.rc ou .profile parece não funcionar também.

    
por user127320 30.01.2013 / 17:33

1 resposta

0

Em vez de usar:

DISPLAY=:0 
GSETTINGS_BACKEND=dconf
sessionfile='find "${HOME}/.dbus/session-bus/" -type f'
export 'grep "DBUS_SESSION_BUS_ADDRESS" "${sessionfile}" | sed '/^#/d''

tente usar:

PID=$(pgrep gnome-session)  # instead of 'gnome-session' it can be also used 'noutilus' or 'compiz' or the name of a process of a graphical program about that you are sure that is running after you log in the X session
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)

Veja a explicação na minha resposta aqui .

    
por Radu Rădeanu 29.10.2013 / 19:54