Review of "Murmur" version 2.0.0 (21)

Details Page Preview

Voice dictation and recording for GNOME. Speak into any text field: press Super+Space, say what you mean, and the words are typed where your cursor already is - browsers, editors, chat boxes, terminals. Or press Super+Alt+Space to record everything your computer plays and your microphone hears, a call or anything else, and get its audio and its transcript side by side in your Documents folder. The transcription is typed as keystrokes rather than pasted, so your clipboard stays yours and applications that ignore a paste still get the text. While you speak, a panel in your desktop's own style shows what is being heard and where it will land; look anywhere else and it collapses to an indicator in the top bar while the dictation carries on. With no text field focused, the words go to the clipboard rather than nowhere. A recording lives in the top bar alone, carries on while the screen is locked, and is transcribed when you stop it. Wayland only, and it transcribes with an API key of your own: Grok, Mistral Voxtral, or any transcription model OpenRouter serves. No companion daemon and no background listening - the microphone opens when you start and is released the moment you stop.

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

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) warning 2 manual_review 1

Shexli found 3 issues that may need reviewer attention.

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • lib/shell/clipboard.js:5
    St.Clipboard.get_default()

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

  • lib/shell/audio.js:366
    this.#busId = this.#bus.connect('message', (_bus, message) => this.#onMessage(message, handlers))

EGO-M-008 warning

extensions using unlock-dialog must document it in disable() comments

Extensions using `unlock-dialog` should document the reason in `disable()` comments.

Session Modes

  • extension.js:40
        disable() {
            if (this.#sessionModeId) {
                Main.sessionMode.disconnect(this.#sessionModeId);
                this.#sessionModeId = 0;
            }
            for (const id of this.#settingsChangedIds)
                this.#settings?.disconnect(id);
            this.#settingsChangedIds = [];
          

All Versions

Version Status
2.0.0 (21) Unreviewed
1.7.1 (20) Rejected
1.7.0 (19) Rejected
1.6.2 (18) Rejected
1.6.1 (17) Rejected
1.6.0 (16) Rejected
1.5.0 (15) Rejected
1.4.0 (14) Rejected
1.3.3 (13) Rejected
1.3.2 (12) Rejected
1.3.1 (11) Rejected
1.3.0 (10) Rejected
1.2.2 (9) Rejected
1.2.1 (8) Rejected
1.2.0 (7) Rejected
1.1.0 (6) Rejected
1.0.4 (5) Rejected
1.0.3 (4) Rejected
1.0.2 (3) Rejected
1.0.1 (2) Rejected
1.0.0 (1) Rejected