AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1374309
Accepted
Ryan C. Thompson
Ryan C. Thompson
Asked: 2021-11-09 07:35:25 +0800 CST2021-11-09 07:35:25 +0800 CST 2021-11-09 07:35:25 +0800 CST

如何延迟(但不禁用)暂停/关闭盖子时的屏幕锁定?

  • 772

我希望我的屏幕在我合上盖子(或以其他方式触发暂停)时自动锁定,但前提是我将其关闭一段时间,例如 5 分钟。也就是说,如果我合上盖子然后在 1 分钟后打开它,我希望屏幕不被锁定,但如果我在 10 分钟后打开盖子,它应该被锁定。有没有办法在 Ubuntu (GNOME) 中进行设置?

我看到了几个类似的问题,但没有一个能描述我正在寻找的内容。我仍然希望笔记本电脑在盖子关闭时立即挂起,我只是不希望它锁定,除非盖子保持关闭一段时间。(理想情况下,它会遵循打开盖子时使用的相同“自动屏幕锁定延迟”设置。)

我可以想象实现这一点的一种方法是在挂起和唤醒时运行脚本。挂起脚本只会记录挂起的时间戳,唤醒脚本会检查时间戳的年龄,并据此决定是锁定还是解锁屏幕。但是,我假设我必须将这些脚本设置为以我的用户(即不是 root)身份运行,并且他们需要能够访问我现有的登录会话(可能是通过一些环境变量?),所以我不是如果这是可以实现的。

suspend
  • 1 1 个回答
  • 120 Views

1 个回答

  • Voted
  1. Best Answer
    Ryan C. Thompson
    2021-11-11T18:33:22+08:002021-11-11T18:33:22+08:00

    我想出了如何做到这一点。我编写了一个 Python 脚本来侦听指示暂停和锁定屏幕的 DBus 信号。当两个信号在彼此的短时间内发生时,脚本假定这是一个触发屏幕锁定事件的挂起事件。然后它等待指示恢复的信号。如果自挂起事件后经过的时间少于 5 分钟,它会强制屏幕保护程序解锁而无需密码。此外,它仅在发送挂起信号时关闭盖子才解锁屏幕(因此推测是由关闭盖子触发的挂起),因此从菜单手动挂起不会触发脚本。这样可以确保屏幕在被用户手动锁定后不会解锁。

    你可以在这里找到脚本:https ://gist.github.com/DarwinAwardWinner/77e8acea2f14ed9ea66d7222d7ace500

    我将脚本保存在 中~/.local/bin/,使其可执行,并将脚本设置为在我使用 Startup Applications 配置程序登录时在后台运行,如下所示:

    shortsleep-unlock.py 的启动应用程序入口

    如果脚本因任何原因崩溃,我还使用run-one-constantly包自动重新启动脚本。run-one运行此脚本后,我得到了我想要的行为:如果我合上盖子,一分钟后打开它,屏幕将解锁,而无需我输入密码。但是,如果我将盖子关闭超过 5 分钟,或者如果我在不关闭盖子的情况下暂停笔记本电脑,那么打开盖子时需要输入密码。您可以通过编辑脚本来配置时间限制和盖子要求(查看第 100 行)。

    在其当前形式中,该脚本仅适用于 GNOME 屏幕保护程序。但是,只要它们提供适当的 DBus 信号和方法,使其适应 KDE 或其他屏幕锁定程序应该不会非常困难。

    重要的安全注意事项:我已尽我所能处理我能想到的所有边缘情况,但即使在时间限制到期后,我也总是有可能无法预料到某种触发解锁的方式。因此,如果您担心安全性,请不要使用此脚本,除非您自己花时间审核它。

    • 1

相关问题

  • 根据 ssh 请求从休眠中唤醒

  • 如何从命令行挂起/休眠?

  • 混合动力在哪里暂停?

  • 如何让我的电脑中的风扇在暂停时关闭?[关闭]

  • 为什么我的 Kubuntu 会话在恢复后需要相当长的时间才能响应?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve