Feature: Hide menu item if under a threshold #196
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
what
I usually hit a keyboard shortcut to open up CodexBar and check on whats going on - so having it in the Menu Bar all the time is a bit much. Unless I want to check (or am about to hit a limit) I don't really need to see the status item. So, might as well hide it?
other implicit behavior
I kept the status item showing on app launch for 15s to confirm the app opened - which, anecdotally, is just long enough for me to check on the status of things, tab away, and forget about things for a few minutes at a time.
visuals
While CodexBar is open to show details, the status item will also stay visible.
Video of CodexCode showing and hiding in response to the key combo
https://github.com/user-attachments/assets/09dd8096-2313-43b4-a209-36846eb865a6
There's a menubar animation when it shows and hides. Claude claims its from macOS, and I think that's true. But, It's a bit weird to see all the time. I did a quick pass of "what if I hide the view within the status item instead of the status item itself?" but that looked worse.
Here's a screenshot of the settings page to configure all this:

I'm not totally sold on this page - and happy to change anything based on feedback, but here's whats on my list of things that are questionable:
implementation notes
Although I had Claude do the first pass of things, there were enough "ehhhh…" that I spent some time talking it through most of the implementation to be a bit more idiomatic. Some examples of Opus falling short:
didSetof the data store instead of aBindingand clamping in asetuserDefaults.register(defaults:)existing without API docs being thrown at it (but to be fair… most people forget about this API as well 🙈)