jordanbaird / Ice

Powerful menu bar manager for macOS
https://icemenubar.app
GNU General Public License v3.0
14.65k stars 268 forks source link

[Bug]: Dato menu loads in far left corner instead of being anchored to icon in far right corner #169

Closed autonome closed 1 month ago

autonome commented 5 months ago

Check existing issues

Description

The menu loads on the far left, but should load on the far right.

Steps to Reproduce

  1. Install Dato: https://sindresorhus.com/dato
  2. Open the Dato menu

Ice Version

0.9.0

macOS Version

14.5

Screenshots

CleanShot 2024-06-19 at 17 31 14@2x

luckman212 commented 5 months ago

I have this too. Same OS, same app (although I am using the Setapp version)

luckman212 commented 5 months ago

Running 0.10b5 now, and still having the issue where "new" icons (not really new, just re-appearing ones that I've moved out from the "always-hidden" section before) are being placed at the end of the line and thus not visible when I need them to be.

It also affects menubar icons that are added by Hammerspoon, of which I have several that appear and disappear depending on various things happening on my Mac.

I was wondering if there was a hidden setting to control this behavior somewhere that I'm not seeing in the UI?

I see that some of the other related issues around this are now closed, so I'm hopeful there are still some more changes coming... probably https://github.com/jordanbaird/Ice/issues/6 is the correct one to follow?

I'll link these here just for reference:

jordanbaird commented 5 months ago

@luckman212 #6 would be the correct one to follow, yes. That and #26, which will enable Ice to remember the locations of existing items.

luckman212 commented 5 months ago

Is this problem unique to Dato.app? I have other menubar items e.g. DatWeatherDoe whose text also changes periodically, yet their position remains correct. For some reason, Dato constantly "jumps" to the back of the line. Is there a reason to ask @sindresorhus if he's doing something unorthodox that would cause this behavior?

jordanbaird commented 5 months ago

@luckman212 Does Dato dynamically create its item(s) during runtime? As in, it might add and remove them while it's still running? If so, I think it's following the default behavior, which deletes the item's stored position when the it is removed. I had to manually work around it with Ice by caching the position before removing the item and storing it again afterward.

luckman212 commented 5 months ago

Yes, it definitely adds/removes elements during its lifetime. It displays upcoming calendar events so is constantly changing. It's not open source so I am not sure what methods are being used, but I will say, when Ice is not running, Dato's menubar position stays intact.

luckman212 commented 4 months ago

I just installed 0.10.1 and after the dialog appeared telling me it had to trash my prefs due to corruption, it seems the Dato menuitem is staying where I put it now! I didn't see this mentioned in the release notes anywhere but—has something changed here that might have caused this to be fixed? Or was it the recreation of the prefs you think?

Strangely, now my "WiFi" icon seems to be suffering from the same problem- it keeps disappearing and getting moved to the hidden section, even after dragging it back.

edit: Dato is misbehaving again.

jordanbaird commented 4 months ago

@luckman212 Hmm...I can't think of any reason why it would be working now when it wasn't before. Strange that your WiFi icon is doing this. Is it the standard macOS WiFi icon, or do you use a third party app?

luckman212 commented 4 months ago

Just the standard WiFi icon. I quit Ice and relaunched it, and so far it's working again. Maybe a fluke. Where does Ice store its preferences for the icon ordering? (just in case I want to manually trash it again) I glanced over the source but couldn't spot it.

edit: I just checked and the behavior is back to the way it was before (Dato always appearing at the far left end in the Hidden section).

luckman212 commented 4 months ago

For anyone having this problem, I found a temporary workaround inside Dato itself:

If you go to Dato's Settings → Events and click Customize, and then scroll all the way down, there is a toggle called Show menu bar item even when there are no upcoming events:


If enabled, a small "diamond" appears as a placeholder. This seems to allow Ice and/or macOS to preserve the menuitem ordering for the Dato meeting reminders.

autonome commented 3 months ago

FYI the problem originally reported in this issue no longer seems to occur in latest Ice.

luckman212 commented 3 months ago

@autonome Was it an Ice update or a Dato update (or both) that fixed the issue?

autonome commented 3 months ago

Good question, I don't know! I had updated Ice recently, so I assumed it was that. However, I didn't roll back and test.

On Wed, Aug 28, 2024, at 15:21, Luke Hamburg wrote:

@autonome https://github.com/autonome Was it an Ice update or a Dato update (or both) that fixed the issue?

— Reply to this email directly, view it on GitHub https://github.com/jordanbaird/Ice/issues/169#issuecomment-2315304908, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMHN7TUPQJT47OPSF7SLDZTXFGFAVCNFSM6AAAAABJSJPLPGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMJVGMYDIOJQHA. You are receiving this because you were mentioned.Message ID: @.***>

luckman212 commented 3 months ago

I just tested it, still broken for me: Ice 0.11.0-beta1, Dato v5.3.6 Setapp.

If I don't use the workaround above then new calendar reminders are inserted at the far left, hidden in the Ice bar... so I never see them.

autonome commented 3 months ago

I'm specifically talking about the issue that I reported in the first comment here - the menu loading on the right.

I'm seeing that Dato's meeting reminders are continually moved to the Always-Hidden section even though I move them back. But that's different entirely, and should be a separate issue probably.

luckman212 commented 3 months ago

@autonome I believe instead of opening a new issue, https://github.com/jordanbaird/Ice/issues/119 should just be re-opened. I understand that we are waiting for the 0.12.x milestone for this, but IMO that issue should still be marked Open, if not at least to avoid people re-posting the same problem.

autonome commented 3 months ago

I agree, but is up to @jordanbaird really.

jordanbaird commented 3 months ago

@luckman212 @autonome It's not just Dato that has this problem. Honestly, I've lost count of how many nearly identical issues have been opened, but for different apps. I've been closing them since the "fix" for all of them is the profiles feature. I have already created a discussion (#298) that details this, but maybe it would be good to convert it into an issue and pin it.

jordanbaird commented 1 month ago

Seems I lost track of this issue. I'm confident that this was a bug with Dato. Ice doesn't do anything to change where an item's menu appears. Regardless, as it seems to be fixed now, I'm going to close this.

luckman212 commented 1 month ago

@jordanbaird Sorry to throw cold water on this, but...

"I'm confident that this was a bug with Dato."

Any chance you could reach out to @sindresorhus about that, because it's an awfully popular app, and seems a shame that it appears to have this incompatibility with arguably the best menubar-taming app on macOS these days. I've messaged him about it, but as the developer of the app I'm sure your message would carry more weight.

"as it seems to be fixed now, I'm going to close this."

I can't find any evidence that this is fixed. I'm using macOS 15.0.1 (also tried 15.1b6) with Ice 0.11.9 + Dato 5.3.7, and I can't get this to behave properly at all unless I enable Dato's "diamond item workaround" mentioned a little further up in this thread.

The symptom is: upcoming reminders completely disappear. They are not visible in the menu bar, or in Ice's hidden sections either. They also do not appear in the Ice settings dialog under Menu Bar Layout. They're simply invisible until I quit Ice completely, at which point they appear.

jordanbaird commented 1 month ago

@luckman212 This issue is specifically for Dato's menu appearing at the far left of the screen, and is not related to the issue with its menu bar item appearing in the always-hidden section. That issue is due to the lack of profiles, and is tracked as a feature request in #26. Unfortnuately, I still haven't had time to implement it, as I've been focusing on fixing lots of other bugs, especially usability issues that have popped up since the Sequoia release.

I'm going off of what @autonome said here as evidence that this is fixed.

As for the behavior your referring to, this would not be a bug with Dato, nor is it a bug with Ice. It's simply due to the way macOS treats new menu bar items. Ice just doesn't have a feature to compensate for this, which is why #26 is a feature request and not a bug report (see #298 for more details). Regardless, I don't think there's anything for Sindre to do on his end, as Dato needs to be able to create new menu bar items on the fly. It's on Ice to keep track of them.

luckman212 commented 1 month ago

Thanks for that, ok I'll stop asking about this one. Sounds like it's on your radar and we just need to have patience and a bit of faith.

jordanbaird commented 1 month ago

@luckman212 No worries. I'm hoping to get started on it soon, barring any unforseen circumstances.