forge-ext / forge

Forge - Tiling and Window Manager for Gnome-Shell
GNU General Public License v3.0
906 stars 51 forks source link

bug: tab decorator disappears randomly #303

Open cgranade opened 11 months ago

cgranade commented 11 months ago

Description

Randomly, with no obvious user interaction to cause it, tab bars will disappear from one or both monitors in a dual-monitor configuration. Instead, a blank space will appear above windows in the tab group, with the desktop background below showing through.

The problem can be solved by disabling Forge from extensions.gnome.org and then re-enabling it, but this causes all tab groups to forget their placement, and requires rebuilding the window layout from scratch.

Problem Explanation

I apologize that I have not yet been able to isolate conditions under which the bug reliably occurs. At least once, the error occurred immediately after launching a Wine-based application.

Details

Mark with [ ] all that applies:

It happens with any application?

'

It happens only on one computer?

It happens only with some specific gnome configuration?

It happens only with some specific extension installed?

Diagnostics

Under what conditions does it happen?

Fill in all information that applies:

Environment

Display Setup

Displays:

  1. 2 x 4k

Screenshots

If applicable, add screenshots to help explain your problem:

image

Screenshot 1 description

A window layout after tab bars have disappeared.

Screenshot 2 description

...

Output and Logs

Also if possible, please provide latest logs like:

Gnome Logs

Command: journalctl --since='1 hour ago' --follow /usr/bin/gnome-shell

Oct 24 12:46:37 ... gnome-shell[5018]: meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed Oct 24 12:46:37 ... gnome-shell[5018]: clutter_actor_insert_child_below: assertion 'sibling == NULL || (CLUTTER_IS_ACTOR (sibling) && sibling->priv->parent == self)' failed Oct 24 12:46:37 ... gnome-shell[5018]: clutter_actor_insert_child_below: assertion 'sibling == NULL || (CLUTTER_IS_ACTOR (sibling) && sibling->priv->parent == self)' failed Oct 24 12:46:37 ... gnome-shell[5018]: clutter_actor_insert_child_below: assertion 'sibling == NULL || (CLUTTER_IS_ACTOR (sibling) && sibling->priv->parent == self)' failed Oct 24 12:46:37 ... gnome-shell[5018]: clutter_actor_insert_child_below: assertion 'sibling == NULL || (CLUTTER_IS_ACTOR (sibling) && sibling->priv->parent == self)' failed Oct 24 12:46:37 ... gnome-shell[5018]: clutter_actor_insert_child_below: assertion 'sibling == NULL || (CLUTTER_IS_ACTOR (sibling) && sibling->priv->parent == self)' failed Oct 24 12:46:37 ... gnome-shell[5018]: clutter_actor_insert_child_below: assertion 'sibling == NULL || (CLUTTER_IS_ACTOR (sibling) && sibling->priv->parent == self)' failed Oct 24 12:46:37 ... gnome-shell[5018]: clutter_actor_insert_child_below: assertion 'sibling == NULL || (CLUTTER_IS_ACTOR (sibling) && sibling->priv->parent == self)' failed Oct 24 12:46:37 ... gnome-shell[5018]: clutter_actor_insert_child_below: assertion 'sibling == NULL || (CLUTTER_IS_ACTOR (sibling) && sibling->priv->parent == self)' failed Oct 24 12:46:37 ... gnome-shell[5018]: clutter_actor_insert_child_below: assertion 'sibling == NULL || (CLUTTER_IS_ACTOR (sibling) && sibling->priv->parent == self)' failed Oct 24 12:47:02 ... gnome-shell[5018]: Can't update stage views actor [:0x561e75e757e0] is on because it needs an allocation. Oct 24 12:47:02 ... gnome-shell[5018]: Can't update stage views actor [:0x561e75a6d320] is on because it needs an allocation. Oct 24 12:48:56 ... gnome-shell[5018]: Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x280000b


#### Extension Configuration

**Command:** `dconf dump /org/gnome/shell/extensions/forge/`

