Wie sperre / entsperre ich meinen Bildschirm mit meinem iPhone und USB-Dock?

7

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?

römisch
quelle
Toller Trick!. Aber Sie können Kommentare verwenden, um Ihre Kommentare zu setzen;)
Javier Rivera
In der Tat würde es wahrscheinlich lesbarer machen. Als Kommentar: Ich hatte es satt, mein Passwort eingeben zu müssen, um meinen Bildschirm zu entsperren, nachdem ich zu meinem Schreibtisch zurückgekehrt war und daran gedacht hatte, ihn zu sperren, bevor ich ging. Ich habe eine Lösung gefunden und dachte, ich würde sie hier in einem Frage- / Antwortformular veröffentlichen, falls dies für andere nützlich ist.
Roman

Antworten:

6

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 .

römisch
quelle
0

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

quelle