[other] deepin或uos如何实现类windows的蓝牙离线锁屏
Tofloor
poster avatar
a***[email protected]
deepin
2024-02-18 09:29
Author

用的是uos系统deepin应该也差不多,办公地点多方人员,有时离开上洗手间啥的就得顺手win+L键锁屏.

以前在win下面有个windows离开锁屏,也就是连接手机离线的时候自动锁.很方便.

临时离开带着手机走,系统查不到蓝牙设备就自己锁了.

linux下搜办法倒是ai给出过,但看着有些不大靠谱.想问下万能的论坛deepin或uos能通过什么办法实现?

图片.png

Reply Favorite View the author
All Replies
Free_Aaron.Li
deepin
2024-02-18 09:40
#1

有一个开源程序可以实现(没找到),不过搜索到另一个程序:BlueProximity: 通过探测蓝牙设备的距离来锁住屏幕

Reply View the author
a***[email protected]
deepin
2024-02-18 09:56
#2
Free_Aaron.Li

有一个开源程序可以实现(没找到),不过搜索到另一个程序:BlueProximity: 通过探测蓝牙设备的距离来锁住屏幕

哦?3Q,

我查查看

Reply View the author
Merlin
Super Moderator
Product Manager
2024-02-18 10:10
#3
目前还没有此功能。
Reply View the author
a***[email protected]
deepin
2024-02-18 10:31
#4
Free_Aaron.Li

有一个开源程序可以实现(没找到),不过搜索到另一个程序:BlueProximity: 通过探测蓝牙设备的距离来锁住屏幕

商城里就有BlueProximity这个程序,装上设置了下倒是添加了.

但按默认配置离开也没见能锁上,不知道是不是调用系统的锁屏有问题.

Reply View the author
HualetWang
deepin
2024-02-18 12:11
#5
Merlin
目前还没有此功能。

看起来有实际需求,可以考虑增加。

Reply View the author
Tent
deepin
2024-02-18 15:56
#6

我是参考这个帖子,自己改了下shell脚本:

用desktop文件调用shell脚本死循环检测蓝牙设备连接情况,把desktop文件放到开机自启目录~/.config/autostart/来开机自启。

参考:

https://bbs.deepin.org/post/267285

1、shell脚本:BlueLockScreen.sh
#!/bin/bash
#手机蓝牙的地址,完成配对后,通过bluetoothctl paired-devices可以查到
device_address="XX:XX:XX:XX:XX:XX"
#电脑蓝牙的地址,通过hciconfig可以查到
bluetooth_address="XX:XX:XX:XX:XX:XX"

sleep 10
bluetoothctl connect "$device_address"

while true; do
    if [[ $(systemctl is-active bluetooth) != "active" ]]; then
        sleep 100
        continue
    fi
  
    hciconfig | grep -A1 "$bluetooth_address" | tail -1 | awk '{print $1}' | grep -q UP
    if [[ $? -ne 0 ]]; then
        sleep 100
        continue
    fi

    status=`bluetoothctl info "$device_address" | grep "Connected:" | awk '{print $2}'`
    if [[ $? -ne 0 ]]; then
        sleep 100
        continue
    fi

    if [[ "$status" == "yes" ]]; then
        sleep 5
        continue
    elif [[ "$status" == "no" ]]; then
        loginctl lock-session
        sleep 100
        bluetoothctl connect "$device_address"
        continue
    else
        sleep 100
    fi
done
2、desktop文件:BlueLockScreen.desktop
[Desktop Entry]
Type=Application
Name=BlueLockScreen
Exec=/xx/xx/BlueLockScreen.sh
Reply View the author
Tent
deepin
2024-02-18 16:14
#7
Tent

我是参考这个帖子,自己改了下shell脚本:

用desktop文件调用shell脚本死循环检测蓝牙设备连接情况,把desktop文件放到开机自启目录~/.config/autostart/来开机自启。

参考:

https://bbs.deepin.org/post/267285

1、shell脚本:BlueLockScreen.sh
#!/bin/bash
#手机蓝牙的地址,完成配对后,通过bluetoothctl paired-devices可以查到
device_address="XX:XX:XX:XX:XX:XX"
#电脑蓝牙的地址,通过hciconfig可以查到
bluetooth_address="XX:XX:XX:XX:XX:XX"

sleep 10
bluetoothctl connect "$device_address"

