Review of "Mano - Clipboard Manager" version 1

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.

FAQ

Files

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

Shexli (experimental) error 1 warning 3 manual_review 1

Shexli found 5 issues that may need reviewer attention.

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • extension.js:2544
    imageFile.load_bytes(null)

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:1493
    St.Clipboard.get_default()

EGO-P-004 error

GSettings schema XML filename must match schema id

GSettings schema filename must match `<schema-id>.gschema.xml`.

GSettings Schemas

  • schemas/org.gnome.shell.extensions.mano.gschema.xml
    id='org.gnome.shell.extensions.mano.link-item' path='/org/gnome/shell/extensions/mano/link-item/'
  • schemas/org.gnome.shell.extensions.mano.gschema.xml
    id='org.gnome.shell.extensions.mano.text-item' path='/org/gnome/shell/extensions/mano/text-item/'
  • schemas/org.gnome.shell.extensions.mano.gschema.xml
    id='org.gnome.shell.extensions.mano.emoji-item' path='/org/gnome/shell/extensions/mano/emoji-item/'
  • schemas/org.gnome.shell.extensions.mano.gschema.xml
    id='org.gnome.shell.extensions.mano.file-item' path='/org/gnome/shell/extensions/mano/file-item/'
  • schemas/org.gnome.shell.extensions.mano.gschema.xml
    id='org.gnome.shell.extensions.mano.image-item' path='/org/gnome/shell/extensions/mano/image-item/'
  • schemas/org.gnome.shell.extensions.mano.gschema.xml
    id='org.gnome.shell.extensions.mano.code-item' path='/org/gnome/shell/extensions/mano/code-item/'
  • schemas/org.gnome.shell.extensions.mano.gschema.xml
    id='org.gnome.shell.extensions.mano.color-item' path='/org/gnome/shell/extensions/mano/color-item/'

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:1161
    db = new Database()
  • extension.js:1161
    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:3802
            panoItem.connect('motion-event', () => {
                if (this.isHovering(this.searchBox)) {
                    this.searchBox.focus();
                }
            })
  • extension.js:3817
            panoItem.connect('on-favorite', () => {
                this.currentFocus = panoItem;
                this.focusOnClosest();
                this.emit('scroll-update-list');
            })
  • extension.js:3824
            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:4435
    this.monitorBox.connect('hide_window', () => this.hide())

All Versions

Version Status
2 Unreviewed
1 Rejected

Previous Reviews on this Version

m4ush3r auto- rejected
Auto-rejected because of new version 2 was uploaded