Encontrou um excelente script aqui cortesia de Evan Boldt sobre como fazer isso. Obrigado Evan!
Primeiro, descobrir o id do seu dispositivo usando lsusb
A criação de um script em seu diretório home (vamos usar /home/me/iPhoneLock.sh para este exemplo) que se parece com isso:
#!/bin/bash
#Replace with the ID of your USB device
id="ID ffff:1234 Apple, Inc. iPhone 3G"
serial="12345"
#runs every 2 seconds
for ((i=0; i<=30; i++))
do
if [ -z "'lsusb -v 2> /dev/null | grep "$serial"'" ]
then
echo "Device is NOT plugged in"
if [ -n "'DISPLAY=:0 gnome-screensaver-command --query | grep "is active"'" ]
then
if [ -e /tmp/autoUnlock.lock ]
then
#stop locking the screen
rm /tmp/autoUnlock.lock
fi
elif [ -e /tmp/autoUnlock.lock ]
then
DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Disconnected" "Locking screen"
#lock the desktop
DISPLAY=:0 gnome-screensaver-command --lock
rm /tmp/autoUnlock.lock
fi
else
echo "iPhone IS plugged in"
if [ ! -e /tmp/autoUnlock.lock ]
then
DISPLAY=:0 gnome-screensaver-command --deactivate
DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Connected" "Welcome Back!"
touch /tmp/autoUnlock.lock
fi
fi
sleep 2
done
Em seguida, edite seu crontab:
crontab -e
Por fim, configure-o para que seja executado a cada minuto:
* * * * * bash /home/username/bin/autoUnlock & >/dev/null 2>&1
Nota de aviso: Claro que isto significa que qualquer pessoa com o seu telemóvel poderá desbloquear o seu ecrã. Uma boa melhoria seria apenas desbloquear a tela se o seu telefone estivesse desbloqueado.
Isso, claro, é aplicável a qualquer dispositivo usb.
O script está licenciado sob a CC-GNU GPL versão 2.0 ou posterior.