bigbn / drop-down-terminal-x

Drop Down Terminal X extension for the Gnome Shell
https://extensions.gnome.org/extension/1509/drop-down-terminal-x/?c=38764
GNU General Public License v3.0
91 stars 9 forks source link

GNOME 3.38 support, please. Don't works on 3.38. #81

Closed Kerrung closed 4 years ago

Kerrung commented 4 years ago

Describe the bug GNOME 3.38 support, please.

Desktop (please complete the following information):

Error logs To collect logs use journalctl -a | grep 'terminal-x\|JS-ERROR'

No terminal output...

Mathok commented 4 years ago

82 fixes the problem for me

Kerrung commented 4 years ago

82 fixes the problem for me

But not fixes the problem for me on 3.38. The immediately extension hangs when opened by hotkey. Then only reboot or relog helps...

romgrk commented 4 years ago

Here is journalctl -a | grep 'terminal-x\|JS-ERROR' output on Archlinux with #82 applied: https://pastebin.com/GJJCF1eP

Steps:

Notes: The terminal is present but is not rendered. Its presence is noticeable because the space occupied by it captures mouse events to windows below it. It seems to work as expected (verified by running commands), it's just completely transparent.

The two locations mentionned in the log (lines 120:39 and 733:9) are reproduced below.

 115   │   vfunc_paint: function (paintContext) {
 116   │     const actor = this.get_actor();
 117   │ 
 118   │     if (paintContext.get_framebuffer) {
 119   │       const framebuffer = paintContext.get_framebuffer();
·120   │       const coglContext = framebuffer.get_context();
 121   │       const alloc = actor.get_allocation_box();
 122   │       actor.continue_paint(paintContext);
 123   │       let pipeline = new Cogl.Pipeline(coglContext);
 124   │       pipeline.set_color(this._color);
 125   │       framebuffer.draw_rectangle(pipeline, 0, alloc.get_height(), alloc.get_width(), alloc.get_height() - this._width);
 126   │     } else {
 127   │       const geom = actor.get_allocation_geometry();
 128   │       actor.continue_paint();
 129   │       Cogl.set_source_color(this._color);
 130   │       Cogl.rectangle(0, geom.height, geom.width, geom.height - this._width);
 131   │     }
 132   │   }
·733 ~ │         moveActor(this._windowActor, {
 734   │           y: this._windowY,
 735   │           x: this._windowX,
 736   │           onUpdate: Lang.bind(this, this._updateClip),
 737   │           scale_y: 1.0,
 738 ~ │           duration: this._openingAnimationTimeMillis / 1000.0,
 739   │           transition: 'easeOutExpo',
 740   │           onComplete: completeOpening
 741   │         });
Mathok commented 4 years ago

You are using wayland or x-session?

you could try this solution

https://github.com/zzrough/gs-extensions-drop-down-terminal/pull/245/commits/b048aef3ca9f7bd76b1cab0c7068a1b0962f41b1

Kerrung commented 4 years ago

You are using wayland or x-session?

Tried both, both don't work.

you could try this solution

https://github.com/zzrough/gs-extensions-drop-down-terminal/pull/245/commits/b048aef3ca9f7bd76b1cab0c7068a1b0962f41b1

Maybe later...

bigbn commented 4 years ago

Also getting this

vfunc_paint extension.js:158:39
JS ERROR: TypeError: Object 0x2c2197673df0 is not a subclass of GObject_Object, it's a GFundamental_Object
                                              vfunc_paint@extension.js:158:39

looking for a solution

romgrk commented 4 years ago

Can make the extension work by applying the Tweener => Clutter changes plus removing the SouthBorderEffect that is causing those warnings.

patch.txt

(I'd also take a moment to mention that I hate each year more and more Gnome developers for being incompetent asshats at maintaining a semblance of backwards compatibility or of care about anyone but themselves)

romgrk commented 4 years ago

Here is the root cause: https://gitlab.gnome.org/GNOME/gjs/-/issues/353

So the SouthBorderEffect is probably not going to work until a fix is released upstream. I'd disable it until further notice.

bigbn commented 4 years ago

fixed in d6d1a1baa1cdff67a46c25a933392e3531126641, but I need to test it in previous gnome versions before I can publish it.

bigbn commented 4 years ago

Published

romgrk commented 4 years ago

Thanks. Note that GJS fixed the bug in version 1.67.1, so I think only version 1.66.1 is affected. You could re-implement skipping that version for the border. But IMHO I don't see any difference without the border, and less code is better :)

Kerrung commented 4 years ago

@bigbn Thanks, but your extension works on GNOME 3.38 only if manually installed from your repo, but I can't install it from extension's web page.

Screenshot from 2020-10-19 14-41-34

bigbn commented 4 years ago

@bigbn Thanks, but your extension works on GNOME 3.38 only if manually installed from your repo, but I can't install it from extension's web page.

Screenshot from 2020-10-19 14-41-34

journalctl -a | grep 'terminal-x|JS-ERROR'

jonasbb commented 3 years ago

The extension does not work for me on Fedora 33 with wayland.

The log output shows:

Okt 30 10:55:08 work-hp gnome-shell[2196]: JS WARNING: [/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/extension.js 1027]: Requiring Vte but it has 2 versions available; use imports.gi.versions to pick one
Okt 30 10:55:08 work-hp gnome-shell[2196]: JS ERROR: Extension drop-down-terminal-x@bigbn.pro: TypeError: gdkDisplay is null
                                           _updateCurrentMonitor@/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/extension.js:546:37
                                           enable@/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/extension.js:271:10
                                           _updateWindowGeometry@/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/extension.js:585:22
                                           throttle/func._throttlingId<@/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/convenience.js:72:10
brknkfr commented 3 years ago
Okt 30 10:55:08 work-hp gnome-shell[2196]: JS WARNING: [/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/extension.js 1027]: Requiring Vte but it has 2 versions available; use imports.gi.versions to pick one
Okt 30 10:55:08 work-hp gnome-shell[2196]: JS ERROR: Extension drop-down-terminal-x@bigbn.pro: TypeError: gdkDisplay is null
                                           _updateCurrentMonitor@/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/extension.js:546:37
                                           enable@/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/extension.js:271:10
                                           _updateWindowGeometry@/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/extension.js:585:22
                                           throttle/func._throttlingId<@/home/jbushart/.local/share/gnome-shell/extensions/drop-down-terminal-x@bigbn.pro/convenience.js:72:10

I got the same problem on a Gentoo system (gnome-shell 3.36.5 on wayland).

Nasty workaround: Delete the extension under https://extensions.gnome.org and reinstall it there (after the gnome-shell wayland-session is started).

Maybe we have to open a new issue?