feat(tabs): shell picker in caret dropdown + WSL home fix + dropdown overflow fixes#43
Open
egertaia wants to merge 6 commits into
Open
feat(tabs): shell picker in caret dropdown + WSL home fix + dropdown overflow fixes#43egertaia wants to merge 6 commits into
egertaia wants to merge 6 commits into
Conversation
…ehmam#34) Replace the Unicode-glyph toolbar controls (+, caret, split glyphs, x) with stroke-based inline SVG icons, consolidate the two split buttons into a single Layout split-button with a dropdown, and fix the new-tab dropdown that was invisible. - New `icons.tsx`: small `currentColor` SVG icons (add, split, split-down, close, caret). - `SurfaceTabBar`: icon split-buttons (New / Layout / Close); dropdown menus rendered via portal so they aren't clipped. - Dropdown bug: `.surface-tab-bar` is height:28px + overflow:hidden, so the absolutely-positioned menu (top:30px) was clipped and never painted — rendering the menu in a portal fixes it. - Restyle the control cluster in `splitpane.css` (rounded hover pills, accent colors). Behavior, IPC, and store are unchanged.
… menu - SurfaceTabBar: fetch available shells and show them in the ▾ dropdown (PowerShell, WSL, cmd, etc.) above Browser/Markdown - PaneWrapper: load shells via window.wmux.system.getShells() on mount, pass shell command to addSurface so each tab spawns the right PTY - splitpane.css: change surface-tab-bar overflow hidden→visible so the absolute-positioned dropdown is no longer clipped by its parent Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
wsl.exe spawned with a Windows cwd mounts it as /mnt/c/... which puts you in the Windows filesystem. Passing --cd ~ overrides that and starts WSL in the Linux home directory. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…panes Render the new-surface menu via createPortal at document.body with position:fixed, anchored to the caret button's getBoundingClientRect. This lets it float above all pane boundaries regardless of split layout. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
Dropdowns are also fixed in this PR: #38 |
# Conflicts: # src/renderer/components/SplitPane/SurfaceTabBar.tsx # src/renderer/styles/splitpane.css
f260ad4 to
60dc862
Compare
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.
Summary
Adds a shell picker to the new-tab caret dropdown, plus a WSL home-directory fix.
This PR's own changes
▾dropdown: the caret next to+lists all detected shells (PowerShell 7, Windows PowerShell, WSL, Command Prompt) so you can open each in its own tab. Falls back to a generic Terminal entry if none are detected. Each shell spawns a PTY with its specific executable.wsl.exewas being spawned with a Windows CWD, which made it mount into/mnt/c/.... Added--cd ~so WSL always starts in the Linux home directory.From #38 (merged in here)
.surface-tab-bar { overflow: hidden }and by adjacent panes.Test plan
▾caret — menu lists detected shells above Browser / Markdown~), not/mnt/c/...▾menu on the left pane — it renders on top of the right pane (not clipped)Notes
🤖 Generated with Claude Code