所需软件

所需软件

我的工作电脑在开放空间。是否可以配置 ubuntu,以便当我在不活动后登录时,所有窗口都处于最小化状态,并且 PC 显示桌面?Ubuntu 20.04 / 22.04

答案1

我已经在 Ubuntu 20.04 中尝试过此操作。它似乎有效。

所需软件

您将需要实用程序wmctrlgnome-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或者包含其他内容,那么一定出了问题。

尝试一下

在计算机上打开一些敏感窗口。选择从系统菜单(桌面右上角)。

去喝杯茶/咖啡。

使用密码解锁您的计算机。所有打开的窗口都应最小化。

参考:

希望这可以帮助

相关内容