Ich baue gerade eine einfache Anwendung auf Gjs, die das Hintergrundbild meiner Gnome-Shell ändern sollte. Eine Lösung, wie dies mit dem gsettings
-tool gemacht werden kann, finden Sie here.Kann dconf-Eintrag mit GSettings nicht ändern
Da ich eine Desktop-Anwendung erstellen möchte, möchte ich die org.gnome.desktop.background.picture-uri
-Schlüssel mit Gio's GSettings
-class ändern. Aber die Verwendung der set_X()
-Methode ändert nicht den Wert des Schlüssels.
Dies ist mein Code, um den gsettings Wert zu ändern:
var gio = imports.gi.Gio;
// Get the GSettings-object for the background-schema:
var background = new gio.Settings({schema: "org.gnome.desktop.background"});
// Read the current Background-Image:
print("Current Background-Image: "+background.get_string("picture-uri"));
if (background.is_writable("picture-uri")){
// Set a new Background-Image (should show up immediately):
if (background.set_string("picture-uri", "file:///path/to/some/pic.jpg")){
print("Success!");
}
else throw "Couldn't set the key!";
} else throw "The key is not writable";
den Wert Lese wie erwartet funktioniert, die is_writable()
-Methode kehrt auch true
true
und die set_string()
-Methode zurückgibt.
Ich habe überprüft, dass ich nicht im "Delay-Apply" -Modus bin und der Schlüssel hat eine GVariantType
Zeichenfolge, so dass die set_string()
-Methode funktionieren sollte.
Die Verwendung des normalen Befehlszeilenprogramms gsettings
(wie im verknüpften Post erklärt) funktioniert einwandfrei.
Ich kann nicht herausfinden, was das Problem ist, gibt es einen Ort, an dem ich nach Protokollen oder etwas suchen kann?
Ich habe mir seit gestern den Kopf über dieses Problem gebrochen und bin froh, endlich die Lösung gefunden zu haben. Vielen Dank! – Serrano