Settings & i18n
All 38 user preferences
From src/stores/user-perfs.ts (the Perfs interface):
| Group | Setting | Default | What it controls |
|---|---|---|---|
| Appearance | darkMode | 'auto' | Follow system / light / dark |
| Appearance | themeHue | 300 | Material color hue 0-360 (used by avatar generator + accent) |
| Provider | provider | null | Global default provider |
| Provider | model | null | Global default model |
| Provider | systemProvider | null | Provider for system assistant |
| Provider | systemModel | null | Model for system assistant |
| Provider | userAvatar | { type: 'text', text: 'U', hue: 300 } | Your avatar (text/SVG/URL/icon/image) |
| Provider | commonModelOptions | [] | Model ids surfaced in the dialog quick-pick dropdown |
| Behavior | autoGenTitle | true | Auto-summarize dialog title after first turn |
| Behavior | sendKey | 'ctrl+enter' | Send-message key combo (4 options) |
| Behavior | messageSelectionBtn | true | Show toolbar on text selection in messages |
| Behavior | codePasteOptimize | true | Wrap VSCode-copied code in markdown fences on paste |
| UI | dialogScrollBtn | 'always' | Quick scroll button visibility (always/desktop-only/mobile-only/never) |
| UI | enableShortcutKey | 'desktop-only' | Whether to honor keyboard shortcuts at all |
| UI | autoFocusDialogInput | 'desktop-only' | Auto-focus input box on dialog open |
| UI | streamingLockBottom | true | Lock scroll to bottom during streaming |
| UI | streamRenderLevel | 100 | 0/25/50/75/100 — live rendering intensity during generation |
| UI | messageCatalog | true | Show message-content table of contents on wide screens |
| UI | showWarnings | false | Show API warning text in responses |
| UI | userInputDebounce | 30 | Input debounce ms (raise if your text gets overwritten while typing) |
| UI | expandReasoningContent | true | Auto-expand thinking/reasoning blocks in responses |
| Markdown | mdPreviewTheme | 'vuepress' | Markdown preview theme (vuepress/github/cyanosis/etc.) |
| Markdown | mdCodeTheme | 'atom' | Code-block theme (atom/github/dracula/vs2015) |
| Markdown | mdNoMermaid | false | Disable Mermaid diagrams in markdown |
| Markdown | mdAutoFoldThreshold | null | Fold code blocks after N lines (null = don't fold) |
| Artifacts | artifactsEnabled | 'desktop-only' | Master switch for Artifacts feature |
| Artifacts | artifactsAutoExtract | false | Auto-extract Artifact from assistant replies |
| Artifacts | artifactsAutoName | false | Auto-name extracted artifacts |
| Artifacts | artifactsReserveOriginal | false | Keep original text alongside the extracted artifact |
| Shortcuts | scrollUpKeyV2 / scrollDownKeyV2 | Ctrl+ArrowUp / Ctrl+ArrowDown | Scroll message list |
| Shortcuts | scrollTopKey / scrollBottomKey | Shift+ArrowUp / Shift+ArrowDown | Jump to top/bottom |
| Shortcuts | switchPrevKeyV2 / switchNextKeyV2 | Ctrl+ArrowLeft / Ctrl+ArrowRight | Switch dialog tabs |
| Shortcuts | switchFirstKey / switchLastKey | Shift+ArrowLeft / Shift+ArrowRight | First/last dialog |
| Shortcuts | regenerateCurrKey | null | Re-run last assistant message |
| Shortcuts | editCurrKey | null | Edit last user message |
| Shortcuts | createDialogKey | null | Create a new dialog |
| Shortcuts | focusDialogInputKey | null | Jump focus to input box |
| Shortcuts | saveArtifactKey | Ctrl+S | Save current Artifact |
| Shortcuts | searchDialogKey | null | Open dialog search |
Settings live in db.reactives under key #user-perfs (via the persistentReactive composable, which mirrors to localStorage for fast boot). Click Restore Default Settings at the bottom of Settings to reset.
Keyboard shortcut editor
Settings → Keyboard Shortcuts opens /settings/shortcut-keys. Each shortcut is a { key, withCtrl, withShift, withAlt, withMeta } object. Click a row's capture button, then press the desired combo. The enableShortcutKey preference must allow the current platform for the shortcuts to actually fire.
Languages
| Code | Source folder | Quasar lang pack |
|---|---|---|
en-US | src/i18n/en-US/ | loaded automatically |
zh-CN | src/i18n/zh-CN/ | loaded automatically |
zh-TW | src/i18n/zh-TW/ | loaded automatically |
Auto-detected from navigator.language; zh-HK maps to zh-TW; everything else falls back to en-US. Selection persisted in local-data.language; changing it triggers a full reload.
To add a new language:
- Copy
src/i18n/en-US/tosrc/i18n/<locale>/and translate the keys. - Add
<locale>to thelangListimport.meta.globpattern insrc/boot/i18n.tsand the Quasarlang/<locale>.jsglob. - Add it to
MessageLanguagestype and thegetLanguage()switch logic.