![鼠标移到右下角如何锁屏?](https://linux22.com/image/861204/%E9%BC%A0%E6%A0%87%E7%A7%BB%E5%88%B0%E5%8F%B3%E4%B8%8B%E8%A7%92%E5%A6%82%E4%BD%95%E9%94%81%E5%B1%8F%EF%BC%9F.png)
我想在将鼠标移到右下角时锁定屏幕。
是否有用于该任务的 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 变量X
、Y
和 中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 设置中也找不到(使用相同的设置),但如果您将下面的脚本添加到启动应用程序中,它将检查您的屏幕分辨率和鼠标位置。如果鼠标在角落边缘内(在脚本的头部设置),它将锁定屏幕。
如何使用
安装 xdotool:
sudo apt-get install xdotool
将下面的脚本粘贴到一个空文件中,设置您希望热点在其中起作用的边缘(像素),将其保存为 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)