如何更改 root 的 GNOME 应用程序首选项?

如何更改 root 的 GNOME 应用程序首选项?

打开应用程序,例如编辑器或者Gnome 文本编辑器sudo终端中,将使用默认首选项打开应用程序,而且它不允许我更改这些设置;然而,作为管理用户,我更改了各种似乎被忽略的首选项。

这是用于比较的屏幕截图:root vs. user

使用 root 忽略用户首选项

当尝试使用 sudo 打开应用程序后更改首选项时,我在终端中收到以下错误/警告(其中tedit是指向 的符号链接gnome-text-editor):

(tedit:37067): dconf-WARNING **: 11:36:56.149: failed to commit changes to dconf: Error spawning command line “dbus-launch --autolaunch=cca92021290f49f5b00d396a

所以,有没有办法更改以 root 权限打开应用程序时要遵循的 root 首选项?

我尝试了以下方法但没有成功:

  1. 以 root 身份登录su root,然后打开应用程序;
  2. 使用以下命令打开应用程序gksu
  3. 编辑特定应用程序的 gsettings 架构的默认参数/usr/share/glib-2.0/schemas/org.gnome.TextEditor.gschema.xml
  4. 以管理员身份打开目录/usr/share/applications,然后使用 .desktop 文件启动应用程序。

编辑1

我刚刚找到了sudo -E一个解决方法,可以在我的用户环境中使用 root 打开文件,例如:

sudo -E gnome-text-editor [path-to-file]

但我仍然渴望知道是否有一种简单的方法可以永久更改根首选项。


编辑2

我偶然发现预见的方法(3),即更改模式的默认值,确实有​​效,但您需要使用以下命令重新编译它们:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

但我认为这是另一种解决方法,而不是真正的答案。

答案1

取决于设置...在这种情况下(gedit首选项),设置通常通过dconf(在相应用户的中XDG_CONFIG_HOME)存储在二进制文件中。但是,由于当您调用with时dconf无法访问 a (这就是您收到这些警告消息的原因),因此它不起作用。人们通常尝试通过获取地址、导出地址等来解决问题, 我认为最直接的方法是通过DBUS_SESSION_BUS_ADDRESgeditsudo
dbus-run-session例如将gedit配色方案设置为晒黑对于 root 你可以运行:

sudo -i -u root sh -c 'exec dbus-run-session -- gsettings set org.gnome.gedit.preferences.editor scheme "solarized-dark"'

或者,直接打开gedit

sudo -i -u root sh -c 'exec dbus-run-session -- gedit'

并根据需要进行自定义,设置将被保存以供下次运行时使用sudo gedit

相关内容