feat(settings): monospace font picker + bundle Fira Mono (T-471)
Settings → Appearance gains a Monospace font select (JetBrains Mono / Fira Mono) on the schema engine, writing app.mono.font. It applies live: root_shell resolves the family into the ClideSettingsScope (D-101) and rebuilds on the settings change, so the ~93 migrated mono sites — terminal, diffs, code, IDs — re-read the new family at once. Vendor Fira Mono (Regular + Bold, OFL) under assets/fonts/fira_mono/ with the pubspec font family + licenses.yaml entry per D-42; JetBrains Mono stays the default. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@ import 'package:clide/builtin/theme_picker/src/settings_view.dart';
|
||||
import 'package:clide/builtin/theme_picker/src/theme_status_item.dart';
|
||||
import 'package:clide/extension/extension.dart';
|
||||
import 'package:clide/kernel/kernel.dart';
|
||||
import 'package:clide/widgets/widgets.dart' show kUiFontSettingKey;
|
||||
import 'package:clide/widgets/widgets.dart' show kMonoFontSettingKey, kUiFontSettingKey;
|
||||
|
||||
class ThemePickerExtension extends ClideExtension {
|
||||
@override
|
||||
@@ -70,6 +70,17 @@ class ThemePickerExtension extends ClideExtension {
|
||||
SettingsOption(value: 'JosefinSans', label: 'Josefin Sans'),
|
||||
],
|
||||
),
|
||||
SettingsField(
|
||||
key: kMonoFontSettingKey,
|
||||
kind: SettingsFieldKind.select,
|
||||
label: 'Monospace font',
|
||||
help: 'Terminal, diffs, code, and IDs; applies live.',
|
||||
defaultValue: 'JetBrainsMono',
|
||||
options: [
|
||||
SettingsOption(value: 'JetBrainsMono', label: 'JetBrains Mono'),
|
||||
SettingsOption(value: 'FiraMono', label: 'Fira Mono'),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user