Taskbar constantly disappearing, Alt-F2 r over and over to restore it

I don't think that will work, the error happens because this.monitor is null. The or statement won't have any effect as the program will crash by attempting to access a property from null.

Mmm I don't think so. Attempting to read a property from null results in an error that crashes the program execution. That guard if statement relies on this.monitor not being null or undefined. A more proper check would be something like this:

if (this.monitor && this.monitor.index) {}

EDIT:

A perhaps safer solution:

const monitorIdx = (this.monitor && this.monitor.index) || 0;
let position = this.panelManager.panelPositions[monitorIdx] || Me.settings.get_string('panel-position');

Ok, I commented out 505 and inserted this 'safer solution' as 506/507.

Rebooted and no fireworks yet...will update if I see it again or after running for a couple of days if I don't.

Thanks so much for everyone's help looking into this!

Well, let's hope this solves the issue. I'm worried thought that an update may overwrite the extension files, so this may need to be applied again manually. Is this possible?

Unfortunately it happened again, here is the syslog info with a bit of prior context that might be related.

ul 05 11:48:50 zorin gnome-shell[1609]: cr_parser_new_from_buf: assertion 'a_buf && a_len' failed
Jul 05 11:48:50 zorin gnome-shell[1609]: cr_declaration_parse_list_from_buf: assertion 'parser' failed
Jul 05 11:48:50 zorin NetworkManager[632]: <info>  [1688572130.9769] agent-manager: agent[d21fb71b1eb5cfd8,:1.92/org.gnome.Shell.NetworkAgent/1000]: agent registered
Jul 05 11:48:50 zorin gnome-shell[1609]: cr_parser_new_from_buf: assertion 'a_buf && a_len' failed
Jul 05 11:48:50 zorin gnome-shell[1609]: cr_declaration_parse_list_from_buf: assertion 'parser' failed
Jul 05 11:48:50 zorin gnome-shell[1609]: loading user theme: /usr/share/themes/ZorinBlue-Dark/gnome-shell/gnome-shell.css
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_parser_new_from_buf: assertion 'a_buf && a_len' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_declaration_parse_list_from_buf: assertion 'parser' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: [x11gestures@joseexposito.github.io] Extension enabled
Jul 05 11:48:51 zorin gnome-shell[1609]: [x11gestures@joseexposito.github.io] Building entry point for GNOME Shell 3.38.4
Jul 05 11:48:51 zorin gnome-shell[1609]: [x11gestures@joseexposito.github.io] Connecting to Touchégg daemon
Jul 05 11:48:51 zorin touchegg[1328]: New client connection request
Jul 05 11:48:51 zorin touchegg[1328]: New client connected
Jul 05 11:48:51 zorin gnome-shell[1609]: [x11gestures@joseexposito.github.io] Hooking global switch desktop gestures
Jul 05 11:48:51 zorin gnome-shell[1609]: [x11gestures@joseexposito.github.io] Creating a new SwipeTracker336
Jul 05 11:48:51 zorin gnome-shell[1609]: [x11gestures@joseexposito.github.io] Connecting Touchégg client signals
Jul 05 11:48:51 zorin gnome-shell[1609]: [x11gestures@joseexposito.github.io] Hooking activities view switch desktop gestures
Jul 05 11:48:51 zorin gnome-shell[1609]: [x11gestures@joseexposito.github.io] Creating a new SwipeTracker336
Jul 05 11:48:51 zorin gnome-shell[1609]: [x11gestures@joseexposito.github.io] Connecting Touchégg client signals
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_parser_new_from_buf: assertion 'a_buf && a_len' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_declaration_parse_list_from_buf: assertion 'parser' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_parser_new_from_buf: assertion 'a_buf && a_len' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_declaration_parse_list_from_buf: assertion 'parser' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_parser_new_from_buf: assertion 'a_buf && a_len' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_declaration_parse_list_from_buf: assertion 'parser' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_parser_new_from_buf: assertion 'a_buf && a_len' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: cr_declaration_parse_list_from_buf: assertion 'parser' failed
Jul 05 11:48:51 zorin gnome-shell[1609]: JS ERROR: Extension zorin-taskbar@zorinos.com: TypeError: monitor is null
                                          _init@/usr/share/gnome-shell/extensions/zorin-taskbar@zorinos.com/panel.js:185:47
                                          _createPanel@/usr/share/gnome-shell/extensions/zorin-taskbar@zorinos.com/panelManager.js:417:17
                                          enable@/usr/share/gnome-shell/extensions/zorin-taskbar@zorinos.com/panelManager.js:81:34
                                          _enable@/usr/share/gnome-shell/extensions/zorin-taskbar@zorinos.com/extension.js:95:18
                                          enable@/usr/share/gnome-shell/extensions/zorin-taskbar@zorinos.com/extension.js:64:5
                                          _callExtensionEnable@resource:///org/gnome/shell/ui/extensionSystem.js:170:32
                                          _enableAllExtensions/<@resource:///org/gnome/shell/ui/extensionSystem.js:612:22
                                          _enableAllExtensions@resource:///org/gnome/shell/ui/extensionSystem.js:611:37
                                          _sessionUpdated@resource:///org/gnome/shell/ui/extensionSystem.js:639:18
                                          _emit@resource:///org/gnome/gjs/modules/core/_signals.js:133:47
                                          _sync@resource:///org/gnome/shell/ui/sessionMode.js:198:14
                                          popMode@resource:///org/gnome/shell/ui/sessionMode.js:166:14
                                          _continueDeactivate@resource:///org/gnome/shell/ui/screenShield.js:550:30
                                          deactivate/<@resource:///org/gnome/shell/ui/screenShield.js:541:44
                                          finish@resource:///org/gnome/shell/gdm/authPrompt.js:558:13
                                          finish@resource:///org/gnome/shell/ui/unlockDialog.js:870:26
                                          deactivate@resource:///org/gnome/shell/ui/screenShield.js:541:26
                                          _onUserBecameActive@resource:///org/gnome/shell/ui/screenShield.js:342:18
                                          _wakeUpScreen@resource:///org/gnome/shell/ui/screenShield.js:523:14
                                          _init/<@resource:///org/gnome/shell/ui/unlockDialog.js:559:69
                                          _countChanged@resource:///org/gnome/shell/ui/unlockDialog.js:272:18
                                          _sourceAdded/obj.sourceCountChangedId<@resource:///org/gnome/shell/ui/unlockDialog.js:201:18
                                          countUpdated@resource:///org/gnome/shell/ui/messageTray.js:718:15
                                          pushNotification@resource:///org/gnome/shell/ui/messageTray.js:779:14
                                          showNotification@resource:///org/gnome/shell/ui/messageTray.js:784:14
                                          processNotification@resource:///org/gnome/shell/ui/notificationDaemon.js:418:18
                                          _notifyForSource@resource:///org/gnome/shell/ui/notificationDaemon.js:305:16
                                          NotifyAsync@resource:///org/gnome/shell/ui/notificationDaemon.js:212:14
                                          _handleMethodCall@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:371:35
                                          _wrapJSObject/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:404:34

