Я боролся с ужасной документацией Gnome API и придумал это расширение:
const St = imports.gi.St;
const Main = imports.ui.main;
const Tweener = imports.ui.tweener;
const GLib = imports.gi.GLib;
let label;
function init() {
label = new St.Bin({ style_class: 'panel-label' });
let stuff = GLib.spawn_command_line_sync("cat /home/user/temp/hello")[1].toString();
let text = new St.Label({ text: stuff });
label.set_child(text);
}
function enable() {
Main.panel._rightBox.insert_child_at_index(label, 0);
}
function disable() {
Main.panel._rightBox.remove_child(label);
}
Это должно прочитать все, что находится в файле hello
, и отобразить его на верхней панели. Однако, если я изменю содержимое файла hello
, мне придется перезапустить Gnome, чтобы отобразить этот новый контент. Теперь, конечно, есть способ сделать это динамически, но я просто не смог ничего найти в документации. Сообщение на панели в основном всегда должно отражать все, что находится в файле. Любые идеи, как это сделать?