33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
import Clutter from 'gi://Clutter';
|
|
import Cogl from 'gi://Cogl';
|
|
import GLib from 'gi://GLib';
|
|
import GObject from 'gi://GObject';
|
|
import Meta from 'gi://Meta';
|
|
|
|
const DEFAULT_BACKGROUND_COLOR = Clutter.Color?.from_pixel(0x2e3436ff) || new Cogl.Color({red: 40, green: 40, blue: 40, alpha: 255});
|
|
|
|
let _systemBackground;
|
|
|
|
export const SystemBackground = GObject.registerClass({
|
|
Signals: {'loaded': {}},
|
|
}, class SystemBackground extends Meta.BackgroundActor {
|
|
_init() {
|
|
if (_systemBackground == null) {
|
|
_systemBackground = new Meta.Background({meta_display: global.display});
|
|
_systemBackground.set_color(DEFAULT_BACKGROUND_COLOR);
|
|
}
|
|
|
|
super._init({
|
|
meta_display: global.display,
|
|
monitor: 0,
|
|
});
|
|
this.content.background = _systemBackground;
|
|
|
|
let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
|
|
this.emit('loaded');
|
|
return GLib.SOURCE_REMOVE;
|
|
});
|
|
GLib.Source.set_name_by_id(id, '[gnome-shell] SystemBackground.loaded');
|
|
}
|
|
});
|