anomalyco / anomalyco/opencode
[FEATURE]: Add option to swap left/right panel layout
@Brendonovich is already working on this.
Since Mar 6, 2026.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- Avg merge
- 7h 2m
- Merged PRs (30d)
- 384
Description
Feature hasn't been suggested before.
- I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
Problem
The desktop layout is fixed: chat on the left, review/file tree on the right. This cannot be changed by the user.
Many developers prefer having tools on the left and main content on the right — matching the convention of most IDEs. The current fixed layout feels unintuitive for these users.
Proposed Solution
Add a "Swap panel layout" toggle in Settings → General → Appearance that reverses the two panels.
Suggested Approach
Apply flex-row-reverse on the session container at the md: breakpoint, controlled by a persisted boolean in the existing settings store.
Estimated scope (~30 lines across 5 files):
| File | What to do |
|---|---|
packages/app/src/context/settings.tsx |
Add swap: boolean to appearance with getter/setter |
packages/app/src/pages/session.tsx |
Toggle md:flex-row / md:flex-row-reverse on line ~1183 |
packages/app/src/pages/session/session-side-panel.tsx |
Swap border-l ↔ border-r |
packages/app/src/components/settings-general.tsx |
Add Switch in AppearanceSection |
packages/app/src/i18n/*.ts |
Add translation strings |
Additional considerations:
ResizeHandledrag direction may need adjustment when swapped.- Mobile layout (
flex-col) is unaffected. - Persisted via existing
persisted("settings.v3").
Happy to implement if the team is open to this.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.