В настоящее время я создаю простое приложение на Gjs, которое должно изменить фоновое изображение моей оболочки gnome. . Решение о том, как это можно сделать с помощью gsettings
-инструмента, можно найти здесь. а>.
Поскольку я хочу создать настольное приложение на его основе, я хочу изменить ключ org.gnome.desktop.background.picture-uri
с помощью Gio GSettings
-класс. Но использование метода set_X()
не меняет значение ключа.
Это мой код для изменения значения gsettings:
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";
Чтение значения работает должным образом, метод is_writable()
возвращает true
, а метод set_string()
также возвращает true
.
Я проверил, что не нахожусь в режиме «отложенного применения», а ключ имеет GVariantType
строки, поэтому метод set_string()
должен работать.
Использование обычного инструмента командной строки gsettings
(как описано в связанном посте) работает просто отлично.
Я не могу понять, в чем проблема, есть ли место, где я могу посмотреть журналы или что-то в этом роде?