Review of "Mano - Clipboard Manager" version 2

Details Page Preview

Clipboard manager for GNOME Shell. Based on the Pano project by Alperen Elhan. You need libgda and gsound for this extension to work. Fedora: sudo dnf install libgda libgda-sqlite Arch Linux: sudo pacman -S libgda (libgda6 for gnome-43 or later) Ubuntu/Debian: sudo apt install gir1.2-gda-5.0 gir1.2-gsound-1.0 openSUSE: sudo zypper install libgda-6_0-sqlite typelib-1_0-Gda-6_0 typelib-1_0-GSound-1_0

Extension Homepage
https://github.com/m4ush3r/mano

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 manual_review 1

Shexli found 3 issues that may need reviewer attention.

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • extension.js:1499
    St.Clipboard.get_default()

EGO-L-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • extension.js:1165
    db = new Database()
  • extension.js:1165
    new Database()

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

  • extension.js:3815
            panoItem.connect('motion-event', () => {
                if (this.isHovering(this.searchBox)) {
                    this.searchBox.focus();
                }
            })
  • extension.js:3830
            panoItem.connect('on-favorite', () => {
                this.currentFocus = panoItem;
                this.focusOnClosest();
                this.emit('scroll-update-list');
            })
  • extension.js:3837
            panoItem.connect('on-remove', () => {
                if (this.currentFocus === panoItem) {
                    this.focusNext() || this.focusPrev();
                }
                this.removeItem(panoItem);
                this.filter(this.currentFilter, this.currentItemTypeFilter, this.showFavorites);
        
  • extension.js:4448
    this.monitorBox.connect('hide_window', () => this.hide())

All Versions

Version Status
2 Unreviewed
1 Rejected