如何使用我的 iPhone 和 USB 基座锁定/解锁我的屏幕?

如何使用我的 iPhone 和 USB 基座锁定/解锁我的屏幕?

我的 iPhone 通过 USB 连接到我的 Ubuntu 桌面,通过底座。如何配置它,以便当我将手机插入底座时屏幕解锁,而当我将其取出时屏幕锁定?

答案1

找到一个优秀的脚本这里感谢 Evan Boldt 提供的有关如何执行此操作的信息。谢谢 Evan!

首先使用以下方法找出你的设备 ID:系统盘

在你的主目录下创建一个脚本(我们使用/home/me/iPhoneLock.sh对于这个例子) 看起来有点像这样:

#!/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

接下来,编辑你的 crontab:

crontab -e

最后对其进行配置,使其每分钟运行一次:

* * * * * bash /home/username/bin/autoUnlock & >/dev/null 2>&1

但请注意:当然,这意味着任何拥有你手机的人都可以解锁你的屏幕。一个不错的改进是,只有当你的手机已解锁时,屏幕才会解锁。

这当然适用于任何 USB 设备。

该脚本已获得许可CC-GNU通用公共许可协议2.0 或更高版本。

答案2

更简单的脚本

使用 lsusb 获取您想要用作“密钥”的 USB 设备的设备 ID,并将其替换在此脚本(称为 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

然后只需每隔几分钟运行一次即可……这样,如果由于某种原因停止,它将重新启动……脚本应该连续运行,但如果 cron 尝试运行第二个副本,它将退出。要让 cron 影响 GUI 应用程序(如屏幕保护程序),您必须告诉它使用哪个显示器,因此将其放入您的 crontab 中(显然要正确设置路径)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh

相关内容