fix(ux): cache stdin queries on startup (remove startup delay) #2173
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.
TLDR
This removes the vastly unpopular load screen we introduced in the previous version in favor of caching.
The story so far...
Zellij queries the terminal emulator for pixel/cell ratio values as well as default colors. We use this information mostly for responding to queries from apps that run inside panes. Since the terminal emulator responds through STDIN, we used to just ignore whatever the user typed for the first 0.5 seconds the app ran.
When some especially fast-reflexed users encountered this problem, we decided to add a loading screen for those 0.5 seconds to indicate that users should wait a moment before starting to type.
This too wasn't very popular, since even though now we were being open about this annoying hack, it still didn't feel nice to encounter this 0.5 second text flash every time we open a terminal.
With this change, we do this for the first time every version and then cache the result. To bust the cache, we would need to delete the file manually (or just delete the whole of
~/.cache/zellij
).Thank you for your patience :)