Recreates the Windows 11 smart clipboard experience in GNOME: Win+V opens the clipboard history (text and images), while Win+. opens the emoji picker. Floating popups appear near the cursor and include search, item pinning, and a Clear All option. Automatically matches the GNOME Shell theme (light or dark).
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.
clipboardManager.js:27
St.Clipboard.get_default()
extension.js:166
St.Clipboard.get_default()
extension.js:193
St.Clipboard.get_default()
EGO-X-003 warning
extensions should not call run_dispose in extension code
Extension code should not call `run_dispose()`.
keyboard.js:82
this.#device.run_dispose()
EGO-A-004 warning
extension files should not contain excessive ungated console logging
File contains 6 ungated console.log/warn/error calls (threshold: 5).
registry.js:149
console.error('WinV deleteEntryFile:', e)
registry.js:223
console.error('WinV: registry.txt is corrupt, ignoring:', e)
registry.js:231
console.error('WinV: error loading registry entry:', e)
registry.js:265
console.error('WinV readRecentEmojis:', e)
registry.js:304
console.error(e)
registry.js:307
console.error('WinV clearCacheFolder:', e)
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:45
this._indicator.connect('button-press-event', (_i, event) => {
if (event.get_button() === Clutter.BUTTON_PRIMARY) {
this.open(TAB.CLIPBOARD);
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
})
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:173
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, () => {
this.pasteIntoFocus();
return GLib.SOURCE_REMOVE;
})
extension.js:183
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, () => {
try {
Main.inputMethod.commit(char);
} catch (e) {
console.error('WinV: commit emoji failed, falling back to clipboard:', e);
this.copyAndPaste
EGO-M-005 warning
metadata session-modes must be omitted when only user mode is declared
Field `session-modes` should be omitted when it only contains `user`.
metadata.json must be well-formed
metadata.json
session-modes=['user']
| Version | Status |
|---|---|
| 3 | Unreviewed |
| 2 | Rejected |
| 1 | Rejected |