我的工作电脑在开放空间。是否可以配置 ubuntu,以便当我在不活动后登录时,所有窗口都处于最小化状态,并且 PC 显示桌面?Ubuntu 20.04 / 22.04
答案1
我已经在 Ubuntu 20.04 中尝试过此操作。它似乎有效。
所需软件
您将需要实用程序wmctrl
和gnome-screensaver
。如果未安装,请使用Ctrl+ Alt+打开终端T,使用以下命令进行安装。
sudo apt install wmctrl gnome-screensaver
编辑.profile
.profile
在主文件夹中 找到该文件。这是一个隐藏文件。打开文件应用程序(又名 Nautilus),然后按Ctrl+H以查看所有隐藏文件。
在文件末尾添加以下行/home/$USER/.profile
:
set | grep DBUS_SESSION_BUS_ADDRESS > ~/.DBUS_SESSION_BUS_ADDRESS
保存文件。
注销并重新登录
当您登录计算机时,将.profile
执行。注销(不因不活动而锁定计算机)并登录将确保您在 中所做的更改被.profile
使用。
创建脚本/home/$USER/bin/unlock_min
您可以将脚本命名为其他名称或将其放在其他文件夹中,但您需要相应地调整下一步。以下是脚本:
#!/bin/bash
# Purpose: Minimize all open windows if the screen is locked
source /home/$USER/.DBUS_SESSION_BUS_ADDRESS
export DBUS_SESSION_BUS_ADDRESS
echo $DBUS_SESSION_BUS_ADDRESS
if (/usr/bin/gnome-screensaver-command -q | /bin/grep "is active");
then
/usr/bin/wmctrl -k on
fi
将此脚本保存为/home/$USER/bin/unlock_min
,您可以$USER
在其中用您的用户名替换。
创建新的 cron 作业
您将每分钟运行一次此脚本来检查屏幕是否已锁定。为此,请使用实用crontab
程序编辑您的 cron 作业。使用以下命令:
crontab -e
首次使用此命令时,它可能会要求您选择文本编辑实用程序。我们将使用默认的nano
。您可能希望熟悉它。
在上述命令打开的 crontab 文件末尾添加以下行:
* * * * * env DISPLAY=:0 /bin/bash /home/$USER/bin/unlock_min > /home/$USER/log.txt 2>&1
注意,您可能需要更改$USER
为您的用户名。此行将每分钟运行一次命令并将输出写入文件/home/$USER/log.txt
。如果一切顺利,log.txt
将有一行如下:
unix:path=/run/user/1000/bus
如果没有log.txt
或者包含其他内容,那么一定出了问题。
尝试一下
在计算机上打开一些敏感窗口。选择锁从系统菜单(桌面右上角)。
去喝杯茶/咖啡。
使用密码解锁您的计算机。所有打开的窗口都应最小化。
参考:
希望这可以帮助