pingdotgg / pingdotgg/t3code

[Bug]: Desktop context menus do not inherit imported VS Code themes

Open
#10,997 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-julius via-triage
Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

Before submitting
  • I searched existing issues and did not find a duplicate of this specific imported-theme bug. Related closed issue #333 is linked below.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/desktop

Summary

Desktop application context menus do not inherit the active imported VS Code theme palette. The main UI adopts the imported colors, but the thread context menu keeps the native menu colors. Importing a theme therefore leaves a visible part of the application unthemed.

Steps to reproduce
  1. Open the T3 Code desktop app.
  2. Import and select a dark VS Code theme with a visibly colored palette, such as a blue background, through the theme settings.
  3. Right-click a thread in the sidebar.
  4. Compare the menu background, text, separators, and selection colors with the selected theme. Open a submenu such as Snooze or Copy as well.
  5. Switch to another imported theme with the same dark appearance but different colors, then reopen the menu.
Expected behavior

Application context menus and their submenus use the active imported theme's corresponding palette colors and update when the selected theme changes.

Actual behavior

With an imported blue theme active, the sidebar uses the imported colors, but the thread context menu remains grey.

Source inspection explains the desktop mismatch: selecting a custom palette updates the web UI, while the desktop menu path receives only a light, dark, or system appearance setting.

Impact

Cosmetic issue. Imported themes render inconsistently across the application's own controls.

Version or commit

Source inspected at 061543e9e5b54ec0048725c37d52fef2962df173. The affected installed build was not independently identified. No fresh interactive reproduction was performed during this investigation.

Environment

Desktop application context-menu path. Exact release and OS version were not captured with the report.

Source evidence
  • localApi.ts routes desktop context menus through desktopBridge.showContextMenu; browser clients use showContextMenuFallback.
  • ElectronMenu.ts builds and opens an Electron menu without the imported palette.
  • DesktopThemeSchema carries only light, dark, or system. ElectronTheme.ts applies that setting to Electron.nativeTheme.themeSource.
  • The existing browser context menu uses application theme variables. This provides a reference for the expected palette integration.
Scope and related issue

This report covers application context menus and their submenus when an imported VS Code theme is active. Native filesystem dialogs and syntax highlighting are outside its scope.

#333 previously requested custom Linux menus and dialogs. It was closed with a comment stating that application context menus had been replaced. This fresh report isolates imported-theme inheritance, which the current desktop menu path still does not provide.

Workaround

The browser client uses a menu that reads the application theme variables, according to source inspection. That workaround has not been verified interactively for this report.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with apps/desktop/src/electron/ElectronMenu.ts and trace its calls from apps/web/src/localApi.ts. Compare the native menu path with apps/web/src/contextMenuFallback.ts and inspect DesktopThemeSchema in packages/contracts/src/ipc.ts plus ElectronTheme.ts. Done means desktop context menus and submenus use the active imported theme palette and update when the theme changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, typescript
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.