如何通过命令行配置屏幕保护程序?

UB8*_*HZG 5 command-line screensaver mate 20.04

我想在 Ubuntu MATE 上通过命令行 (CLI) 配置屏幕保护程序。

我已经熟悉在 Ubuntu MATE 20.04 上配置 ScreenSaver 的 GUI,如下所示:

Control Center > Look and Feel >

  Screensaver

    Regard the computer as idle after:  2 hours

    [ ]  Activate screensaver when computer is idle
            /* I want to uncheck this */

    [ ]  Lock screen when screensaver is active
            /* I want to uncheck this */
Run Code Online (Sandbox Code Playgroud)

通过命令行,我想将屏幕保护程序配置为上面显示的值。

一般配置首选项时,应注意以下两点。

  1. 新值是暂时有效(旧值将在重新启动后恢复)还是永久有效(新值将在重新启动后保留)。

  2. 对于永久配置,需要将新值保存到磁盘。值得了解的是这些值是如何存储在磁盘上的。对于除了屏幕保护程序之外的一般示例,用户信息存储在配置文件“/etc/passwd”中,并且其数字用户ID存储在“/etc/passwd”中的记录行的第三字段中。

对于ScreenSaver的配置,如果有临时方法和永久方法分别可用,那么我想知道这两种方法。对于永久方法,我想知道新值的存储方式和位置(也许是“/etc”目录中某个配置文件中的键值对?)。

N0r*_*ert 4

基本

通常使用两个工具保存此选项 -gsettingsdconf

  • 要获取实际的gsettings键名称,您需要gsettings list-recursively > gs1第一次运行,然后更改设置,然后再次运行gsettings list-recursively > gs2;然后使用比较 gs 文件meld gs1 gs2以获得差异。
  • 要实时监控配置更改,您可以运行dconf watch /然后更改一些 GUI 选项。可以通过运行dconf dump / > dconf1dconf dump / > dconf2然后使用 来比较两个镜头meld dconf1 dconf2

每个用户的变体

使用gsettings

要永久设置当前用户所需的值,gsettings您必须使用以下命令:

gsettings set org.mate.session idle-delay 120
gsettings set org.mate.screensaver idle-activation-enabled false
gsettings set org.mate.screensaver lock-enabled false
Run Code Online (Sandbox Code Playgroud)

并且可以通过以下方式恢复到默认值

gsettings set org.mate.session idle-delay 30
gsettings set org.mate.screensaver idle-activation-enabled true
gsettings set org.mate.screensaver lock-enabled true
Run Code Online (Sandbox Code Playgroud)

使用dconf

要设置它们,dconf您可以使用

cat <<EOF | dconf load /
[org/mate/desktop/session]
idle-delay=120

[org/mate/screensaver]
idle-activation-enabled=false
lock-enabled=false
EOF
Run Code Online (Sandbox Code Playgroud)

并且可以通过以下方式恢复到默认值

cat <<EOF | dconf load /
[org/mate/desktop/session]
idle-delay=30

[org/mate/screensaver]
idle-activation-enabled=true
lock-enabled=true
EOF
Run Code Online (Sandbox Code Playgroud)

基于系统范围dconf的方法

要将此选项设置为系统范围内的默认值,您必须运行以下命令:

sudo mkdir -p /etc/dconf/profile

cat <<EOF | sudo tee /etc/dconf/profile/user
user-db:user
system-db:local
EOF

sudo mkdir -p /etc/dconf/db/local.d

cat <<EOF | sudo tee /etc/dconf/db/local.d/00-my
[org/mate/desktop/session]
idle-delay=120

[org/mate/screensaver]
idle-activation-enabled=false
lock-enabled=false
EOF

sudo dconf update
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式恢复到默认值

sudo rm /etc/dconf/profile/user /etc/dconf/db/local.d/00-my
sudo dconf update
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅以下 RedHat 文档: