Lofi radio in your top bar. Curated stations play their highest-quality stream (FLAC lossless or 320 kbps), with automatic fallback to the next-best format. More lofi stations come from the Radio Browser directory, each on its best available stream. Scroll on the icon to change the volume. Music keeps playing while the screen is locked.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
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
player.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.
extension.js:267
this._curatedSection = new PopupMenu.PopupMenuSection()
extension.js:275
this._discoverItem = new PopupMenu.PopupSubMenuMenuItem('More lofi stations', true)
extension.js:287
this._discoverSection = new PopupMenu.PopupMenuSection()
extension.js:238
this._playButton = new St.Button({
style_class: 'icon-button lofi-bar-play-button',
can_focus: true,
y_align: Clutter.ActorAlign.CENTER,
child: this._playIcon,
accessible_name: 'Play',
})
extension.js:237
this._playIcon = new St.Icon({icon_name: 'media-playback-start-symbolic'})
extension.js:254
this._volumeIcon = new St.Icon({
style_class: 'popup-menu-icon',
y_align: Clutter.ActorAlign.CENTER,
})
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:267
this._curatedSection = new PopupMenu.PopupMenuSection()
extension.js:275
this._discoverItem = new PopupMenu.PopupSubMenuMenuItem('More lofi stations', true)
extension.js:287
this._discoverSection = new PopupMenu.PopupMenuSection()
extension.js:238
this._playButton = new St.Button({
style_class: 'icon-button lofi-bar-play-button',
can_focus: true,
y_align: Clutter.ActorAlign.CENTER,
child: this._playIcon,
accessible_name: 'Play',
})
extension.js:237
this._playIcon = new St.Icon({icon_name: 'media-playback-start-symbolic'})
extension.js:156
this._settings = extension.getSettings()
extension.js:254
this._volumeIcon = new St.Icon({
style_class: 'popup-menu-icon',
y_align: Clutter.ActorAlign.CENTER,
})
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:245
this._playButton.connect('clicked', () => this._togglePlayback())
extension.js:260
this._slider.connect('notify::value', () => this._onSliderChanged())
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.
extension.js:745
disable() {
Main.sessionMode.disconnectObject(this);
this._indicator?.destroy();
this._indicator = null;
}
| Version | Status |
|---|---|
| 1.2 (4) | Unreviewed |
| 1.1 (3) | Rejected |
| 1.0 (2) | Rejected |
| 1.0 (1) | Rejected |
Auto-rejected because of new version 1.0 (2) was uploaded