设置默认/全局 Gnome 首选项 (Gnome 3)

设置默认/全局 Gnome 首选项 (Gnome 3)

我最近从 Gnome 2 切换到了 Gnome 3(并且之前最近切换到了 Linux),而 Gnome 3 并没有给我提供那么多通过 GUI 更改设置的选项,尤其是不更改默认设置。

具体来说,我正在尝试更改笔记本电脑上的盖子关闭操作,因为我不希望它在盖子关闭时暂停。 (我通过 gnome-tweak-tool 为我自己的用户更改了此设置。)

我曾经尝试过几次失败的尝试。我想这sudo与某些用户有关,无论sudo或者通用数据管理

我已经尝试过(在 Gnome 会话的控制台窗口和远程计算机的 SSH 会话中):

> sudo gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action
'suspend'
> sudo gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "blank"

为此,我收到一条有关无法初始化 X11 的错误。

我也尝试过:

> sudo -u gdm gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action

但是,这要求通用数据管理的密码,我从未设置过。我继续passwd,但它告诉我:Cannot unlock the password for `gdm'!而且,我可以尝试强制解锁用户,但这种对我的抵制表明也许我应该放弃这条道路。

我不知道这些是否都值得提出自己的质疑,但最后,我只是想设置笔记本电脑盖子关闭设置(所有用户的默认设置),尽管我想更广泛地了解如何设置 Gnome 的默认首选项。

答案1

运行sudo su gdm -c 'gsettings …'(或sudo sudo -u gdm gsettings …)。该命令sudo -u gdm会提示您输入密码,因为您没有gdm通过 sudo 运行命令的特定授权。但是 root 可以篡夺任何用户,并且您可以成为 root,所以先成为 root,然后成为gdm

请注意,我不知道gsettingsgdm用户身份运行是否会设置登录屏幕的电源管理首选项。另一种尝试的可能性是从脚本中运行命令/etc/gdm/Init/(或者您的发行版保存 Gdm 配置文件的地方)。

答案2

尤里卡!

感谢这里的答案组合,关于设置登录屏幕壁纸的讨论, 和关于从另一个控制台运行 X 程序的一般讨论,我终于成功解决了这个问题。

我确实需要以用户身份进行设置gdm。但是,简单地运行gsettings set ...asgdm会因为 X11 错误而失败。因此,我还需要将命令附加到 X 会话。

但是,sudo su gdm并没有像我希望的那样给我终端 as gdm,所以我最终创建了一个简单的 shell 脚本来运行我需要的命令。

setblank.sh:

#!/bin/sh

export DISPLAY=":0"
export XAUTHORITY="$1"
export XAUTHLOCALHOSTNAME="localhost"

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "blank"

或者,更一般地说 ( gset.sh):

#!/bin/sh

export DISPLAY=":0"
export XAUTHORITY="$1"
export XAUTHLOCALHOSTNAME="localhost"

gsettings set $2 $3 $4

一旦我有了这个,我可以这样称呼它:

sudo sudo -u gdm gset.sh Xauthority-file org.gnome.settings-daemon.plugins.power lid-close-ac-action "blank"

这就成功了!

关于 Xauthority 文件的附加说明:您需要将用户的 Xauthority 文件复制到 gdm 有权读取的文件中。 (一个快速而肮脏的例子:cp $XAUTHORITY /tmp/.Xauthoritychown gdm:root /tmp/.Xauthority

答案3

我刚刚发现我dbus-launch也可以使用该命令来完成此操作,而不是尝试查找要附加的 X 会话。

我可以使用以下模式更新root/ /其他任何人的 GNOME 设置:gdm

sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action "blank"

答案4

您不应该以 gdm 用户身份登录,这只是操作系统分配一组文件的所有权及其关联的读、写、执行权限的一种便捷方式。

您在尝试时是否登录了控制台或 xsession

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'blank'

我以 joeuser 身份登录,做了 a sudo su -,然后

gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'blank'

并且没有收到任何错误

或者,作为 root,您还可以编辑所有用户默认的 XML 架构文件

sudo vi /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.power.gschema.xml

搜索“lid-close-ac-action”键并更改<default>

相关内容