====== Unlock by wifi SSID ======
To disable the screen lock when connected to a specific wifi ssid (e.g. at home), the following script can be used for Gnome and Cinnamon systems.
sudo vi /etc/NetworkManager/dispatcher.d/99-disable-screen-lock
Replace SSID and USERNAME with the relevant entries. Uncomment the three lines and connect/disconnect to log the exact SSID name in a test file if necessary. On Linux Mint 22, the SSID in the CONNECTION_ID variable appears to be prefixed with "Auto ".
#!/bin/bash -e
trusted_essid="Auto SSID"
user="USERNAME"
#date >> /home/$user/test
#echo "$CONNECTION_ID $2" >> /home/$user/test
#echo "" >> /home/$user/test
if [ "$2" = "up" ]; then
if [ "$CONNECTION_ID" = "$trusted_essid" ]; then
if [ `sudo -u $user gsettings get org.gnome.desktop.screensaver lock-enabled` = "true" ]; then
touch /home/$user/.screen_lock_temporarily_disabled
sudo -u $user dbus-launch gsettings set org.gnome.desktop.screensaver lock-enabled 'false'
sudo -u $user dbus-launch gsettings set org.cinnamon.settings-daemon.plugins.power lock-on-suspend 'false'
sudo -u $user dbus-launch gsettings set org.cinnamon.desktop.screensaver lock-enabled 'false'
sudo -u $user dbus-launch gsettings set org.cinnamon.desktop.lockdown disable-lock-screen 'true'
#killall cinnamon-screensaver
#sleep 5s
#sudo -u cinnamon-screensaver --disable-locking &
fi
fi
fi
if [ "$2" = "down" ]; then
if [ -f /home/$user/.screen_lock_temporarily_disabled ]; then
sudo -u $user dbus-launch gsettings set org.gnome.desktop.screensaver lock-enabled 'true'
sudo -u $user dbus-launch gsettings set org.cinnamon.settings-daemon.plugins.power lock-on-suspend 'true'
sudo -u $user dbus-launch gsettings set org.cinnamon.desktop.screensaver lock-enabled 'true'
sudo -u $user dbus-launch gsettings set org.cinnamon.desktop.lockdown disable-lock-screen 'false'
rm /home/$user/.screen_lock_temporarily_disabled
#killall cinnamon-screensaver
#sleep 5
#sudo -u cinnamon-screensaver &
fi
fi
exit 0
sudo chmod +x /etc/NetworkManager/dispatcher.d/99-disable-screen-lock