如何从自定义 .deb 包中的 postinst 脚本中运行 gsettings 命令?

如何从自定义 .deb 包中的 postinst 脚本中运行 gsettings 命令?

我想在安装自定义 .deb 包时更改壁纸。

在 postinst 脚本中我写了以下内容:


PID=$(pgrep gnome-session)

export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ | cut -d= -f2- )

dbus-launch gsettings set org.gnome.destkop.backgroun picture-uri “file:///path/photo.png”

我看到 dconf 值发生了变化,但没有其他反应(壁纸没有改变),尽管我的照片作为当前壁纸出现在“gnome-control-center background”中。(wtf!!??)。

而且,当我注销并再次登录时,以前的 dconf 值会返回,就好像我没有做任何事情一样。

我要疯了。

谢谢!

答案1

您是否忽略了 .deb 安装程序 (以及 postinst 脚本) 从 root 运行的事实?壁纸是在用户级别设置的。

您实际上想要做的是给用户“root”一张漂亮的壁纸。

相关内容