Well, worth a try... if I had to guess after following through the code as shown in those logs, I would say that, for whatever reason, it's taking a bit more time than usual to load the proper monitor. Specially if sometimes you don't experience this issue, that points to some sort of race condition.

So... care for another dirty attempt? :smiley:

First, you can undo the changes from before. If you did a backup file (hopefully), you can just rename that panel.js.bak to panel.js. Or whatever name you picked. Otherwise just manually change things the way they were.

This time the change I propose is in line 64 of file extension.js. Again, make a backup copy of this file before any changes. Then, proceed as follows:

- _enable();
+ Mainloop.timeout_add(2000, _enable);

The idea is to delay the call to re-enable the taskbar for 2 seconds. I'm intentionally choosing a rather long time to make sure there's enough time for the monitor to be picked up correctly, and if it works it would show that's where the issue is.
Assuming this works, you can later change this number to something lower. But let's see if this works.

I just tested this and it seems that there's a gnome-looking panel that shows up during this timeout period, some sort of backup I assume, and then the panel appears as expected.
So this is definitely a very cheap trick at best. But hopefully with this we may be able to help ZorinGroup to figure out why this even happens in the first place.

Ok, thanks, undid the previous change and added that one. Monitoring...

Happened again, seems that delay didn't help.

BTW, I have come up with a fairly reliable way to duplicate this on my system, wonder if it works for anyone else? I'm not sure yet if this depends on other things that have happened in this session though.

  1. In Power settings I have Blank Screen set to 5 minutes, no password required on the screen saver when I return.
  2. Shut the power off on my monitor and step away for more than 5 minutes
  3. When I return and power it back on the taskbar is often gone.

