Audio waveform OSD and status indicator for the Voxtype push-to-talk dictation daemon. While you dictate it draws a floating waveform at the bottom of the screen and shows the daemon state (ready / recording / transcribing) in the top bar, with a menu to start, stop or restart the daemon, switches for two Voxtype text options and a shortcut to its configuration file. It targets GNOME on Wayland, where Voxtype's own OSD cannot render because Mutter does not implement the wlr-layer-shell protocol. Requires the voxtype daemon and its voxtype-audio-bridge sidecar to be installed and running (https://github.com/peteonrails/voxtype). The extension does not bundle, download or modify them.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
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()`.
extension.js:140
Gio.File.new_for_path(path).load_contents(null)
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-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:312
this._fillersItem = new PopupMenu.PopupSwitchMenuItem('Remove filler words', false)
extension.js:284
this._icon = new St.Icon({
icon_name: STATE_ICON.stopped,
style_class: `system-status-icon ${STATE_CLASS.stopped}`,
})
extension.js:320
this._openConfigItem = new PopupMenu.PopupMenuItem('Open configuration')
extension.js:306
this._punctuationItem = new PopupMenu.PopupSwitchMenuItem('Spoken punctuation', false)
extension.js:298
this._restartItem = new PopupMenu.PopupMenuItem('Restart daemon')
extension.js:290
this._statusItem = new PopupMenu.PopupMenuItem('Voxtype', {reactive: false})
extension.js:294
this._toggleItem = new PopupMenu.PopupMenuItem('Start daemon')
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:312
this._fillersItem = new PopupMenu.PopupSwitchMenuItem('Remove filler words', false)
extension.js:284
this._icon = new St.Icon({
icon_name: STATE_ICON.stopped,
style_class: `system-status-icon ${STATE_CLASS.stopped}`,
})
extension.js:320
this._openConfigItem = new PopupMenu.PopupMenuItem('Open configuration')
extension.js:306
this._punctuationItem = new PopupMenu.PopupSwitchMenuItem('Spoken punctuation', false)
extension.js:298
this._restartItem = new PopupMenu.PopupMenuItem('Restart daemon')
extension.js:290
this._statusItem = new PopupMenu.PopupMenuItem('Voxtype', {reactive: false})
extension.js:294
this._toggleItem = new PopupMenu.PopupMenuItem('Start daemon')
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:228
this._area.connect('repaint', () => this._draw())
extension.js:334
this._indicator.menu.connect('open-state-changed', (_menu, open) => {
if (!open)
return;
if (this._unitPath)
this._refreshService();
this._refreshSwitches();
})
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:485
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 800, () => {
this._refreshService();
return GLib.SOURCE_REMOVE;
})
extension.js:494
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 1200, () => {
this._refreshService();
return GLib.SOURCE_REMOVE;
})
extension.js:528
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 1200, () => {
this._refreshService();
return GLib.SOURCE_REMOVE;
})
| Version | Status |
|---|---|
| 1 | Unreviewed |