锁定脚本跳过一些命令

锁定脚本跳过一些命令

我使用 i3wm 和 XFCE 作为我的桌面环境。我已禁用默认的 XFCE 锁屏(我相信是 light-locker),转而使用我自己的锁定脚本,该脚本使用i3lock 颜色,我使用 xss-lock 在盖子关闭时触发锁定脚本。脚本本身(完整脚本在这里) 基本上是截取屏幕截图,使用 ImageMagick 对图像进行像素化,并在图像的左下角添加一个深色矩形(该矩形为 i3lock-color 覆盖的文本提供了额外的对比度)。然后它使用 i3lock-color 锁定屏幕并显示时钟、一些文本等。

当我从终端运行脚本时,结果符合预期。屏幕被锁定,显示正确的图像(包括深色矩形)。正确的锁屏

但是,在激活 xss-lockxss-lock -l /path/to/script/lock.sh并关闭盖子后,脚本会运行但不会绘制矩形,导致锁屏文本有时无法读取。锁屏不正确

我尝试修改脚本,使其不会删除所截取和编辑的屏幕截图,但屏幕截图包含深色矩形。我认为 ImageMagick 有点奇怪,因为像素化和矩形绘制是在同一命令中指定的,像素化发生了,但矩形绘制没有发生。

我很困惑这是怎么发生的。既journalctl没有/var/log显示任何与此相关的内容。如果您能提供任何关于从哪里开始调试的帮助,我将不胜感激。

答案1

矩形比例是使用第 31 行相对于当前连接的屏幕分辨率计算的xrandr,但xrandr需要DISPLAY设置变量,而这里可能不是这种情况。您有两个选择:

  • 明确设置变量,例如对于第一个显示:

    SR=$(DISPLAY=:0 xrandr --query | …
    
  • 在第 29 行中对值进行硬编码$rectangles,这会使第 30 至 37 行过时(注释掉或删除它们),例如对于一个 1680x1050 的屏幕:

    rectangles="rectangle 80,970 380,870"
    

进一步阅读:

相关内容