Review of "PaperWM" version 50.0.1 (148)

Details Page Preview

Tiling window manager with a twist

Extension Homepage
https://github.com/paperwm/PaperWM

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 4 warning 7

Shexli found 11 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 9 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • tiling.js:579
    console.warn("invalid preferredWidth value")
  • tiling.js:589
    console.warn("invalid preferredWidth unit:", `'${prop.unit}'`, "(should be 'px' or '%')")
  • tiling.js:760
    console.warn("Bail at fixpoint, max tries reached")
  • tiling.js:950
    console.warn(`clone/window position-changed recursive call: ${w.title}`)
  • tiling.js:2293
    console.warn(`MONITORS_CHANGED: no primary monitor - 'layout' on spaces call ${called}`)
  • tiling.js:3459
    console.warn("window already registered", metaWindow.title)
  • tiling.js:4112
                console.warn("#winprops", `overwriteSpace with index ${overwriteSpace} does not exist. \
    Opening "${metaWindow?.title}" on current space.`)
  • tiling.js:156
    console.error(e)
  • tiling.js:4051
    console.error("#winprops", `${overwriteSpace} is not a valid index. Ignoring.`)

EGO-C49-003 error

extensions targeting GNOME 49 must not call maximize or unmaximize with Meta.MaximizeFlags

This extension explicitly targets GNOME Shell 49 but still passes `Meta.MaximizeFlags` to `maximize()` or `unmaximize()`.

Meta.Window

  • tiling.js:3516
    unmaximize(metaWindow, Meta.MaximizeFlags.BOTH)
  • tiling.js:4160
    unmaximize(metaWindow, Meta.MaximizeFlags.BOTH)
  • tiling.js:4799
    unmaximize(metaWindow, Meta.MaximizeFlags.BOTH)
  • tiling.js:4845
    unmaximize(metaWindow, Meta.MaximizeFlags.BOTH)
  • tiling.js:4866
    unmaximize(metaWindow, Meta.MaximizeFlags.BOTH)
  • tiling.js:4886
    unmaximize(metaWindow, Meta.MaximizeFlags.BOTH)
  • tiling.js:4907
    unmaximize(metaWindow, Meta.MaximizeFlags.BOTH)
  • tiling.js:4961
    unmaximize(metaWindow, Meta.MaximizeFlags.BOTH)

EGO-C49-004 error

extensions targeting GNOME 49 must not call Meta.Window.get_maximized

This extension explicitly targets GNOME Shell 49 but still calls removed `Meta.Window.get_maximized()`.

Meta.Window

  • tiling.js:3420
    metaWindow.get_maximized()
  • tiling.js:3429
    metaWindow.get_maximized()

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

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.paperwm.gschema.xml
    id='org.gnome.shell.extensions.paperwm.keybindings' path='/org/gnome/shell/extensions/paperwm/keybindings/'
  • schemas/org.gnome.shell.extensions.paperwm.gschema.xml
    id='org.gnome.shell.extensions.paperwm.workspace' path=''
  • schemas/org.gnome.shell.extensions.paperwm.gschema.xml
    id='org.gnome.shell.extensions.paperwm.workspacelist' path='/org/gnome/shell/extensions/paperwm/workspaces/'

EGO-P-002 error

GSettings schema path must use /org/gnome/shell/extensions base

GSettings schema path must start with `/org/gnome/shell/extensions`.

GSettings Schemas

  • schemas/org.gnome.shell.extensions.paperwm.gschema.xml
    id='org.gnome.shell.extensions.paperwm.workspace' path=''

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

  • config/user.js
  • virtTiling.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.

