Keeps a searchable history of what you copy, and pastes an entry back where you were typing when you click it. Screenshots and other images are listed too, with a thumbnail. * Reads the clipboard to record new copies, and to paste the entry you click * Writes to the clipboard only when you click an entry * Clicking an entry sends a Ctrl+V keystroke to the window you were typing in * Stores history and images under ~/.local/share/clipboard-manager/ and never accesses the network Pairs with the optional clipman GTK app, which reads the same history file.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
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:188
St.Clipboard.get_default()
EGO-P-006 warning
unnecessary build and translation artifacts should not be shipped
Compiled GSettings schemas should not be shipped for 45+ packages.
Don't include unnecessary files
schemas/gschemas.compiled
schemas/gschemas.compiled
EGO-L-002 warning
objects created by extension should be destroyed in disable()
Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.
extension.js:750
this._clearBtn = clearBtn
extension.js:779
this._historySection = new PopupMenu.PopupMenuSection()
extension.js:733
this._search = new St.Entry({
hint_text: 'Search history…',
can_focus: true,
style_class: 'clipboard-history-search',
})
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.
extension.js:357
monitor.connect('changed', (_m, file, _other, event) => {
if (!isScreenshotsDir) {
if (file.get_basename() === SCREENSHOTS_SUBDIR)
this._watchDir(file, true);
return;
}
if (eve
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.
extension.js:764
this._focusIdle = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
this._focusIdle = null;
this._search.grab_key_focus();
return GLib.SOURCE_REMOVE;
})
extension.js:540
this._pasteTimeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, PASTE_DELAY_MS, () => {
this._pasteTimeout = null;
try {
this._injectPaste([KEY_CTRL], KEY_V);
} catch (e) {
log(`clipboard-history: paste injection failed: ${e}`)
extension.js:712
this._rebuildTimeout = GLib.timeout_add(
GLib.PRIORITY_DEFAULT, SEARCH_DEBOUNCE_MS, () => {
this._rebuildTimeout = 0;
this._rebuildList();
return GLib.SOURCE_REMOVE;
})
| Version | Status |
|---|---|
| 2.1 (2) | Unreviewed |
| 1 | Rejected |