LXQt环境使用轻量级锁屏slock

锁屏程序选择

  • 如果使用 LightDM 作为显示管理器(display manager),则可以直接使用 light-locker ,这是最简单方法

  • LXQt 使用 xdg-utils 提供的 xdg-screensaver ,但是这个 xdg-screensaver 实际上只能依赖使用 XScreenSaverxautolock

    • XScreenSaver 比较沉重,需要安装占用80MB空间,我感觉为了一个简单的锁屏功能不值得

  • 我在 Xfce快速起步 中选择了轻量级的 slock ,通过快捷键触发可以快速锁屏。同样我也想在LXQt中使用这个程序,但是需要做一些调整配置

xdg-utils-slock

Arch Linux AUR 提供了补丁过的 xdg-utils-slock 可以让LXQt感知到这个锁屏程序,也就是能够无缝集成到 LXQt

备注

但是为了这个简单的锁屏功能,还是需要安装大约34MB软件

Lock on suspend

可以创建一个 slock@.service 服务在系统idle时候自动锁屏:

  • /etc/systemd/system/slock@.service :

slock@.service 按用户配置suspend时候锁屏
[Unit]
Description=Lock X session using slock for user %i
Before=sleep.target

[Service]
User=%i
Environment=DISPLAY=:0
ExecStartPre=/usr/bin/xset dpms force suspend
ExecStart=/usr/bin/slock

[Install]
WantedBy=sleep.target

然后按用户(huatai)激活:

systemctl enable slock@huatai.service

备注

目前我还没有解决 Asahi Linux 的suspend,所以暂时没有实践,待后续尝试

Openbox组合键启用slock

其实我只需要一个简单的锁屏功能,通过 Openbox快捷键设置 触发命令,所以修订 ~/.config/openbox/rc.xml 添加一段 keybind :

结合Openbox的keybind激活slock,配置 ~/.config/openbox/rx.xml 添加这段配置
    <!-- Keybindings for running applications -->
    <keybind key="C-W-l">
      <action name="Execute">
        <startupnotify>
          <enabled>true</enabled>
          <name>slock</name>
        </startupnotify>
        <command>slock Lock screen</command>
      </action>
    </keybind>

然后执行一次 openbox --reconfigure 后就可以使用 ctrl+win+l 触发锁屏

参考