Mein iPhone ist über USB über ein Dock mit meinem Ubuntu-Desktop verbunden. Wie konfiguriere ich es so, dass beim Andocken meines Telefons der Bildschirm entsperrt wird und beim Entfernen gesperrt wird?
Mein iPhone ist über USB über ein Dock mit meinem Ubuntu-Desktop verbunden. Wie konfiguriere ich es so, dass beim Andocken meines Telefons der Bildschirm entsperrt wird und beim Entfernen gesperrt wird?
Antworten:
Ich habe hier mit freundlicher Genehmigung von Evan Boldt ein ausgezeichnetes Skript gefunden, wie das geht. Danke Evan!
Ermitteln Sie zuerst die ID Ihres Geräts mithilfe von lsusb
Erstellen Sie ein Skript unter Ihrem Home- Verzeichnis (verwenden wir für dieses Beispiel /home/me/iPhoneLock.sh ), das ungefähr so aussieht:
#!/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
Bearbeiten Sie als Nächstes Ihre Crontab:
crontab -e
Konfigurieren Sie es schließlich so, dass es jede Minute ausgeführt wird:
* * * * * bash /home/username/bin/autoUnlock & >/dev/null 2>&1
Hinweis zur Warnung: Dies bedeutet natürlich, dass jeder mit Ihrem Telefon Ihren Bildschirm entsperren kann. Eine nette Verbesserung wäre, Ihren Bildschirm nur zu entsperren, wenn Ihr Telefon entsperrt wurde.
Dies gilt natürlich für jedes USB-Gerät.
Das Skript ist unter der CC-GNU GPL Version 2.0 oder höher lizenziert .
noch einfacheres Skript
Verwenden Sie lsusb, um die Geräte-ID des USB-Geräts abzurufen, das Sie als "Schlüssel" verwenden möchten, und ersetzen Sie es in diesem Skript (checkKey.sh).
#!/bin/sh
key="0a12:0001" #ID of the USB device to use as a "key"
if [ `fuser $0|wc -w` -gt "1" ];then exit; fi # exit if already running
while [ 1 -gt 0 ]; do
device=$(lsusb | grep $key) # is "key" connected?
ss_state=$(gnome-screensaver-command -q | grep inactive) #is screen locked?
if [ -z "$device" ]; then
gnome-screensaver-command -l; #no key, lock the screen
else
if [ -z "$ss_state" ]; then
#key present & screen locked so unlock
gnome-screensaver-command -d;
else
#key present, not locked, just poke it
gnome-screensaver-command -p;
fi
fi
sleep 10; #sleep for a few seconds before looking again
done
Dann cron dies einfach, um alle paar Minuten ausgeführt zu werden. Auf diese Weise wird es erneut gestartet, wenn es aus irgendeinem Grund angehalten wird. Das Skript sollte kontinuierlich ausgeführt werden, wird jedoch beendet, wenn cron versucht, eine zweite Kopie auszuführen. Damit Cron eine GUI-App wie den Bildschirmschoner beeinflusst, müssen Sie angeben, welche Anzeige verwendet werden soll. Fügen Sie diese also in Ihre Crontab ein (stellen Sie den Pfad offensichtlich richtig ein).
* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh