Review of "Blur my Shell" version 72

Details Page Preview

Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview. You can support my work by sponsoring me on: - github: https://github.com/sponsors/aunetx - ko-fi: https://ko-fi.com/aunetx If you use Ubuntu, you may want to change the radius of the corner effect for Dash-to-Dock in preferences, else you may see unpleasantly mixed radii in your dock. Note: if the extension shows an error after updating, please make sure to restart your session to see if it persists. This is due to a bug in gnome shell, which I can't fix by myself.

Extension Homepage
https://github.com/aunetx/blur-my-shell

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 3

Shexli found 4 issues that may need reviewer attention.

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

  • dbus/services.js:13
    GLib.file_get_contents(path)

EGO-P-004 error

GSettings schema XML filename must match schema id

GSettings schema filename must match `<schema-id>.gschema.xml`.

GSettings Schemas

  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.overview' path='/org/gnome/shell/extensions/blur-my-shell/overview/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.appfolder' path='/org/gnome/shell/extensions/blur-my-shell/appfolder/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.panel' path='/org/gnome/shell/extensions/blur-my-shell/panel/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.dash-to-dock' path='/org/gnome/shell/extensions/blur-my-shell/dash-to-dock/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.applications' path='/org/gnome/shell/extensions/blur-my-shell/applications/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.screenshot' path='/org/gnome/shell/extensions/blur-my-shell/screenshot/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.lockscreen' path='/org/gnome/shell/extensions/blur-my-shell/lockscreen/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.window-list' path='/org/gnome/shell/extensions/blur-my-shell/window-list/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.coverflow-alt-tab' path='/org/gnome/shell/extensions/blur-my-shell/coverflow-alt-tab/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.hidetopbar' path='/org/gnome/shell/extensions/blur-my-shell/hidetopbar/'
  • schemas/org.gnome.shell.extensions.blur-my-shell.gschema.xml
    id='org.gnome.shell.extensions.blur-my-shell.dash-to-panel' path='/org/gnome/shell/extensions/blur-my-shell/dash-to-panel/'

EGO-L-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • components/panel.js:21
    Main.panel.connect('destroy', () => isMainPanelAlive = false)

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

  • components/dash_to_dock.js:37
    this.dash_destroy_id = dash.connect('destroy', () => this.remove_dash_blur(false))
  • components/dash_to_dock.js:40
    this.dash_blur.connect('remove-dashes', () => this.remove_dash_blur())
  • extension.js:110
                this._connection.connect(
                    Main.layoutManager,
                    'startup-complete',
                    () => this._enable_components()
                )
  • extension.js:94
            this._connection.connect(Main.sessionMode, 'updated',
                () => this._on_session_mode_changed(Main.sessionMode)
            )

All Versions

Version Status
72 Unreviewed
71 Active
70 Active
69 Active
68 Active
67 Active
66 Active
65 Active
64 Active
63 Active
62 Active
61 Active
60 Active
59 Active
58 Active
57 Rejected
56 Rejected
55 Active
54 Active
53 Active
52 Active
51 Active
50 Active
49 Rejected
48 Rejected
47 Active
46 Active
45 Active
44 Active
43 Active
42 Active
41 Active
40 Rejected
39 Active
38 Active
37 Active
36 Active
35 Active
34 Active
33 Active
32 Active
31 Active
30 Rejected
29 Active
28 Active
27 Active
26 Active
25 Active
24 Active
23 Active
22 Active
21 Active
20 Active
19 Active
18 Active
17 Rejected
16 Active
15 Active
14 Active
13 Active
12 Active
11 Active
10 Active
9 Active
8 Active
7 Active
6 Active
5 Active
4 Active
3 Active
2 Active
1 Active

Previous Reviews on this Version

aunetx posted a review
About the Shexli errors / warnings: - I don't understand the errors about gschema ids; it works normally like that, maybe you would like me to split my gschema.xml in 12 different files? I can do that but it seems a bit weird, and I don't understand why we have a schemalist if that's only to put 1 schema per file! - the warnings about disconnecting the signals are wrong: - components/dash_to_dock.js:37 and components/dash_to_dock.js:40: when disabling the main component (the DashBlur object), each DashInfos object receives a signal to call DashInfos.remove_dash_blur, which disconnects all the signals that were created (line 63) - extension.js:110 and extension.js:94: the Connections class automatically disconnects the signals when calling Connections.disconnect_all; which is called in disable() at line 187 (along with all the other Connections objects, which makes sure that no signal is ever left hanging when the extension is disabled) - components/panel.js:21: about the non-disconnection of the signal, I don't know if this is really problematic, because this is meant to only ever happen on gnome-shell logout... but I don't really like it so I will find a cleaner alternate way. This will also fix the fact that we create this signal even before enabling the extension (although it only sets a boolean so it is not problematic in itself). - dbus/services.js:13: I actually just fixed this by inlining the file's content, so in next update it will be gone!