Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively
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.
ddterm/shell/notifications.js:116
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()`.
ddterm/shell/wlclipboard.js:24
GLib.file_get_contents(`/proc/${pid}/cmdline`)
EGO-C49-004 error
extensions targeting GNOME 49 must not call Meta.Window.get_maximized
This extension explicitly targets GNOME Shell 49 but still calls removed `Meta.Window.get_maximized()`.
ddterm/shell/wm.js:461
this.window.get_maximized()
EGO-P-001 error
GSettings schema id must use org.gnome.shell.extensions base
GSettings schema id must start with `org.gnome.shell.extensions`.
schemas/com.github.amezin.ddterm.gschema.xml
id='com.github.amezin.ddterm' path='/com/github/amezin/ddterm/'
EGO-P-002 error
GSettings schema path must use /org/gnome/shell/extensions base
GSettings schema path must start with `/org/gnome/shell/extensions`.
schemas/com.github.amezin.ddterm.gschema.xml
id='com.github.amezin.ddterm' path='/com/github/amezin/ddterm/'
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
ddterm/app/about.js
ddterm/app/application.js
ddterm/app/appwindow.js
ddterm/app/init.js
ddterm/app/meta.js
ddterm/app/notebook.js
ddterm/app/regex.js
ddterm/app/search.js
ddterm/app/tablabel.js
ddterm/app/tcgetpgrp.js
ddterm/app/terminal.js
ddterm/app/terminalpage.js
ddterm/app/terminalsettings.js
ddterm/app/urldetect_patterns.js
ddterm/pref/dialog.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.
ddterm/shell/panelicon.js:71
this.about_item = new PopupMenu.PopupMenuItem(
gettext_domain.gettext('About ddterm')
)
ddterm/shell/panelicon.js:63
this.preferences_item = new PopupMenu.PopupMenuItem(
gettext_domain.gettext('Preferences…')
)
ddterm/shell/panelicon.js:48
this.toggle_item = new PopupMenu.PopupSwitchMenuItem(
gettext_domain.gettext('Show'),
false
)
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`.
ddterm/shell/extension.js:239
this.settings = this.extension.getSettings()
ddterm/shell/panelicon.js:71
this.about_item = new PopupMenu.PopupMenuItem(
gettext_domain.gettext('About ddterm')
)
ddterm/shell/panelicon.js:63
this.preferences_item = new PopupMenu.PopupMenuItem(
gettext_domain.gettext('Preferences…')
)
ddterm/shell/panelicon.js:48
this.toggle_item = new PopupMenu.PopupSwitchMenuItem(
gettext_domain.gettext('Show'),
false
)
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.
ddterm/shell/extension.js:296
this.service.connect('error', (service, ex) => {
const log_collector = service.subprocess?.log_collector;
if (!log_collector) {
this.notifications.show_error(ex);
return;
}
log_collector.collect().then(output =
ddterm/shell/extension.js:285
this.service.connect('notify::starting', service => {
if (service.starting) {
this.notifications.destroy(
MessageTray.NotificationDestroyedReason.EXPIRED
);
if (!this.extension.check_version_match())
ddterm/shell/extension.js:278
this.service.connect('notify::subprocess', service => {
const { subprocess } = service;
if (subprocess)
this.extension.watch_app_process(subprocess);
})
ddterm/shell/extension.js:456
this.window_manager.connect('hide-request', () => this.app_control.hide(false))
ddterm/shell/extension.js:377
this.window_matcher.connect('notify::current-window', () => {
this.#create_window_manager();
})
ddterm/shell/extension.js:387
this.window_matcher.connect('notify::current-window', () => {
this.#set_skip_taskbar();
})
| Version | Status |
|---|---|
| 63.0.0 97ffe725b (65) | Active |
| 62.0.2 402c0b438 (64) | Active |
| 62.0.1 58ed3879a (63) | Active |
| 62.0.0 f4dbc6d9e (62) | Inactive |
| 61 | Active |
| 60 | Active |
| 59 | Active |
| 58 | Active |
| 57 | Inactive |
| 56 | Active |
| 55 | Active |
| 54 | Active |
| 53 | Active |
| 52 | Active |
| 51 | Active |
| 50 | Active |
| 49 | Active |
| 48 | Active |
| 47 | Active |
| 46 | Active |
| 45 | Active |
| 44 | Rejected |
| 43 | Active |
| 42 | Active |
| 41 | Active |
| 40 | Active |
| 39 | Active |
| 38 | Active |
| 37 | Active |
| 36 | Active |
| 35 | Active |
| 34 | Active |
| 33 | Active |
| 32 | Active |
| 31 | Rejected |
| 30 | Inactive |
| 29 | Inactive |
| 28 | Inactive |
| 27 | Inactive |
| 26 | Inactive |
| 25 | Inactive |
| 24 | Inactive |
| 23 | Inactive |
| 22 | Rejected |
| 21 | Inactive |
| 20 | Inactive |
| 19 | Inactive |
| 18 | Inactive |
| 17 | Inactive |
| 16 | Inactive |
| 15 | Inactive |
| 14 | Inactive |
| 13 | Rejected |
| 12 | Inactive |
| 11 | Inactive |
| 10 | Inactive |
| 9 | Inactive |
| 8 | Inactive |
| 7 | Inactive |
| 6 | Rejected |
| 5 | Inactive |
| 4 | Inactive |
| 3 | Rejected |
| 2 | Inactive |
| 1 | Rejected |