``` bash
$ dconf dump /org/gnome/shell/extensions/forge/
[/]
css-last-update=uint32 37
focus-border-toggle=false
stacked-tiling-mode-enabled=false
tabbed-tiling-mode-enabled=true

[keybindings]
con-split-horizontal=['<Super>z']
con-split-layout-toggle=['<Super>g']
con-split-vertical=['<Super>v']
con-stacked-layout-toggle=['<Shift><Super>s']
con-tabbed-layout-toggle=['<Shift><Super>t']
con-tabbed-showtab-decoration-toggle=['<Control><Alt>y']
focus-border-toggle=['<Super>x']
mod-mask-mouse-tile='None'
prefs-tiling-toggle=['<Super>w']
window-focus-down=['<Super>j']
window-focus-left=['<Super>h']
window-focus-right=['<Super>l']
window-focus-up=['<Super>k']
window-gap-size-decrease=['<Control><Super>minus']
window-gap-size-increase=['<Control><Super>plus']
window-move-down=['<Shift><Super>j']
window-move-left=['<Shift><Super>h']
window-move-right=['<Shift><Super>l']
window-move-up=['<Shift><Super>k']
window-resize-bottom-decrease=['<Shift><Control><Super>i']
window-resize-bottom-increase=['<Control><Super>u']
window-resize-left-decrease=['<Shift><Control><Super>o']
window-resize-left-increase=['<Control><Super>y']
window-resize-right-decrease=['<Shift><Control><Super>y']
window-resize-right-increase=['<Control><Super>o']
window-resize-top-decrease=['<Shift><Control><Super>u']
window-resize-top-increase=['<Control><Super>i']
window-snap-center=['<Alt><Super>c']
window-snap-one-third-left=['<Control><Alt>d']
window-snap-one-third-right=['<Control><Alt>g']
window-snap-two-third-left=['<Control><Alt>e']
window-snap-two-third-right=['<Control><Alt>t']
window-swap-down=['<Control><Super>j']
window-swap-last-active=['<Super>Return']
window-swap-left=['<Control><Super>h']
window-swap-right=['<Control><Super>l']
window-swap-up=['<Control><Super>k']
window-toggle-always-float=['<Shift><Super>c']
window-toggle-float=['<Super>c']
workspace-active-tile-toggle=['<Shift><Super>w']

Enabled Extensions

Command: gnome-extensions list --enabled --details

$ gnome-extensions list --enabled --details
user-theme@gnome-shell-extensions.gcampax.github.com
  Name: User Themes
  Description: Load shell themes from user directory.
  Path: /home/cgranade/.local/share/gnome-shell/extensions/user-theme@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Version: 51
  State: ENABLED

tailscale-status@maxgallup.github.com
  Name: Tailscale Status
  Description: Manage Tailscale connections and check status from desktop read more at https://github.com/maxgallup/tailscale-status/blob/main/README.md
  Path: /home/cgranade/.local/share/gnome-shell/extensions/tailscale-status@maxgallup.github.com
  URL: https://github.com/maxgallup/tailscale-status
  Version: 20
  State: ENABLED

Vitals@CoreCoding.com
  Name: Vitals
  Description: A glimpse into your computer's temperature, voltage, fan speed, memory usage, processor load, system resources, network speed and storage stats. This is a one stop shop to monitor all of your vital sensors. Uses asynchronous polling to provide a smooth user experience. Feature requests or bugs? Please use GitHub.
  Path: /home/cgranade/.local/share/gnome-shell/extensions/Vitals@CoreCoding.com
  URL: https://github.com/corecoding/Vitals
  Version: 61
  State: ENABLED

forge@jmmaranan.com
  Name: Forge
  Description: Tiling and window manager for GNOME

Please report bugs/issues on https://github.com/forge-ext/forge/issues
  Path: /home/cgranade/.local/share/gnome-shell/extensions/forge@jmmaranan.com
  URL: https://github.com/forge-ext/forge
  Version: 72
  State: ENABLED

ding@rastersoft.com
  Name: Desktop Icons NG (DING)
  Description: Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .
  Path: /usr/share/gnome-shell/extensions/ding@rastersoft.com
  URL: https://gitlab.com/rastersoft/desktop-icons-ng
  State: ENABLED

ubuntu-appindicators@ubuntu.com
  Name: Ubuntu AppIndicators
  Description: Support app indicators and legacy tray icons in top panel, as the default Ubuntu experience. System update of AppIndicator and KStatusNotifierItem Support extension.
  Path: /usr/share/gnome-shell/extensions/ubuntu-appindicators@ubuntu.com
  URL: https://github.com/ubuntu/gnome-shell-extension-appindicator
  State: ENABLED

ubuntu-dock@ubuntu.com
  Name: Ubuntu Dock
  Description: A dock for the Gnome Shell, default Ubuntu experience. This extension is a modified version of Dash To Dock with different defaults. Dash To Dock can be installed to replace it and give more (but unsupported) configuration options.
  Path: /usr/share/gnome-shell/extensions/ubuntu-dock@ubuntu.com
  URL: https://micheleg.github.io/dash-to-dock/
  Original author: micxgx@gmail.com
  Version: 79
  State: ENABLED

Graphics information

Command: lshw -C display

$ lshw -C display
  *-display
       description: VGA compatible controller
       product: TU104 [GeForce RTX 2080 SUPER]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:0b:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:158 memory:fb000000-fbffffff memory:d0000000-dfffffff memory:e0000000-e1ffffff ioport:e000(size=128) memory:c0000-dffff
  *-graphics
       product: EFI VGA
       physical id: 1
       logical name: /dev/fb0
       capabilities: fb
       configuration: depth=32 resolution=1024,768

Monitor information

Command: xrandr --properties | grep -vE '(x|\s|\.|\d)+$'

$ xrandr --properties | grep -vE '(x|\s|\.|\d)+$'
Screen 0: minimum 8 x 8, current 7680 x 2160, maximum 32767 x 32767
DP-0 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 697mm x 392mm
        ...
        supported: 4
        range: (0, 65535)
        supported: DisplayPort
        supported: 0, 1
DP-1 disconnected (normal left inverted right x axis y axis)
        supported: 4
        range: (0, 65535)
        supported: TMDS
        supported: 0, 1
HDMI-0 disconnected (normal left inverted right x axis y axis)
        supported: 4
        range: (0, 65535)
        supported: TMDS
        supported: 0, 1
DP-2 disconnected (normal left inverted right x axis y axis)
        supported: 4
        range: (0, 65535)
        supported: DisplayPort
        supported: 0, 1
DP-3 disconnected (normal left inverted right x axis y axis)
        supported: 4
        range: (0, 65535)
        supported: TMDS
        supported: 0, 1
DP-4 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 697mm x 392mm
                ...
        supported: 4
        range: (0, 65535)
        supported: DisplayPort
        supported: 0, 1
DP-5 disconnected (normal left inverted right x axis y axis)
        supported: 4
        range: (0, 65535)
        supported: TMDS
        supported: 0, 1
jmmaranan commented 11 months ago

Hi @cgranade - thanks for the report. Based on the extension info list you had provided, Forge is at v72. That is under GNOME 44. Our main development branch is for GNOME 45.

Few questions for you since some of the bug report form has been left out:

cgranade commented 11 months ago

Apologies for leaving some of the info blank, I wasn't sure how to fill everything out given it seems quite random.

Few questions for you since some of the bug report form has been left out:

* What applications under wine does it break?

The one I noticed today was that when I ran Scrivener, it caused all tab bars on one monitor to vanish.

* Does it break in other non-wine apps?

Yes, but it was a few days ago and I forgot to note which one, sorry. I'll update with more info if it happens again, thanks for your patience with incomplete details.

* What distro are you on?

This is on Ubuntu 23.04 x86_64.

asjur commented 11 months ago

Not sure if it is any helpful but I am experiencing the exact same behaviour under Arch running GNOME 45 and Forge 77. It's a fresh install and it worked for a few minutes and then suddenly the tab decorator permanently disappeared.

cgranade commented 11 months ago

Just a quick addendum, but I recently ran into the issue again when starting a new Zoom meeting. Running Zoom itself was fine, but specifically starting a call made tab bars disappear.

rdong8 commented 10 months ago

I'm having the same issue, also dual monitor. The tab decoration actually appears on the next workspace.

Hypnotist1148 commented 8 months ago

Hello, I am having the same issue, I am not using wine, and this is a fresh manjaro installation. My journal tells me this everytime is hide or unhide the tab bar:

Jan 19 19:58:22 gnome-shell[2138]: Object St.Label (0x55da8ba95890), has been already disposed — impossible to set any property on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs. == Stack trace for context 0x55da85dad660 ==

0 7ffc6d3c33f0 b file:///usr/share/gnome-shell/extensions/window-list@gnome-shell-extensions.gcampax.github.com/extension.js:107 (1e89bff50240 @ 132)

                                        #1   7ffc6d3c4a40 b   file:///usr/share/gnome-shell/extensions/forge@jmmaranan.com/lib/extension/window.js:930 (c08ca030a10 @ 138)
                                        #2   7ffc6d3c4b10 b   file:///usr/share/gnome-shell/extensions/forge@jmmaranan.com/lib/extension/tree.js:1236 (c08ca03ac90 @ 122)
                                        #3   7ffc6d3c4c10 b   self-hosted:203 (16eb4c96a60 @ 245)
                                        #4   55da85e77948 i   file:///usr/share/gnome-shell/extensions/forge@jmmaranan.com/lib/extension/tree.js:1232 (c08ca03abf0 @ 104)
                                        #5   55da85e778a0 i   file:///usr/share/gnome-shell/extensions/forge@jmmaranan.com/lib/extension/tree.js:1218 (c08ca03aba0 @ 111)
                                        #6   55da85e77818 i   file:///usr/share/gnome-shell/extensions/forge@jmmaranan.com/lib/extension/window.js:1125 (c08ca030ba0 @ 43)
                                        #7   55da85e77788 i   resource:///org/gnome/shell/ui/init.js:21 (16eb4c70ba0 @ 48)

Jan 19 19:58:22 gnome-shell[2138]: clutter_text_get_editable: assertion 'CLUTTER_IS_TEXT (self)' failed Jan 19 19:58:22 gnome-shell[2138]: clutter_text_get_text: assertion 'CLUTTER_IS_TEXT (self)' failed Jan 19 19:58:22 gnome-shell[2138]: clutter_text_set_text: assertion 'CLUTTER_IS_TEXT (self)' failed

athamour1 commented 4 months ago

Hello, I also have the same issue, and I have seen that in multiple environments, I use gnome 45 and the latest forge version and with random application sometimes the Stacked Header is disappearing. I'm not sure how to help here, if you need any help to debug it, please tell me how to pinpoint the issue in my logs.