Screen: menu bar + window (top strip shown)

CursorFileEditViewWindowHelp Fri Oct 16 9:41 AM
Theme persistence questions IDE

Window · sidebar by time · empty New Chat

IDE
atlas-web main This Mac
Plan, Build, / for skills, @ for context
AutoBalance
Plan New IdeaTab MultitaskRun in Cloud
Plugins help you customize Cursor for your workflows - use /add-plugin to get started

Sidebar by repository

Composer: idle · typing · generating · plan · glass (canvas only)

Send follow-up
Cursor Grok 4.7High Fast
Also add a test for the System option
Cursor Grok 4.7High Fast
Ask
Ask questions
Composer 2.5
main This Mac
Plan
Plan changes
Opus 5.5Medium
Worked for 2m 22s
Send follow-up
Cursor Grok 4.7High Fast

Model picker · @-menu · Context Usage

AutoBalance
Cursor Grok 4.7High Fast
Composer 2.5Fast
Opus 5.5Medium
GPT-5.6 SolHigh Fast
Fable 5High
Cursor Grok 4.6High Fast
Gemini 3.7 FlashHigh
GPT-5.6 TerraMedium
Sonnet 5High
Branch Reference the current branch diff
Browser Enable browser tools
Chats
Canvas
MCP
linearReady
sentryNeeds authentication
Context Usage
25% Full~49.8K / 200K Tokens
System prompt492
Tool definitions8.2K
Rules7.7K
Skills4.0K
MCP & dynamic tools3.5K
Subagent definitions1.7K
Conversation24.1K

Thread: prompt card · steps · reply · code card · table

How does theme selection work today, and what would it take to remember each user’s choice across devices?
Worked for 1m 12s
Explored7 files, 2 searches
Thoughtfor 4s
EditedThemeProvider.tsx+21-9

1. Where the theme comes from

ThemeProvider reads prefers-color-scheme once and never stores the result:

ThemeProvider.tsxLn 12-14
export function ThemeProvider({ children }: Props) {  const prefersDark = useMediaQuery("(prefers-color-scheme: dark)");  const theme = prefersDark ? "dark" : "light";

2. What to change

FileChange
db/migrations/0042_user_theme.sqlAdd users.theme
src/theme/ThemeProvider.tsxRead the saved value first
Generating…

Right rail

Open Tabs
pnpm dev
On atlas-web
Changes+184-12
Browser
1 Terminal
Files

Changes: split view · Create PR states · sticky file header

Dark mode toggle in settings IDE
Add a dark mode toggle to Settings and remember each user’s choice
Worked for 3m 41s

Settings › Appearance now has a Light / Dark / System control, saved per user.

  • users.theme column, default system
  • ThemeProvider reads the saved value first
Send follow-up
Cursor Grok 4.7High Fast
mainThis Mac
+184-12
Localmain Create PR Creating PR… View PR
4 Uncommitted Changes+184-12
OpenPersist each user’s theme choice#214+184-12
TSsrc/theme/ThemeProvider.tsx+21-9
11 unmodified lines
12export function ThemeProvider({ children }: Props) {
12export function ThemeProvider({ children, saved }: Props) {
13 const prefersDark = useMediaQuery("(prefers-color-scheme: dark)");
14 const theme = prefersDark ? "dark" : "light";
14 const [choice, setChoice] = useState(saved ?? "system");
15
SQLdb/migrations/0042_user_theme.sql+9New
TSsrc/theme/ThemeProvider.tsx+21-9

Cloud agent Git header

GitDesktopTerminalFiles
Settings: add Light / Dark / System theme#128 Squash and merge
Opencursor/dark-mode-toggle-41c2→main
DiffReviewCommits4

Settings

Remote Control
Enable Remote Control for this computer Connected
Allow agents on this computer to be controlled from your other devices
Computer Name
Change how this computer appears on other devices
Maya’s MacBook Pro
Disable Remote Control on all of my computers
Unregisters every computer on your account
Unregister All

CLI

Read, listed, searched 2 files, 1 directory, 1 search Read src/theme/ThemeProvider.tsx To create a plan, I need a few details:
Clarifying Questions 1. Should the choice sync across devices? [x] Yes, store it on the user › [ ] No, keep it per browser ↑/↓ option · ←/→ question · Space/Enter select · S submit · K skip

IDE inline diff (extrapolated)

TSThemeProvider.tsxTSAppearanceSection.tsx
srcthemeThemeProvider.tsx
13 const prefersDark = useMediaQuery("(prefers-color-scheme: dark)");
14 const theme = prefersDark ? "dark" : "light";
14 const [choice, setChoice] = useState(saved ?? "system");
Undo ⌘NKeep ⌘Y
1 of 3Undo allKeep all ⌘⏎