Optionally extract Worktrees into a separate side window and make Status window optional#5326
Open
armanarutiunov wants to merge 6 commits intojesseduffield:masterfrom
Open
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
PR Description
Disclaimer: this PR is completely clauded and as I don't have experience with go, I can't really guarantee code quality, so apologies in advance.
Motivation
I'm a heavy worktree user and one thing I wanted improved in the app is visibility of all the worktrees and the currently selected one. Right now the worktree menu is buried in the second window group as a separate tab. What I always wanted is to have a dedicated worktree window group.
While thinking about it I realised if I was to add a separate group, the total group count would be 6 which can be a bit too tight on smaller screens. Plus not everybody is using worktrees and for some it would be a useless change that occupies precious terminal real estate.
So, I decided to add 2 config flags, one for showing the worktree group as a separate group, second one is for hiding the very first status group to free up some space in case user doesn't care about that group. Both are
falseby default.Implementation (claude generated)
Two new independent gui config options:
When both are enabled, the layout becomes: Worktrees[1] → Files[2] → Branches[3] → Commits[4] → Stash[5] — preserving the default 5-key jump binding.
When worktreesInSeparateGroup is enabled without hiding status, there are 6 windows. The jump-to-block controller auto-extends keybindings (adding key "6") so no manual config change is needed.
Key changes:
Screenshots
Please check if the PR fulfills these requirements
go generate ./...)