Review of "OmniPanel" version 5

Details Page Preview

OmniPanel is a Multi-Monitor advanced window management solution for productivity, featuring configurable zones for windows, smart auto-placement, and automatic tiling. Features: - Top bar on every active screen, including Extensions - Window tiling with Zone designing and auto-placement - Stack specific windows in Zones - Auto-tiling capability without needing to draw zones - Use either the mouse or hotkeys for switching/moving Master your workflow with perfectly organized, highly customizable layouts for uninterrupted multitasking. Includes a feature to dynamically move the GNOME top bar to your active screen. A GNOME native alternative to FancyZones or COSMIC on Pop!_Os Video: https://www.youtube.com/watch?v=c7JNV20OV8k

Extension Homepage
https://github.com/cwittenhttps://extensions.gnome.org/away/https%253A%252F%252Fgithub.com%252Fcwittenberg%252Fomnipanelberg/omnipanel

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 2

Shexli found 2 issues that may need reviewer attention.

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • stack_manager.js:138
                btn.connect('button-press-event', (actor, event) => {
                    if (event.get_button() === 1) { 
                        this.stackManager.manager._log(`[StackManager] Stack mode explicitly clicked: ${modeName} for zone: ${this.zone}`);
                        if (!btn.reactive) return Clu
  • stack_manager.js:107
    btn.connect('notify::hover', () => btn.set_style(btn.hover ? this.btnStyle + this.btnHoverStyle : this.btnStyle))
  • stack_manager.js:134
                btn.connect('notify::hover', () => {
                    this.syncModeStyles();
                })
  • tiling_manager.js:134
                this._captureId = global.stage.connect('captured-event', (_, event) => {
                    if (event.type() === Clutter.EventType.KEY_PRESS && event.get_key_symbol() === Clutter.KEY_Escape) {
                        this.close();
                        return Clutter.EVENT_STOP;
                    }

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • stack_manager.js:168
                        GLib.timeout_add(GLib.PRIORITY_DEFAULT, 200, () => {
                            if (btn) this.syncModeStyles();
                            return GLib.SOURCE_REMOVE;
                        })
  • tiling_manager.js:231
                GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
                    applyWindowTransform(win, mon, targetRect, false, logger);
                    return GLib.SOURCE_REMOVE;
                })

All Versions

Previous Reviews on this Version

cwittenberg auto- rejected
Auto-rejected because of new version 6 was uploaded