Review of "Clip" version 1

Details Page Preview

Clipboard history and screen text capture. Clip reads the clipboard to keep a history of what you copy (text and images), in memory only; it never touches the network and skips copies that password managers flag as secret. Set the shortcuts in the preferences (for example Super+V for the history and Super+Shift+T to copy text from any part of the screen). Text capture needs Tesseract.

Extension Homepage
https://github.com/Ahmad-b1995/desktop-tools

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) warning 4 manual_review 1

Shexli found 5 issues that may need reviewer attention.

EGO-X-003 warning

extensions should not call run_dispose in extension code

Extension code should not call `run_dispose()`.

GObject.Object.run_dispose

  • extension.js:646
    this._keyboard?.run_dispose()

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:91
    this._file.load_contents(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:657
    St.Clipboard.get_default()
  • extension.js:712
    St.Clipboard.get_default()
  • extension.js:764
    St.Clipboard.get_default()

EGO-L-005 warning

owned object references should be released in disable()

Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.

Destroy all objects

  • extension.js:609
    this._history = new History(pinnedFile, settings.get_int('history-size'))
  • extension.js:614
    this._popup = new HistoryPopup(this._history, (item, paste) => this._use(item, paste), () => this.openPreferences())

EGO-L-006 warning

preferences classes should not retain window-scoped objects on instance fields without close-request cleanup

Preferences code stores window-scoped objects on the exported prefs class without `close-request` cleanup.

Destroy all objects

  • prefs.js:51
    this._settings = this.getSettings()
  • prefs.js:66
            this._activeGroup = new Adw.PreferencesGroup({
                title: 'Text recognition languages',
                description: 'Languages used when copying text from the screen. Fewer languages means faster, more accurate results.',
            })
  • prefs.js:72
            this._installGroup = new Adw.PreferencesGroup({
                title: 'Add a language',
                description: 'Copy the install command, run it in a terminal, then refresh.',
            })
  • prefs.js:77
    this._filter = new Gtk.SearchEntry({ placeholder_text: 'Search languages', hexpand: true })

All Versions

Version Status
1 Unreviewed