0

I want to setup a cron job to lock my session every day at three PM. When I enter dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock in a terminal window, the session locks immediately, but when I do the same in crontab (even by using a BASH script) it didn't work. I want to create a BASH script to lock the session using dbus-send and add it to crontab.

PenguinCSC
  • 1,444
  • 2
  • 14
  • 26

1 Answers1

0

Using loginctl to lock your desktop screen from crontab.

/opt/bin/lock-session.sh:

#!/bin/bash

crontab -e

min hour dom month dow command

0 15 * * * /bin/bash -c /opt/bin/lock-session.sh

Display (is the first value of Sessions).

Sessions (array of sessions).

property=Sessions

for session in $(loginctl show-user $USER -p $property --value); do [[
$(loginctl show-session $session -p Desktop --value) ]] && loginctl lock-session $session done

exit 0