鼠标移到右下角如何锁屏?

鼠标移到右下角如何锁屏?

我想在将鼠标移到右下角时锁定屏幕。

是否有用于该任务的 compiz 配置?

我在 compizconfig-settings-manager 和系统设置中找不到任何东西。

答案1

获取鼠标位置的简单工具xdotool只需先安装并按照步骤操作即可:

sudo apt-get install xdotool

然后我们用它xdotool getmouselocation --shell来查看鼠标的当前位置:结果将是这样的:

X=845
Y=447
SCREEN=0

或者通过运行eval $(xdotool getmouselocation --shell)将把位置放入 shell 变量XY和 中SCREEN。之后,我们可以用以下命令访问这些变量:

echo $X $Y $SCREEN

现在我们需要一个 while 循环来每次检查鼠标的位置:

while true
  do
    [get mouse position]
    [if position =bottom-right corner then lock screen]
  done

好的,我们的脚本应该是这样的:

#! /bin/sh
while true
  do
    eval $(xdotool getmouselocation --shell)
    if [ $X -ge 1919 -a  $Y -ge 1079 ]; then
        gnome-screensaver-command -l
    fi
  done

将名为“lock.sh”的脚本保存在您的主目录中并运行它sh lock.sh,然后将鼠标移动到右下角并查看结果。太棒了!

解释:

我们使用某些运算符来组合条件。对于我们迄今为止使用的单括号语法,“-a”用于“and”。而“-o”用于“or”。示例:

if [ $foo -ge 3 -a $bar -ge 10 ]; then

$foo如果包含整数,则上述条件将返回 trueG大于或等于 3(-ge 3)并且还$bar包含一个整数G大于或达到 10. 然后运行锁屏命令行gnome 屏幕保护程序命令 -l

答案2

我在 Compiz 管理器中找不到任何设置,在 Unity Tweak 设置中也找不到(使用相同的设置),但如果您将下面的脚本添加到启动应用程序中,它将检查您的屏幕分辨率和鼠标位置。如果鼠标在角落边缘内(在脚本的头部设置),它将锁定屏幕。

如何使用

  1. 安装 xdotool:

    sudo apt-get install xdotool
    
  2. 将下面的脚本粘贴到一个空文件中,设置您希望热点在其中起作用的边缘(像素),将其保存为 screenlock.py,为了方便起见使其可执行,并将其添加到您的启动应用程序中(Dash > 启动应用程序 > 添加)。添加命令:

    /path/to/screenlock.py
    

剧本:

#!/usr/bin/env python3

import time
import subprocess

marge = 3 # (pixels) increase to increase sensitivity

output = subprocess.check_output(["xrandr"]).decode('utf-8').strip().split()
idf = output.index("current")
res = (int(output[idf+1]), int(output[idf+3].replace(",", "")))

command = "gnome-screensaver-command -l"

while True:
    get_pos = subprocess.check_output(["xdotool", "getmouselocation", "--shell"]).decode('utf-8').strip().split("\n")
    pos = (int(get_pos[0][2:]), int(get_pos[1][2:]))
    if res[0] - pos[0] < marge and res[1] - pos[1] < marge:
        subprocess.Popen(["/bin/bash", "-c", command])
    time.sleep(1)

相关内容