@caret , I do not use Gnome and therefor, I do not work with extensions very much.

But what you are describing sounds identical to a known Dash to Dock bug.
I would need to see if I can find the bug report for it... But the short of it is that after turning off the Monitor, the panel does not locate itself.
I also do not know if the Zorin Panel you are using utilizes the Dash to Dock extension source, so this may be a wild goose chase.

But... It is noteworthy to me that your description so neatly matches that bug.

Then, I'm not sure what could be causing this but I think this has to be related to detecting the monitor or updating it in the gnome shell somehow. The fact that this happens only sometimes is what made me think this was some sort of period "recovering", or waking up rather, from inactivity.

The error that Aravisian mentions, I'm sure there are quite a few similar reports in the Dash to Panel repository. But most of them are either solve or point to a very particular source as the causing the problem i.e., a program running in full-screen or something...

@Aravisian I'm interested that you do not use Gnome (Core) - you prefer the XFCE Lite variant?

I have been using Core for a few months, how difficult is it to change my installation to the XFCE Lite version? Sounds like that might fix this issue and there may be other benefits?

I have done both so I can say both of these options are fully functional:
You can reinstall Zorin OS with Zorin OS Lite - much the same way you made a LiveUSB and installed Core.
Or...
Open terminal and run:

sudo apt install -y zorin-os-lite-desktop

You will get a prompt at some point to set up LightDM Display Manager, so be mindful of the terminal while it is running.

Reinstalling the OS may or may not be easy depending on your use case. But I consider running the Terminal Command to be very easy. Once done, when you reboot, you can choose to log in on the Lite D.E. from the Login page. And this carries an added benefit of having Gnome in easy reach for testing or checking things on Zorin Gnome.

1 Like

Got it, thanks! I went with the terminal install (very easy) and am now up and running Lite. It will be interesting to see if the taskbar problem is now gone.

I like Lite so far, seems very flexible. I do notice that many windows like the file browser can only be resized from a very small area of their upper corners? Any way to fix this? Firefox doesn't have this problem?

Yes, but conditional upon whether you use the Dark Themes as I have not yet made the light theme variants. I know, I am a rotter...

sudo add-apt-repository ppa:aravisian/gtk-theming

sudo apt update

Install the Zenith Theme that matches the Zorin Theme of your choice. For example, if you use Zorin Grey Dark, then you can install

sudo apt install zenith-grey-dark

If you use a light theme - let me know and I will see what I can do.

1 Like

Ok, I'll take a look at that. I do use a dark theme.

I also just discovered using Alt + left button to move and right button to resize.

Yes, I made those specifically to address the small grab area on the XFWM4 window borders in order to increase the grab area.

1 Like

I tried the duplication steps I listed above, powering off my monitor and the good news is the taskbar is there so far when I come back.

But now when I turn the power back on, it forgets the Display resolution I selected (5120x1440) and sets it to 3840x1080 which it has marked * preferred for some reason. I have to reset it every time.

Maybe this was also the root cause for the taskbar disappearing in Core, did you ever experienced the disappearing issue with a lower resolution if you tried? I mean, everything seems to point in that direction.
Perhaps Aravisian knows more about any hardware compatibility issues with monitors?

Interesting idea, I never tried a lower resolution in Core, no reason to. As soon as I installed I set the resolution to 5120x1440 and it stuck in Core so I didn't have to think about it.

Yeah, it's hard to justify using a lower resolution than what is available.