有没有什么办法可以在 Skype 运行过程中停止屏幕保护程序?

有没有什么办法可以在 Skype 运行过程中停止屏幕保护程序?

我正在尝试在 Skype 运行时停止屏幕保护程序。我试图在 bash 脚本中执行此操作(我想在 Bash 中执行此操作)。bash 脚本非常简单:我启动 Skype,当 Skype 运行时,我希望脚本关闭屏幕保护程序。当我关闭 Skype 时,我希望屏幕保护程序打开。我想获得我提到的方法(bash 脚本)。

我的脚本如下:

##############
my_script.sh

#!/bin/bash
skype &
screensaver.sh &

PID=$(ps -opid= -C mousepad)
while [[ ( -d /proc/$PID ) && ( -z `grep zombie /proc/$PID/status` ) ]]; do
        sleep 1
done && killall screensaver.sh && xdotool mousemove 100 100

##############
screensaver.sh # It's a script to move the mouse every 300s

#!/bin/bash
while [ 1 ]; do
    xdotool mousemove 000 000 &
    sleep 300
    xdotool mousemove 000 001 &
    sleep 300       
done

在 skype 运行时,脚本会通过 while 子句而不会停止。我对编程的了解有限,因此希望得到简单的解释。感谢您的任何想法。

答案1

此命令禁用 Ubuntu 中的屏幕锁定:

gsettings set org.gnome.desktop.lockdown disable-lock-screen true

您可以跳过第二个脚本并直接执行:

#!/bin/bash
skype &
gsettings set org.gnome.desktop.lockdown disable-lock-screen true
{
    while pgrep -x skype >/dev/null; do
        sleep 1
    done
    gsettings reset org.gnome.desktop.lockdown disable-lock-screen
} &

编辑:

对于 Xubuntu,有四个命令可以禁用屏幕锁定:

gsettings set apps.light-locker light-locker-enabled false
gsettings set apps.light-locker late-locking false
gsettings set apps.light-locker lock-on-lid false
gsettings set apps.light-locker lock-on-suspend false

我不知道是否所有四个都是需要的,但是这些是用于访客会话的。

答案2

最后,感谢 DopeGhoti,我找到了解决方案:https://unix.stackexchange.com/questions/342936/bash-how-to-make-a-process-works-while-skype-is-working

#!/bin/bash
skype &
skype_PID=$!

screensaver.sh &
process_PID=$!

wait $skype_PID
kill $process_PID

感谢 Gunnar 的帮助。

相关内容