add a status-bar theme switcher with live popover (T-234)
A far-right status-bar control shows the current theme and opens an anchored popover (not the full-screen modal) to switch live: click or keyboard (arrow/Enter to pick, Esc/tap-away to dismiss without change). Reuses ThemeController.available/select; the theme.pick palette command is unchanged (D-6 parity). Registered at priority 110 so it sits in the status bar's right group. Closes T-234 (under no parent; demo polish). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'package:clide/clide.dart';
|
||||
import 'package:clide/builtin/theme_picker/src/picker_view.dart';
|
||||
import 'package:clide/builtin/theme_picker/src/theme_status_item.dart';
|
||||
import 'package:clide/extension/extension.dart';
|
||||
|
||||
class ThemePickerExtension extends ClideExtension {
|
||||
@@ -26,6 +27,14 @@ class ThemePickerExtension extends ClideExtension {
|
||||
defaultBinding: 'ctrl+k',
|
||||
run: _pick,
|
||||
),
|
||||
// Always-visible switcher in the far-right status bar (T-234).
|
||||
// priority >= 100 places it in the right group; registered after
|
||||
// ipc-status so it sits to its right.
|
||||
StatusItemContribution(
|
||||
id: 'theme-picker.switcher',
|
||||
priority: 110,
|
||||
build: (_) => const ThemeSwitcherStatusItem(),
|
||||
),
|
||||
];
|
||||
|
||||
Future<IpcResponse> _pick(List<String> args) async {
|
||||
|
||||
Reference in New Issue
Block a user