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