A searchable, Windows-style history for clipboard text. Clipboard contents are stored locally and are never transmitted. Choose the optional Super+V shortcut in Preferences.
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:609
St.Clipboard.get_default()
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:269
this._backdrop = new St.Button({
style_class: 'wc-backdrop',
reactive: true,
can_focus: false,
x_expand: true,
y_expand: true,
})
extension.js:336
this._list = new St.BoxLayout({
style_class: 'wc-list',
vertical: true,
x_expand: true,
})
extension.js:298
this._pauseButton = new St.Button({
style_class: 'wc-pause-button',
can_focus: true,
toggle_mode: true,
accessible_name: 'Pause clipboard capture',
child: new St.Icon({icon_name: 'media-playback-pause-symbolic'}),
})
extension.js:280
this._popup = new St.BoxLayout({
style_class: 'wc-popup',
vertical: true,
reactive: true,
})
extension.js:330
this._scroll = new St.ScrollView({
style_class: 'wc-scroll',
overlay_scrollbars: true,
x_expand: true,
y_expand: true,
})
extension.js:318
this._search = new St.Entry({
style_class: 'wc-search',
hint_text: 'Search copied items',
can_focus: true,
x_expand: true,
})
extension.js:468
row
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:269
this._backdrop = new St.Button({
style_class: 'wc-backdrop',
reactive: true,
can_focus: false,
x_expand: true,
y_expand: true,
})
extension.js:336
this._list = new St.BoxLayout({
style_class: 'wc-list',
vertical: true,
x_expand: true,
})
extension.js:262
this._overlay = new St.Widget({
style_class: 'wc-overlay',
reactive: true,
visible: false,
layout_manager: new Clutter.FixedLayout(),
})
extension.js:298
this._pauseButton = new St.Button({
style_class: 'wc-pause-button',
can_focus: true,
toggle_mode: true,
accessible_name: 'Pause clipboard capture',
child: new St.Icon({icon_name: 'media-playback-pause-symbolic'}),
})
extension.js:280
this._popup = new St.BoxLayout({
style_class: 'wc-popup',
vertical: true,
reactive: true,
})
extension.js:330
this._scroll = new St.ScrollView({
style_class: 'wc-scroll',
overlay_scrollbars: true,
x_expand: true,
y_expand: true,
})
extension.js:318
this._search = new St.Entry({
style_class: 'wc-search',
hint_text: 'Search copied items',
can_focus: true,
x_expand: true,
})
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:276
this._backdrop.connect('clicked', () => this.close())
extension.js:352
this._overlay.connect('key-press-event', (_actor, event) =>
this._onKeyPress(event))
extension.js:305
this._pauseButton.connect('clicked', () => {
this._extension.paused = !this._extension.paused;
this._pauseButton.checked = this._extension.paused;
this._pauseButton.accessible_name = this._extension.paused
? 'Resume clipboard capture'
extension.js:354
this._search.clutter_text.connect('key-press-event', (_actor, event) =>
this._onKeyPress(event))
extension.js:324
this._search.clutter_text.connect('text-changed', () => {
this._selectedIndex = 0;
this._render();
})
extension.js:479
actor.connect('destroy', () => {
if (actor.hover)
global.display.set_cursor(Meta.Cursor.DEFAULT);
})
extension.js:474
actor.connect('notify::hover', () => {
global.display.set_cursor(
actor.hover ? Meta.Cursor.POINTING_HAND : Meta.Cursor.DEFAULT
);
})
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:497
this._caretSource = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
530,
() => {
if (!this._isOpen) {
this._caretSource = 0;
return GLib.SOURCE_REMOVE;
}
const searchText = t
| Version | Status |
|---|---|
| 1 | Unreviewed |