Start, stop, and switch between Pinggy SSH tunnel profiles from the Quick Settings panel.
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:208
St.Clipboard.get_default()
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()`.
lib/profileStore.js:62
file.load_contents(null)
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-P-003 error
GSettings schema XML must be present in package
Extension appears to use GSettings but no `.gschema.xml` file is included in the package.
EGO-P-007 warning
JavaScript files should be reachable from extension.js or prefs.js
Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.
Don't include unnecessary files
viewer/pinggy-viewer.js
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:116
this._label = new St.Label({
style_class: 'pinggy-output-text',
text: '',
})
extension.js:90
this._title = new St.Label({
text: this._titleText(initial),
style_class: 'pinggy-output-title',
})
extension.js:298
this._profilesSection = new PopupMenu.PopupMenuSection()
extension.js:306
this._stopAllItem = stopAll
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:116
this._label = new St.Label({
style_class: 'pinggy-output-text',
text: '',
})
extension.js:90
this._title = new St.Label({
text: this._titleText(initial),
style_class: 'pinggy-output-title',
})
extension.js:298
this._profilesSection = new PopupMenu.PopupMenuSection()
extension.js:306
this._stopAllItem = stopAll
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:521
monitor.connect('changed', (_m, _f, _other, eventType) => {
if (
eventType === Gio.FileMonitorEvent.CHANGES_DONE_HINT ||
eventType === Gio.FileMonitorEvent.CREATED
) {
this._store.load();
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:493
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 300, () => {
const socketPath = this._pinggyManager?.socketPathFor(domain);
if (socketPath)
this._viewerLauncher?.openFor(profile, socketPath);
return GLib.SOURCE_REMOVE;