feat: custom terminal background image + theme editor hardening
- settings: backgroundImage/backgroundImageOpacity (10..100, default 60) - main: otimg:// protocol serves only the configured background file (path-allowlisted, 403 otherwise); dev http origin cannot load file: - TerminalView: allowTransparency + transparent theme background while an image is set; .term-bg-image layer behind the xterm surface - terminal.css: .has-bg-image keeps .xterm-viewport transparent — the old chrome-bg pin covered the image layer (root cause of image not showing) - ThemeSettingsTab: image picker + opacity slider - ThemeEditor: duplicate-name hint now covers builtin names too; seed colors normalized to #rrggbb - settingsStore: sanitize theme colors, reject non-hex values
This commit is contained in:
1 parent
c94e0fbac7
commit
481f54ed59
13 files changed
+187
-17
No files matched your search
@@ -49,6 +49,10 @@ export interface TerminalSettings {
|
||||
showOpenCwdButton: boolean
|
||||
/** accent color for the active tab outline, rail indicator and SSH badges */
|
||||
tabAccentColor: string
|
||||
/** absolute path to an image rendered behind the terminal; '' = none */
|
||||
backgroundImage: string
|
||||
/** background image layer opacity, 10..100 (%) */
|
||||
backgroundImageOpacity: number
|
||||
}
|
||||
|
||||
export interface SystemSettings {
|
||||
@@ -132,7 +136,9 @@ export const DEFAULT_SETTINGS: AppSettings = {
|
||||
showRecButton: false,
|
||||
showOpenLogsButton: false,
|
||||
showOpenCwdButton: true,
|
||||
tabAccentColor: '#3fb950'
|
||||
tabAccentColor: '#3fb950',
|
||||
backgroundImage: '',
|
||||
backgroundImageOpacity: 60
|
||||
},
|
||||
customThemes: [],
|
||||
highlightRules: DEFAULT_HIGHLIGHT_RULES,
|
||||
|
||||
Reference in new issue
Block a user