Destroy all objects

  • navigator.js:300
    this.takeHint = new St.Label({ style_class: 'take-window-hint' })

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

  • app.js:13
    Tracker = Shell.WindowTracker.get_default()

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

  • background.js:459
    this._interfaceSettings = new Gio.Settings({ schema_id: INTERFACE_SCHEMA })
  • background.js:451
    this._settings = new Gio.Settings({ schema_id: settingsSchema })
  • navigator.js:300
    this.takeHint = new St.Label({ style_class: 'take-window-hint' })

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

  • navigator.js:91
    this.signals.connect(this.actor, 'key-press-event', this._keyPressEvent.bind(this))
  • navigator.js:92
    this.signals.connect(this.actor, 'key-release-event', this._keyReleaseEvent.bind(this))
  • topbar.js:376
                this.tooltip_parent.connect('enter-event', _icon => {
                    this._updateTooltipPosition(this.tooltip_x_point);
                    this.updateTooltipText();
                    tt.show();
    
                    // alignment needs to be set after actor is shown
                    tt.clutter_text
  • topbar.js:384
                this.tooltip_parent.connect('leave-event', (_icon, _event) => {
                    if (!this.has_pointer) {
                        tt.hide();
                    }
                })

All Versions

Version Status
50.0.1 (148) Active
50.0.0 (147) Rejected
49.0.2 (146) Active
49.0.1 (145) Active
49.0.0 (144) Rejected
49.0.0 (143) Active
48.0.3 (142) Active
48.0.2 (141) Active
44.18.1 (140) Active
44.18.0 (139) Rejected
48.0.1 (138) Active
48.0.0 (137) Active
47.1.1 (136) Active
47.1.0 (135) Active
47.1.0 (134) Active
47.0.0 (133) Active
46.17.1 (132) Active
46.17.0 (131) Active
46.16.1 (130) Active
46.16.0 (129) Rejected
46.15.1 (128) Active
46.15.0 (127) Active
46.14.0 (126) Active
46.13.8 (125) Active
46.13.7 (124) Active
46.13.6 (123) Active
46.13.5 (122) Active
46.13.4 (121) Active
46.13.3 (120) Inactive
46.13.2 (119) Active
46.13.1 (118) Active
46.13.0 (117) Active
46.12.1 (116) Active
46.12.0 (115) Active
46.11.2 (114) Active
46.11.1 (113) Active
46.10.2 (112) Active
46.10.1 (111) Active
46.10.0 (110) Rejected
46.9.1 (109) Active
46.9.0 (108) Active
46.8.1 (107) Active
46.8.0 (106) Rejected
46.7.0 (105) Active
46.6.7 (104) Active
46.6.6 (103) Active
46.6.5 (102) Active
44.18.0 (101) Active
46.6.4 (100) Active
46.6.3 (99) Inactive
46.6.2 (98) Rejected
46.6.1 (97) Rejected
46.6.0 (96) Inactive
46.5.1 (95) Inactive
46.5.0 (94) Rejected
46.4.1 (93) Inactive
46.4.0 (92) Inactive
46.3.2 (91) Inactive
46.3.1 (90) Inactive
46.3.0 (89) Inactive
46.2.0 (88) Inactive
46.1.0 (87) Inactive
46.0.0 (86) Inactive
46.0.0 (85) Inactive
45.14.0 (84) Active
45.13.0 (83) Inactive
45.12.2 (82) Inactive
45.12.1 (81) Inactive
45.12.0 (80) Inactive
45.11.0 (79) Inactive
45.10.1 (78) Inactive
45.10.0 (77) Inactive
45.9.2 (76) Inactive
45.9.1 (75) Inactive
45.9.0 (74) Inactive
45.8.1 (73) Inactive
45.8.0 (72) Inactive
44.17.0 (71) Active
45.7.0 (70) Inactive
44.16.0 (69) Inactive
45.6.0 (68) Inactive
44.15.2 (67) Inactive
45.5.0 (66) Inactive
45.4.2 (65) Inactive
44.15.1 (64) Inactive
44.15.0 (63) Inactive
45.4.1 (62) Inactive
44.14.0 (61) Inactive
45.4.0 (60) Inactive
59 Inactive
58 Rejected
57 Inactive
56 Inactive
55 Inactive
54 Inactive
53 Inactive
52 Inactive
51 Inactive
50 Inactive
49 Inactive
48 Inactive
47 Inactive
46 Inactive
45 Inactive
44 Inactive
43 Rejected
42 Rejected
41 Inactive
40 Inactive
39 Inactive
38 Inactive
37 Inactive
36 Inactive
35 Inactive
34 Inactive
33 Inactive
32 Inactive
31 Inactive
30 Inactive
29 Inactive
28 Inactive
27 Inactive
26 Inactive
25 Inactive
24 Inactive
23 Inactive
22 Inactive
21 Inactive
20 Inactive
19 Inactive
18 Rejected
17 Inactive
16 Inactive
15 Inactive
14 Inactive
13 Inactive
12 Inactive
11 Inactive
10 Inactive
9 Inactive
8 Inactive
7 Inactive
6 Rejected
5 Inactive
4 Rejected
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

fmuellner active