Review of "Global Menu" version 1.1.3 (4)

Details Page Preview

A menu bar for GNOME. The focused application's menus appear in the top panel. It tries three sources in order: the menu the application exports over D-Bus, then a curated menu that fires the application's own keyboard shortcuts, then a generic window and system menu. Reading a menu an application exports needs the companion global-menu daemon, installed separately.

Extension Homepage
https://github.com/Unmade760/orbit-global-menu

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) error 1 warning 4

Shexli found 5 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 6 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • extension.js:322
    console.warn(`[global-menu] ${method} failed: ${error.message}`)
  • extension.js:332
    console.warn(`[global-menu] no proxy for ${BUS_NAME}: ${error.message}`)
  • extension.js:357
    console.warn(`[global-menu] daemon sent an unreadable menu tree: ${e.message}`)
  • extension.js:449
    console.warn(`[global-menu-shortcuts] ${file}: ${message}`)
  • extension.js:130
    			console.log(`[global-menu-shortcuts] resolution: candidates=[${candidates}] ` +
    				`matched ${this._shortcutMapping?.app ?? 'nothing'}`)
  • extension.js:441
    console.error(`[global-menu-shortcuts] could not read the mappings: ${e.message}`)

EGO-X-003 warning

extensions should not call run_dispose in extension code

Extension code should not call `run_dispose()`.

GObject.Object.run_dispose

  • keySynth.js:58
    device?.run_dispose()

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()`.

File Operations

  • shortcutStore.js:15
    file.load_contents(null)
  • shortcutStore.js:320
    this._builtinDir.get_child('index.json').load_contents(null)

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()`.

Meta.Window

  • windowActions.js:125
    win.get_maximized?.()

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.

Disconnect all signals

  • extension.js:429
    this._settings.connect(`changed::${key}`, callback)

All Versions

Version Status
1.1.4 (5) Active
1.1.3 (4) Rejected
1.1.2 (3) Rejected
1.1.1 (2) Rejected
1.1.0 (1) Rejected

Previous Reviews on this Version

JustPerfection rejected
Please use aysnc for reading file content since you are in shell process (line 14, 319 `shortcutStore.js`): [Gio.File.load_contents_async](https://gjs-docs.gnome.org/gio20~2.0/gio.file#method-load_contents_async)