Review of "Murmur" version 1.0.0 (1)

Details Page Preview

Push-to-talk voice dictation. Super+Space opens a centered overlay that records the microphone, transcribes it in realtime with Mistral Voxtral, and inserts the text into the focused field. Typing uses dotool when available (recommended), with the virtual keyboard as fallback.

Extension Homepage
https://github.com/roman-16/murmur

No comments.

FAQ

Files

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

Shexli (experimental) warning 4

Shexli found 4 issues that may need reviewer attention.

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.

Destroy all objects

  • extension.js:72
    this._countdown = new St.Label({style_class: 'murmur-countdown', text: ''})
  • extension.js:98
            this._hint = new St.Label({
                style_class: 'murmur-hint',
                text: 'Enter / Super+Space: insert     ·     Esc: cancel',
            })
  • extension.js:87
            this._scroll = new St.ScrollView({
                style_class: 'murmur-scroll',
                reactive: true,
                hscrollbar_policy: St.PolicyType.NEVER,
                vscrollbar_policy: St.PolicyType.AUTOMATIC,
            })
  • extension.js:71
    this._status = new St.Label({style_class: 'murmur-status', text: 'Listening…'})
  • extension.js:79
    this._text = new St.Label({style_class: 'murmur-text', text: ''})

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

Destroy all objects

  • extension.js:72
    this._countdown = new St.Label({style_class: 'murmur-countdown', text: ''})
  • extension.js:98
            this._hint = new St.Label({
                style_class: 'murmur-hint',
                text: 'Enter / Super+Space: insert     ·     Esc: cancel',
            })
  • extension.js:87
            this._scroll = new St.ScrollView({
                style_class: 'murmur-scroll',
                reactive: true,
                hscrollbar_policy: St.PolicyType.NEVER,
                vscrollbar_policy: St.PolicyType.AUTOMATIC,
            })
  • extension.js:71
    this._status = new St.Label({style_class: 'murmur-status', text: 'Listening…'})
  • extension.js:79
    this._text = new St.Label({style_class: 'murmur-text', text: ''})

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:94
            this._scroll.vadjustment.connect('changed', adj => {
                adj.value = Math.max(0, adj.upper - adj.page_size);
            })

EGO-L-006 warning

preferences classes should not retain window-scoped objects on instance fields without close-request cleanup

Preferences code stores window-scoped objects on the exported prefs class without `close-request` cleanup.

Destroy all objects

  • prefs.js:48
    this._statusIcon = new Gtk.Image({valign: Gtk.Align.CENTER})
  • prefs.js:49
    this._statusRow = new Adw.ActionRow({subtitle_lines: 0})

All Versions

Version Status
1.0.3 (4) Unreviewed
1.0.2 (3) Rejected
1.0.1 (2) Rejected
1.0.0 (1) Rejected

Previous Reviews on this Version

Roman auto- rejected
Auto-rejected because of new version 1.0.1 (2) was uploaded