![设置默认/全局 Gnome 首选项 (Gnome 3)](https://linux22.com/image/19846/%E8%AE%BE%E7%BD%AE%E9%BB%98%E8%AE%A4%2F%E5%85%A8%E5%B1%80%20Gnome%20%E9%A6%96%E9%80%89%E9%A1%B9%20(Gnome%203).png)
我最近从 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
。
请注意,我不知道gsettings
以gdm
用户身份运行是否会设置登录屏幕的电源管理首选项。另一种尝试的可能性是从脚本中运行命令/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/.Xauthority
和chown 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>
值