90 lines
2.6 KiB
JavaScript
Executable File
90 lines
2.6 KiB
JavaScript
Executable File
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
|
import { UnlockDialog } from 'resource:///org/gnome/shell/ui/unlockDialog.js';
|
|
|
|
import { Pipeline } from '../conveniences/pipeline.js';
|
|
|
|
const original_createBackground =
|
|
UnlockDialog.prototype._createBackground;
|
|
const original_updateBackgroundEffects =
|
|
UnlockDialog.prototype._updateBackgroundEffects;
|
|
const original_updateBackgrounds =
|
|
UnlockDialog.prototype._updateBackgrounds;
|
|
|
|
|
|
export const LockscreenBlur = class LockscreenBlur {
|
|
constructor(connections, settings, effects_manager) {
|
|
this.connections = connections;
|
|
this.settings = settings;
|
|
this.effects_manager = effects_manager;
|
|
this.enabled = false;
|
|
}
|
|
|
|
enable() {
|
|
this._log("blurring lockscreen");
|
|
|
|
this.update_lockscreen();
|
|
|
|
this.enabled = true;
|
|
}
|
|
|
|
update_lockscreen() {
|
|
UnlockDialog.prototype._createBackground =
|
|
this._createBackground;
|
|
UnlockDialog.prototype._updateBackgroundEffects =
|
|
this._updateBackgroundEffects;
|
|
UnlockDialog.prototype._updateBackgrounds =
|
|
this._updateBackgrounds;
|
|
}
|
|
|
|
_createBackground(monitor_index) {
|
|
let pipeline = new Pipeline(
|
|
global.blur_my_shell._effects_manager, global.blur_my_shell._pipelines_manager,
|
|
global.blur_my_shell._settings.lockscreen.PIPELINE
|
|
);
|
|
|
|
pipeline.create_background_with_effects(
|
|
monitor_index,
|
|
this._bgManagers,
|
|
this._backgroundGroup,
|
|
"screen-shield-background"
|
|
);
|
|
}
|
|
|
|
_updateBackgroundEffects() {
|
|
this._updateBackgrounds();
|
|
}
|
|
|
|
_updateBackgrounds() {
|
|
for (let i = 0; i < this._bgManagers.length; i++) {
|
|
this._bgManagers[i]._bms_pipeline.destroy();
|
|
this._bgManagers[i].destroy();
|
|
}
|
|
|
|
this._bgManagers = [];
|
|
this._backgroundGroup.destroy_all_children();
|
|
|
|
for (let i = 0; i < Main.layoutManager.monitors.length; i++)
|
|
this._createBackground(i);
|
|
}
|
|
|
|
disable() {
|
|
this._log("removing blur from lockscreen");
|
|
|
|
UnlockDialog.prototype._createBackground =
|
|
original_createBackground;
|
|
UnlockDialog.prototype._updateBackgroundEffects =
|
|
original_updateBackgroundEffects;
|
|
UnlockDialog.prototype._updateBackgrounds =
|
|
original_updateBackgrounds;
|
|
|
|
this.connections.disconnect_all();
|
|
|
|
this.enabled = false;
|
|
}
|
|
|
|
_log(str) {
|
|
if (this.settings.DEBUG)
|
|
console.log(`[Blur my Shell > lockscreen] ${str}`);
|
|
}
|
|
};
|