锁定“挂起”,但不锁定“挂起以交换”(休眠)

锁定“挂起”,但不锁定“挂起以交换”(休眠)

我启用了“挂起锁定”(睡眠)。这很好用,但是当我将笔记本电脑休眠时也会触发。当我从休眠状态恢复时,我必须输入两个密码:在 cryptsetup 屏幕上输入以解锁驱动器,在登录屏幕上输入。

有没有办法不锁定休眠(systemctl hibernate),但仍锁定睡眠?


我使用的是 Ubuntu 20.04(但我很灵活,如果能解决这个问题,我可以切换到任何版本)。

答案1

你可以编写一个在休眠时使用的脚本,这样它首先设置

gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend false

然后休眠。然后使用在恢复后运行的另一个脚本(您不需要在这里选择执行仅有的从休眠状态恢复时也可以运行,因为它也可以从挂起状态恢复时运行,在这种情况下它将不起作用),这将设置

gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend true

我不确定检查/放置这些脚本的具体位置。这个想法类似于脚本/lib/systemd/system-sleep/toggle-lock,可能非常接近你需要的

#!/bin/sh
set -e

if [ "$2" = "hibernate" ]; then
    case "$1" in
        pre)
            XINPUTUSER=$(who | grep :0 | sed 's/\([a-z]*\).*/\1/')
            DISPLAY=:0.0 su - $XINPUTUSER -c "gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend false"
            ;;
        post)
            XINPUTUSER=$(who | grep :0 | sed 's/\([a-z]*\).*/\1/')
            DISPLAY=:0.0 su - $XINPUTUSER -c "gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend true"
            ;;
    esac
fi

笔记

  1. 询问的是类似的问题,但目标操作顺序更加具体。选项在那里可能对你有用。
  2. 上面的链接使用pm,而 Ubuntu 20.04 使用systemd。我不确定它们是否“不兼容”。
  3. 总的来说,我可以寻找细节,得出一个初步的分步说明列表。我经常这样做,但我个人也认为,答案应该有助于解决问题,并且感兴趣的 OP采取该方法并通过进一步的修补来填补空白。

有关的

  1. 从暂停状态恢复时执行脚本的正确方法
  2. https://unix.stackexchange.com/questions/423524/script-that-is-executed-after-resuming-from-hibernation
  3. https://www.addictivetips.com/ubuntu-linux-tips/run-scripts-and-commands-on-suspend-and-resume-on-linux/

相关内容