alterar gsettings sem executar o X e o Unity

13

Estou tentando alterar algumas configurações do gconf no Ubuntu 12.10. Gostaria de mudar o plano de fundo do lightdm greeter.

Descobri que, enquanto estava conectado à unidade como usuário enquanto executava o servidor X, sou capaz de fazer isso com:

sudo xhost +SI:localuser:lightdm
gsettings set com.canonical.unity-greeter background "'/usr/share/backgrounds/micros-background.png'"

O problema é que isso exige que eu entre como usuário no X. Portanto, todo o gerenciador de janelas precisa estar em execução. Mas eu quero usar o chroot para alterar essas configurações sem nenhum servidor X em execução. Eu só quero montar as partições e alterar gsettings sem ter o gerenciador de janelas completo em execução.

Existe uma maneira de alterar diretamente os gsettings sem estar conectado ao X e ao Unity?

Ou, alternativamente ... existe uma maneira de exibir o servidor X e o Unity em segundo plano para que eu possa fazer as alterações sem que uma tela com janelas cheias apareça no meu monitor?

user1880288
fonte

Respostas:

17

É possível executar gsettingssem o X11 usando dbus-launch --exit-with-session:

dbus-launch --exit-with-session gsettings set com.canonical.unity-greeter background "'/usr/share/backgrounds/micros-background.png'"
Afr
fonte
Obrigado por isso! Eu usei isso para as configurações definidas para outro usuário não está logado como estasudo -u "username" dbus-launch --exit-with-session gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'nothing'
HarlemSquirrel
Se você colocar a linha que 5cdhn sugere no sudo, você pode editar o dconf do root (ao usar o dconf-editor e o gsettings com o sudo / gksu, execute este erro). Outra maneira de fazer isso é com 'sudo / gksu dbus-launch gsetttnigs / dconf-editor', como sugere Paco Porras.
Que Quotion
Isso não parece funcionar quando você tem uma sessão em execução no momento. Por exemplo, quero alterar o layout do teclado ao conectar / desconectar o teclado. A execução de gsettings dentro de um script udev, mesmo usando o dbus-launch, não aplica as configurações da sessão atualmente em execução.
Ben Davis
“Nenhum protocolo especificado” na tentativa de testar isso.
realkstrawn93
-1

Algumas pessoas dizem que você deve preceder o comando "gsettings" pela palavra "dbus-launch", mas eu não tentei.

Osqui
fonte