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.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-X-003 warning
extensions should not call run_dispose in extension code
Extension code should not call `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()`.
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.
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`.
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.
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 })
| Version | Status |
|---|---|
| 1 | Unreviewed |