while true; do
    if [[ $(systemctl is-active bluetooth) != "active" ]]; then
        sleep 100
        continue
    fi
  
    hciconfig | grep -A1 "$bluetooth_address" | tail -1 | awk '{print $1}' | grep -q UP
    if [[ $? -ne 0 ]]; then
        sleep 100
        continue
    fi

    status=`bluetoothctl info "$device_address" | grep "Connected:" | awk '{print $2}'`
    if [[ $? -ne 0 ]]; then
        sleep 100
        continue
    fi

    if [[ "$status" == "yes" ]]; then
        sleep 5
        continue
    elif [[ "$status" == "no" ]]; then
        loginctl lock-session
        sleep 100
        bluetoothctl connect "$device_address"
        continue
    else
        sleep 100
    fi
done
2、desktop文件:BlueLockScreen.desktop
[Desktop Entry]
Type=Application
Name=BlueLockScreen
Exec=/xx/xx/BlueLockScreen.sh

我现在用着就有这1个问题:

手机来电话的时候,默认是走的电脑蓝牙,要手工切一下听筒,或者等几秒让手机自动切到听筒。

Reply View the author
a***[email protected]
deepin
2024-02-18 17:51
#8
Tent

我现在用着就有这1个问题:

手机来电话的时候,默认是走的电脑蓝牙,要手工切一下听筒,或者等几秒让手机自动切到听筒。

因为怀疑是调用屏保锁屏的问题,反倒想去折腾时钟屏保了。

但跟坛子里发帖的哥们一样,按部署流程弄完只能启动时钟屏保大概3秒钟。

就切回锁屏密码界面了,关掉锁屏时间也没用。

deepin 20.2.3 数字时钟屏保 - GETTOLIVE - 博客园

现在自个反倒想先折腾这玩意了😄

Reply View the author
zccrs
deepin
2024-02-19 16:33
#9
Tent

我是参考这个帖子,自己改了下shell脚本:

用desktop文件调用shell脚本死循环检测蓝牙设备连接情况,把desktop文件放到开机自启目录~/.config/autostart/来开机自启。

参考:

https://bbs.deepin.org/post/267285

1、shell脚本:BlueLockScreen.sh
#!/bin/bash
#手机蓝牙的地址,完成配对后,通过bluetoothctl paired-devices可以查到
device_address="XX:XX:XX:XX:XX:XX"
#电脑蓝牙的地址,通过hciconfig可以查到
bluetooth_address="XX:XX:XX:XX:XX:XX"

sleep 10
bluetoothctl connect "$device_address"

while true; do
    if [[ $(systemctl is-active bluetooth) != "active" ]]; then
        sleep 100
        continue
    fi
  
    hciconfig | grep -A1 "$bluetooth_address" | tail -1 | awk '{print $1}' | grep -q UP
    if [[ $? -ne 0 ]]; then
        sleep 100
        continue
    fi

    status=`bluetoothctl info "$device_address" | grep "Connected:" | awk '{print $2}'`
    if [[ $? -ne 0 ]]; then
        sleep 100
        continue
    fi

    if [[ "$status" == "yes" ]]; then
        sleep 5
        continue
    elif [[ "$status" == "no" ]]; then
        loginctl lock-session
        sleep 100
        bluetoothctl connect "$device_address"
        continue
    else
        sleep 100
    fi
done
2、desktop文件:BlueLockScreen.desktop
[Desktop Entry]
Type=Application
Name=BlueLockScreen
Exec=/xx/xx/BlueLockScreen.sh

可以把 loginctl lock-session 改成 dde-lock -l 试试

Reply View the author
a***[email protected]
deepin
2024-02-19 17:59
#10
Tent

我现在用着就有这1个问题:

手机来电话的时候,默认是走的电脑蓝牙,要手工切一下听筒,或者等几秒让手机自动切到听筒。

用了你的脚本,挺好用。离开掉线很快就锁上了。

解锁手动,已经达到目的。

我没出现电话默认电脑播放问题,应该跟我设备连接设置有关。

大佬有空帮看下我帖子里发的那个时钟屏保三秒自动锁屏毛病呗。

再搞定这个就完美了😬

Reply View the author
a***[email protected]
deepin
2024-02-20 15:12
#11
Tent

我现在用着就有这1个问题:

手机来电话的时候,默认是走的电脑蓝牙,要手工切一下听筒,或者等几秒让手机自动切到听筒。

估计跟手机蓝牙输出有关,我接打电话手机不受影响.

但手机玩游戏等多媒体声音就走到笔记本上了😏

用的苹果X没有把电话和多媒体分开的设置好像是.

另一台华为Mate40pro的倒是有,但一般不连.

估计连了应该是你这个效果...

Reply View the author