Просмотр исходного кода

feat: add terminal settings for Oh My Zsh and Powerlevel10k shell integration

Added two new terminal settings:
- terminalZshOhMy: Sets ITERM_SHELL_INTEGRATION_INSTALLED=Yes for Oh My Zsh
- terminalZshP10k: Sets POWERLEVEL9K_TERM_SHELL_INTEGRATION=true for Powerlevel10k

Signed-off-by: Eric Wheeler <[email protected]>
Eric Wheeler 8 месяцев назад
Родитель
Сommit
b4c67f133b
28 измененных файлов с 280 добавлено и 1 удалено
  1. 10 0
      src/core/webview/ClineProvider.ts
  2. 14 0
      src/core/webview/webviewMessageHandler.ts
  3. 2 0
      src/exports/roo-code.d.ts
  4. 2 0
      src/exports/types.ts
  5. 34 0
      src/integrations/terminal/Terminal.ts
  6. 10 0
      src/integrations/terminal/TerminalRegistry.ts
  7. 42 0
      src/integrations/terminal/__tests__/TerminalRegistry.test.ts
  8. 4 0
      src/schemas/index.ts
  9. 2 0
      src/shared/ExtensionMessage.ts
  10. 2 0
      src/shared/WebviewMessage.ts
  11. 6 0
      webview-ui/src/components/settings/SettingsView.tsx
  12. 30 0
      webview-ui/src/components/settings/TerminalSettings.tsx
  13. 2 1
      webview-ui/src/context/ExtensionStateContext.tsx
  14. 8 0
      webview-ui/src/i18n/locales/ca/settings.json
  15. 8 0
      webview-ui/src/i18n/locales/de/settings.json
  16. 8 0
      webview-ui/src/i18n/locales/en/settings.json
  17. 8 0
      webview-ui/src/i18n/locales/es/settings.json
  18. 8 0
      webview-ui/src/i18n/locales/fr/settings.json
  19. 8 0
      webview-ui/src/i18n/locales/hi/settings.json
  20. 8 0
      webview-ui/src/i18n/locales/it/settings.json
  21. 8 0
      webview-ui/src/i18n/locales/ja/settings.json
  22. 8 0
      webview-ui/src/i18n/locales/ko/settings.json
  23. 8 0
      webview-ui/src/i18n/locales/pl/settings.json
  24. 8 0
      webview-ui/src/i18n/locales/pt-BR/settings.json
  25. 8 0
      webview-ui/src/i18n/locales/tr/settings.json
  26. 8 0
      webview-ui/src/i18n/locales/vi/settings.json
  27. 8 0
      webview-ui/src/i18n/locales/zh-CN/settings.json
  28. 8 0
      webview-ui/src/i18n/locales/zh-TW/settings.json

+ 10 - 0
src/core/webview/ClineProvider.ts

@@ -357,6 +357,8 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
 				terminalShellIntegrationTimeout,
 				terminalCommandDelay,
 				terminalZshClearEolMark,
+				terminalZshOhMy,
+				terminalZshP10k,
 				terminalPowershellCounter,
 			}) => {
 				setSoundEnabled(soundEnabled ?? false)
@@ -365,6 +367,8 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
 				)
 				Terminal.setCommandDelay(terminalCommandDelay ?? 0)
 				Terminal.setTerminalZshClearEolMark(terminalZshClearEolMark ?? true)
+				Terminal.setTerminalZshOhMy(terminalZshOhMy ?? false)
+				Terminal.setTerminalZshP10k(terminalZshP10k ?? false)
 				Terminal.setPowershellCounter(terminalPowershellCounter ?? false)
 			},
 		)
@@ -1213,6 +1217,8 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
 			terminalCommandDelay,
 			terminalPowershellCounter,
 			terminalZshClearEolMark,
+			terminalZshOhMy,
+			terminalZshP10k,
 			fuzzyMatchThreshold,
 			mcpEnabled,
 			enableMcpServerCreation,
@@ -1283,6 +1289,8 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
 			terminalCommandDelay: terminalCommandDelay ?? 0,
 			terminalPowershellCounter: terminalPowershellCounter ?? false,
 			terminalZshClearEolMark: terminalZshClearEolMark ?? true,
+			terminalZshOhMy: terminalZshOhMy ?? false,
+			terminalZshP10k: terminalZshP10k ?? false,
 			fuzzyMatchThreshold: fuzzyMatchThreshold ?? 1.0,
 			mcpEnabled: mcpEnabled ?? true,
 			enableMcpServerCreation: enableMcpServerCreation ?? true,
@@ -1372,6 +1380,8 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
 			terminalCommandDelay: stateValues.terminalCommandDelay ?? 0,
 			terminalPowershellCounter: stateValues.terminalPowershellCounter ?? false,
 			terminalZshClearEolMark: stateValues.terminalZshClearEolMark ?? true,
+			terminalZshOhMy: stateValues.terminalZshOhMy ?? false,
+			terminalZshP10k: stateValues.terminalZshP10k ?? false,
 			mode: stateValues.mode ?? defaultModeSlug,
 			language: stateValues.language ?? formatLanguage(vscode.env.language),
 			mcpEnabled: stateValues.mcpEnabled ?? true,

+ 14 - 0
src/core/webview/webviewMessageHandler.ts

@@ -757,6 +757,20 @@ export const webviewMessageHandler = async (provider: ClineProvider, message: We
 				Terminal.setTerminalZshClearEolMark(message.bool)
 			}
 			break
+		case "terminalZshOhMy":
+			await updateGlobalState("terminalZshOhMy", message.bool)
+			await provider.postStateToWebview()
+			if (message.bool !== undefined) {
+				Terminal.setTerminalZshOhMy(message.bool)
+			}
+			break
+		case "terminalZshP10k":
+			await updateGlobalState("terminalZshP10k", message.bool)
+			await provider.postStateToWebview()
+			if (message.bool !== undefined) {
+				Terminal.setTerminalZshP10k(message.bool)
+			}
+			break
 		case "mode":
 			await provider.handleModeSwitch(message.text as Mode)
 			break

+ 2 - 0
src/exports/roo-code.d.ts

@@ -269,6 +269,8 @@ type GlobalSettings = {
 	terminalCommandDelay?: number | undefined
 	terminalPowershellCounter?: boolean | undefined
 	terminalZshClearEolMark?: boolean | undefined
+	terminalZshOhMy?: boolean | undefined
+	terminalZshP10k?: boolean | undefined
 	rateLimitSeconds?: number | undefined
 	diffEnabled?: boolean | undefined
 	fuzzyMatchThreshold?: number | undefined

+ 2 - 0
src/exports/types.ts

@@ -272,6 +272,8 @@ type GlobalSettings = {
 	terminalCommandDelay?: number | undefined
 	terminalPowershellCounter?: boolean | undefined
 	terminalZshClearEolMark?: boolean | undefined
+	terminalZshOhMy?: boolean | undefined
+	terminalZshP10k?: boolean | undefined
 	rateLimitSeconds?: number | undefined
 	diffEnabled?: boolean | undefined
 	fuzzyMatchThreshold?: number | undefined

+ 34 - 0
src/integrations/terminal/Terminal.ts

@@ -10,6 +10,8 @@ export class Terminal {
 	private static commandDelay: number = 0
 	private static powershellCounter: boolean = false
 	private static terminalZshClearEolMark: boolean = true
+	private static terminalZshOhMy: boolean = false
+	private static terminalZshP10k: boolean = false
 
 	public terminal: vscode.Terminal
 	public busy: boolean
@@ -311,6 +313,38 @@ export class Terminal {
 		return Terminal.terminalZshClearEolMark
 	}
 
+	/**
+	 * Sets whether to enable Oh My Zsh shell integration
+	 * @param enabled Whether to enable Oh My Zsh shell integration
+	 */
+	public static setTerminalZshOhMy(enabled: boolean): void {
+		Terminal.terminalZshOhMy = enabled
+	}
+
+	/**
+	 * Gets whether Oh My Zsh shell integration is enabled
+	 * @returns Whether Oh My Zsh shell integration is enabled
+	 */
+	public static getTerminalZshOhMy(): boolean {
+		return Terminal.terminalZshOhMy
+	}
+
+	/**
+	 * Sets whether to enable Powerlevel10k shell integration
+	 * @param enabled Whether to enable Powerlevel10k shell integration
+	 */
+	public static setTerminalZshP10k(enabled: boolean): void {
+		Terminal.terminalZshP10k = enabled
+	}
+
+	/**
+	 * Gets whether Powerlevel10k shell integration is enabled
+	 * @returns Whether Powerlevel10k shell integration is enabled
+	 */
+	public static getTerminalZshP10k(): boolean {
+		return Terminal.terminalZshP10k
+	}
+
 	public static compressTerminalOutput(input: string, lineLimit: number): string {
 		return truncateOutput(applyRunLengthEncoding(input), lineLimit)
 	}

+ 10 - 0
src/integrations/terminal/TerminalRegistry.ts

@@ -117,6 +117,16 @@ export class TerminalRegistry {
 			VTE_VERSION: "0",
 		}
 
+		// Set Oh My Zsh shell integration if enabled
+		if (Terminal.getTerminalZshOhMy()) {
+			env.ITERM_SHELL_INTEGRATION_INSTALLED = "Yes"
+		}
+
+		// Set Powerlevel10k shell integration if enabled
+		if (Terminal.getTerminalZshP10k()) {
+			env.POWERLEVEL9K_TERM_SHELL_INTEGRATION = "true"
+		}
+
 		// VSCode bug#237208: Command output can be lost due to a race between completion
 		// sequences and consumers. Add delay via PROMPT_COMMAND to ensure the
 		// \x1b]633;D escape sequence arrives after command output is processed.

+ 42 - 0
src/integrations/terminal/__tests__/TerminalRegistry.test.ts

@@ -62,5 +62,47 @@ describe("TerminalRegistry", () => {
 				Terminal.setCommandDelay(originalDelay)
 			}
 		})
+
+		it("adds Oh My Zsh integration env var when enabled", () => {
+			Terminal.setTerminalZshOhMy(true)
+			try {
+				TerminalRegistry.createTerminal("/test/path")
+
+				expect(mockCreateTerminal).toHaveBeenCalledWith({
+					cwd: "/test/path",
+					name: "Roo Code",
+					iconPath: expect.any(Object),
+					env: {
+						PAGER: "cat",
+						VTE_VERSION: "0",
+						PROMPT_EOL_MARK: "",
+						ITERM_SHELL_INTEGRATION_INSTALLED: "Yes",
+					},
+				})
+			} finally {
+				Terminal.setTerminalZshOhMy(false)
+			}
+		})
+
+		it("adds Powerlevel10k integration env var when enabled", () => {
+			Terminal.setTerminalZshP10k(true)
+			try {
+				TerminalRegistry.createTerminal("/test/path")
+
+				expect(mockCreateTerminal).toHaveBeenCalledWith({
+					cwd: "/test/path",
+					name: "Roo Code",
+					iconPath: expect.any(Object),
+					env: {
+						PAGER: "cat",
+						VTE_VERSION: "0",
+						PROMPT_EOL_MARK: "",
+						POWERLEVEL9K_TERM_SHELL_INTEGRATION: "true",
+					},
+				})
+			} finally {
+				Terminal.setTerminalZshP10k(false)
+			}
+		})
 	})
 })

+ 4 - 0
src/schemas/index.ts

@@ -535,6 +535,8 @@ export const globalSettingsSchema = z.object({
 	terminalCommandDelay: z.number().optional(),
 	terminalPowershellCounter: z.boolean().optional(),
 	terminalZshClearEolMark: z.boolean().optional(),
+	terminalZshOhMy: z.boolean().optional(),
+	terminalZshP10k: z.boolean().optional(),
 
 	rateLimitSeconds: z.number().optional(),
 	diffEnabled: z.boolean().optional(),
@@ -608,6 +610,8 @@ const globalSettingsRecord: GlobalSettingsRecord = {
 	terminalCommandDelay: undefined,
 	terminalPowershellCounter: undefined,
 	terminalZshClearEolMark: undefined,
+	terminalZshOhMy: undefined,
+	terminalZshP10k: undefined,
 
 	rateLimitSeconds: undefined,
 	diffEnabled: undefined,

+ 2 - 0
src/shared/ExtensionMessage.ts

@@ -156,6 +156,8 @@ export type ExtensionState = Pick<
 	| "terminalCommandDelay"
 	| "terminalPowershellCounter"
 	| "terminalZshClearEolMark"
+	| "terminalZshOhMy"
+	| "terminalZshP10k"
 	| "diffEnabled"
 	| "fuzzyMatchThreshold"
 	// | "experiments" // Optional in GlobalSettings, required here.

+ 2 - 0
src/shared/WebviewMessage.ts

@@ -85,6 +85,8 @@ export interface WebviewMessage {
 		| "terminalCommandDelay"
 		| "terminalPowershellCounter"
 		| "terminalZshClearEolMark"
+		| "terminalZshOhMy"
+		| "terminalZshP10k"
 		| "mcpEnabled"
 		| "enableMcpServerCreation"
 		| "searchCommits"

+ 6 - 0
webview-ui/src/components/settings/SettingsView.tsx

@@ -132,6 +132,8 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone, t
 		terminalCommandDelay,
 		terminalPowershellCounter,
 		terminalZshClearEolMark,
+		terminalZshOhMy,
+		terminalZshP10k,
 		writeDelayMs,
 		showRooIgnoredFiles,
 		remoteBrowserEnabled,
@@ -243,6 +245,8 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone, t
 			vscode.postMessage({ type: "terminalCommandDelay", value: terminalCommandDelay })
 			vscode.postMessage({ type: "terminalPowershellCounter", bool: terminalPowershellCounter })
 			vscode.postMessage({ type: "terminalZshClearEolMark", bool: terminalZshClearEolMark })
+			vscode.postMessage({ type: "terminalZshOhMy", bool: terminalZshOhMy })
+			vscode.postMessage({ type: "terminalZshP10k", bool: terminalZshP10k })
 			vscode.postMessage({ type: "mcpEnabled", bool: mcpEnabled })
 			vscode.postMessage({ type: "alwaysApproveResubmit", bool: alwaysApproveResubmit })
 			vscode.postMessage({ type: "requestDelaySeconds", value: requestDelaySeconds })
@@ -490,6 +494,8 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone, t
 						terminalCommandDelay={terminalCommandDelay}
 						terminalPowershellCounter={terminalPowershellCounter}
 						terminalZshClearEolMark={terminalZshClearEolMark}
+						terminalZshOhMy={terminalZshOhMy}
+						terminalZshP10k={terminalZshP10k}
 						setCachedStateField={setCachedStateField}
 					/>
 				</div>

+ 30 - 0
webview-ui/src/components/settings/TerminalSettings.tsx

@@ -16,12 +16,16 @@ type TerminalSettingsProps = HTMLAttributes<HTMLDivElement> & {
 	terminalCommandDelay?: number
 	terminalPowershellCounter?: boolean
 	terminalZshClearEolMark?: boolean
+	terminalZshOhMy?: boolean
+	terminalZshP10k?: boolean
 	setCachedStateField: SetCachedStateField<
 		| "terminalOutputLineLimit"
 		| "terminalShellIntegrationTimeout"
 		| "terminalCommandDelay"
 		| "terminalPowershellCounter"
 		| "terminalZshClearEolMark"
+		| "terminalZshOhMy"
+		| "terminalZshP10k"
 	>
 }
 
@@ -31,6 +35,8 @@ export const TerminalSettings = ({
 	terminalCommandDelay,
 	terminalPowershellCounter,
 	terminalZshClearEolMark,
+	terminalZshOhMy,
+	terminalZshP10k,
 	setCachedStateField,
 	className,
 	...props
@@ -131,6 +137,30 @@ export const TerminalSettings = ({
 						{t("settings:terminal.zshClearEolMark.description")}
 					</div>
 				</div>
+
+				<div>
+					<VSCodeCheckbox
+						checked={terminalZshOhMy ?? false}
+						onChange={(e: any) => setCachedStateField("terminalZshOhMy", e.target.checked)}
+						data-testid="terminal-zsh-oh-my-checkbox">
+						<span className="font-medium">{t("settings:terminal.zshOhMy.label")}</span>
+					</VSCodeCheckbox>
+					<div className="text-vscode-descriptionForeground text-sm mt-1">
+						{t("settings:terminal.zshOhMy.description")}
+					</div>
+				</div>
+
+				<div>
+					<VSCodeCheckbox
+						checked={terminalZshP10k ?? false}
+						onChange={(e: any) => setCachedStateField("terminalZshP10k", e.target.checked)}
+						data-testid="terminal-zsh-p10k-checkbox">
+						<span className="font-medium">{t("settings:terminal.zshP10k.label")}</span>
+					</VSCodeCheckbox>
+					<div className="text-vscode-descriptionForeground text-sm mt-1">
+						{t("settings:terminal.zshP10k.description")}
+					</div>
+				</div>
 			</Section>
 		</div>
 	)

+ 2 - 1
webview-ui/src/context/ExtensionStateContext.tsx

@@ -158,6 +158,8 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode
 		renderContext: "sidebar",
 		maxReadFileLine: 500, // Default max read file line limit
 		pinnedApiConfigs: {}, // Empty object for pinned API configs
+		terminalZshOhMy: false, // Default Oh My Zsh integration setting
+		terminalZshP10k: false, // Default Powerlevel10k integration setting
 	})
 
 	const [didHydrateState, setDidHydrateState] = useState(false)
@@ -165,7 +167,6 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode
 	const [theme, setTheme] = useState<any>(undefined)
 	const [filePaths, setFilePaths] = useState<string[]>([])
 	const [openedTabs, setOpenedTabs] = useState<Array<{ label: string; isActive: boolean; path?: string }>>([])
-
 	const [mcpServers, setMcpServers] = useState<McpServer[]>([])
 	const [currentCheckpoint, setCurrentCheckpoint] = useState<string>()
 

+ 8 - 0
webview-ui/src/i18n/locales/ca/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "Neteja la marca EOL de ZSH",
 			"description": "Quan està habilitat, neteja la marca de final de línia de ZSH establint PROMPT_EOL_MARK=''. Això evita problemes amb la interpretació de la sortida de comandes quan acaba amb caràcters especials com '%'."
+		},
+		"zshOhMy": {
+			"label": "Habilita la integració Oh My Zsh",
+			"description": "Quan està habilitat, estableix ITERM_SHELL_INTEGRATION_INSTALLED=Yes per habilitar les característiques d'integració del shell Oh My Zsh. (experimental)"
+		},
+		"zshP10k": {
+			"label": "Habilita la integració Powerlevel10k",
+			"description": "Quan està habilitat, estableix POWERLEVEL9K_TERM_SHELL_INTEGRATION=true per habilitar les característiques d'integració del shell Powerlevel10k. (experimental)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/de/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "ZSH-Zeilenende-Markierung löschen",
 			"description": "Wenn aktiviert, wird die ZSH-Zeilenende-Markierung durch Setzen von PROMPT_EOL_MARK='' gelöscht. Dies verhindert Probleme bei der Interpretation der Befehlsausgabe, wenn diese mit Sonderzeichen wie '%' endet."
+		},
+		"zshOhMy": {
+			"label": "Oh My Zsh-Integration aktivieren",
+			"description": "Wenn aktiviert, wird ITERM_SHELL_INTEGRATION_INSTALLED=Yes gesetzt, um die Shell-Integrationsfunktionen von Oh My Zsh zu aktivieren. (experimentell)"
+		},
+		"zshP10k": {
+			"label": "Powerlevel10k-Integration aktivieren",
+			"description": "Wenn aktiviert, wird POWERLEVEL9K_TERM_SHELL_INTEGRATION=true gesetzt, um die Shell-Integrationsfunktionen von Powerlevel10k zu aktivieren. (experimentell)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/en/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "Clear ZSH EOL mark",
 			"description": "When enabled, clears the ZSH end-of-line mark by setting PROMPT_EOL_MARK=''. This prevents issues with command output interpretation when output ends with special characters like '%'."
+		},
+		"zshOhMy": {
+			"label": "Enable Oh My Zsh integration",
+			"description": "When enabled, sets ITERM_SHELL_INTEGRATION_INSTALLED=Yes to enable Oh My Zsh shell integration features. (experimental)"
+		},
+		"zshP10k": {
+			"label": "Enable Powerlevel10k integration",
+			"description": "When enabled, sets POWERLEVEL9K_TERM_SHELL_INTEGRATION=true to enable Powerlevel10k shell integration features. (experimental)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/es/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "Limpiar marca de fin de línea de ZSH",
 			"description": "Cuando está habilitado, limpia la marca de fin de línea de ZSH estableciendo PROMPT_EOL_MARK=''. Esto evita problemas con la interpretación de la salida de comandos cuando termina con caracteres especiales como '%'."
+		},
+		"zshOhMy": {
+			"label": "Habilitar integración Oh My Zsh",
+			"description": "Cuando está habilitado, establece ITERM_SHELL_INTEGRATION_INSTALLED=Yes para habilitar las características de integración del shell Oh My Zsh. (experimental)"
+		},
+		"zshP10k": {
+			"label": "Habilitar integración Powerlevel10k",
+			"description": "Cuando está habilitado, establece POWERLEVEL9K_TERM_SHELL_INTEGRATION=true para habilitar las características de integración del shell Powerlevel10k. (experimental)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/fr/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "Effacer la marque de fin de ligne ZSH",
 			"description": "Lorsqu'activé, efface la marque de fin de ligne ZSH en définissant PROMPT_EOL_MARK=''. Cela évite les problèmes d'interprétation de la sortie des commandes lorsqu'elle se termine par des caractères spéciaux comme '%'."
+		},
+		"zshOhMy": {
+			"label": "Activer l'intégration Oh My Zsh",
+			"description": "Lorsqu'activé, définit ITERM_SHELL_INTEGRATION_INSTALLED=Yes pour activer les fonctionnalités d'intégration du shell Oh My Zsh. (expérimental)"
+		},
+		"zshP10k": {
+			"label": "Activer l'intégration Powerlevel10k",
+			"description": "Lorsqu'activé, définit POWERLEVEL9K_TERM_SHELL_INTEGRATION=true pour activer les fonctionnalités d'intégration du shell Powerlevel10k. (expérimental)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/hi/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "ZSH EOL मार्क साफ़ करें",
 			"description": "सक्षम होने पर, PROMPT_EOL_MARK='' सेट करके ZSH लाइन-समाप्ति मार्क को साफ़ करता है। यह कमांड आउटपुट की व्याख्या में समस्याओं को रोकता है जब आउटपुट '%' जैसे विशेष वर्णों के साथ समाप्त होता है।"
+		},
+		"zshOhMy": {
+			"label": "Oh My Zsh एकीकरण सक्षम करें",
+			"description": "सक्षम होने पर, Oh My Zsh शेल एकीकरण सुविधाओं को सक्षम करने के लिए ITERM_SHELL_INTEGRATION_INSTALLED=Yes सेट करता है। (प्रयोगात्मक)"
+		},
+		"zshP10k": {
+			"label": "Powerlevel10k एकीकरण सक्षम करें",
+			"description": "सक्षम होने पर, Powerlevel10k शेल एकीकरण सुविधाओं को सक्षम करने के लिए POWERLEVEL9K_TERM_SHELL_INTEGRATION=true सेट करता है। (प्रयोगात्मक)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/it/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "Cancella marcatore fine riga ZSH",
 			"description": "Quando abilitato, cancella il marcatore di fine riga ZSH impostando PROMPT_EOL_MARK=''. Questo previene problemi con l'interpretazione dell'output dei comandi quando termina con caratteri speciali come '%'."
+		},
+		"zshOhMy": {
+			"label": "Abilita integrazione Oh My Zsh",
+			"description": "Quando abilitato, imposta ITERM_SHELL_INTEGRATION_INSTALLED=Yes per abilitare le funzionalità di integrazione della shell Oh My Zsh. (sperimentale)"
+		},
+		"zshP10k": {
+			"label": "Abilita integrazione Powerlevel10k",
+			"description": "Quando abilitato, imposta POWERLEVEL9K_TERM_SHELL_INTEGRATION=true per abilitare le funzionalità di integrazione della shell Powerlevel10k. (sperimentale)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/ja/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "ZSH行末マークをクリア",
 			"description": "有効にすると、PROMPT_EOL_MARK=''を設定してZSHの行末マークをクリアします。これにより、'%'などの特殊文字で終わるコマンド出力の解釈に関する問題を防ぎます。"
+		},
+		"zshOhMy": {
+			"label": "Oh My Zsh 統合を有効化",
+			"description": "有効にすると、ITERM_SHELL_INTEGRATION_INSTALLED=Yes を設定して Oh My Zsh シェル統合機能を有効にします。(実験的)"
+		},
+		"zshP10k": {
+			"label": "Powerlevel10k 統合を有効化",
+			"description": "有効にすると、POWERLEVEL9K_TERM_SHELL_INTEGRATION=true を設定して Powerlevel10k シェル統合機能を有効にします。(実験的)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/ko/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "ZSH 줄 끝 표시 지우기",
 			"description": "활성화하면 PROMPT_EOL_MARK=''를 설정하여 ZSH 줄 끝 표시를 지웁니다. 이는 '%'와 같은 특수 문자로 끝나는 명령 출력 해석의 문제를 방지합니다."
+		},
+		"zshOhMy": {
+			"label": "Oh My Zsh 통합 활성화",
+			"description": "활성화하면 ITERM_SHELL_INTEGRATION_INSTALLED=Yes를 설정하여 Oh My Zsh 셸 통합 기능을 활성화합니다. (실험적)"
+		},
+		"zshP10k": {
+			"label": "Powerlevel10k 통합 활성화",
+			"description": "활성화하면 POWERLEVEL9K_TERM_SHELL_INTEGRATION=true를 설정하여 Powerlevel10k 셸 통합 기능을 활성화합니다. (실험적)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/pl/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "Wyczyść znacznik końca linii ZSH",
 			"description": "Po włączeniu czyści znacznik końca linii ZSH poprzez ustawienie PROMPT_EOL_MARK=''. Zapobiega to problemom z interpretacją wyjścia poleceń, gdy kończy się ono znakami specjalnymi jak '%'."
+		},
+		"zshOhMy": {
+			"label": "Włącz integrację Oh My Zsh",
+			"description": "Po włączeniu ustawia ITERM_SHELL_INTEGRATION_INSTALLED=Yes, aby włączyć funkcje integracji powłoki Oh My Zsh. (eksperymentalne)"
+		},
+		"zshP10k": {
+			"label": "Włącz integrację Powerlevel10k",
+			"description": "Po włączeniu ustawia POWERLEVEL9K_TERM_SHELL_INTEGRATION=true, aby włączyć funkcje integracji powłoki Powerlevel10k. (eksperymentalne)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/pt-BR/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "Limpar marca de fim de linha do ZSH",
 			"description": "Quando ativado, limpa a marca de fim de linha do ZSH definindo PROMPT_EOL_MARK=''. Isso evita problemas com a interpretação da saída de comandos quando termina com caracteres especiais como '%'."
+		},
+		"zshOhMy": {
+			"label": "Ativar integração Oh My Zsh",
+			"description": "Quando ativado, define ITERM_SHELL_INTEGRATION_INSTALLED=Yes para habilitar os recursos de integração do shell Oh My Zsh. (experimental)"
+		},
+		"zshP10k": {
+			"label": "Ativar integração Powerlevel10k",
+			"description": "Quando ativado, define POWERLEVEL9K_TERM_SHELL_INTEGRATION=true para habilitar os recursos de integração do shell Powerlevel10k. (experimental)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/tr/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "ZSH satır sonu işaretini temizle",
 			"description": "Etkinleştirildiğinde, PROMPT_EOL_MARK='' ayarlanarak ZSH satır sonu işaretini temizler. Bu, '%' gibi özel karakterlerle biten komut çıktılarının yorumlanmasında sorun yaşanmasını önler."
+		},
+		"zshOhMy": {
+			"label": "Oh My Zsh entegrasyonunu etkinleştir",
+			"description": "Etkinleştirildiğinde, Oh My Zsh kabuk entegrasyon özelliklerini etkinleştirmek için ITERM_SHELL_INTEGRATION_INSTALLED=Yes ayarlar. (deneysel)"
+		},
+		"zshP10k": {
+			"label": "Powerlevel10k entegrasyonunu etkinleştir",
+			"description": "Etkinleştirildiğinde, Powerlevel10k kabuk entegrasyon özelliklerini etkinleştirmek için POWERLEVEL9K_TERM_SHELL_INTEGRATION=true ayarlar. (deneysel)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/vi/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "Xóa dấu cuối dòng ZSH",
 			"description": "Khi được bật, xóa dấu cuối dòng ZSH bằng cách đặt PROMPT_EOL_MARK=''. Điều này ngăn chặn các vấn đề về diễn giải đầu ra lệnh khi kết thúc bằng các ký tự đặc biệt như '%'."
+		},
+		"zshOhMy": {
+			"label": "Bật tích hợp Oh My Zsh",
+			"description": "Khi được bật, đặt ITERM_SHELL_INTEGRATION_INSTALLED=Yes để kích hoạt các tính năng tích hợp shell của Oh My Zsh. (thử nghiệm)"
+		},
+		"zshP10k": {
+			"label": "Bật tích hợp Powerlevel10k",
+			"description": "Khi được bật, đặt POWERLEVEL9K_TERM_SHELL_INTEGRATION=true để kích hoạt các tính năng tích hợp shell của Powerlevel10k. (thử nghiệm)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/zh-CN/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "清除 ZSH 行尾标记",
 			"description": "启用后,通过设置 PROMPT_EOL_MARK='' 清除 ZSH 行尾标记。这可以防止命令输出以特殊字符(如 '%')结尾时的解析问题。"
+		},
+		"zshOhMy": {
+			"label": "启用 Oh My Zsh 集成",
+			"description": "启用后,设置 ITERM_SHELL_INTEGRATION_INSTALLED=Yes 以启用 Oh My Zsh shell 集成功能。(实验性)"
+		},
+		"zshP10k": {
+			"label": "启用 Powerlevel10k 集成",
+			"description": "启用后,设置 POWERLEVEL9K_TERM_SHELL_INTEGRATION=true 以启用 Powerlevel10k shell 集成功能。(实验性)"
 		}
 	},
 	"advanced": {

+ 8 - 0
webview-ui/src/i18n/locales/zh-TW/settings.json

@@ -313,6 +313,14 @@
 		"zshClearEolMark": {
 			"label": "清除 ZSH 行尾標記",
 			"description": "啟用後,透過設定 PROMPT_EOL_MARK='' 清除 ZSH 行尾標記。這可以防止命令輸出以特殊字元(如 '%')結尾時的解析問題。"
+		},
+		"zshOhMy": {
+			"label": "啟用 Oh My Zsh 整合",
+			"description": "啟用後,設定 ITERM_SHELL_INTEGRATION_INSTALLED=Yes 以啟用 Oh My Zsh shell 整合功能。(實驗性)"
+		},
+		"zshP10k": {
+			"label": "啟用 Powerlevel10k 整合",
+			"description": "啟用後,設定 POWERLEVEL9K_TERM_SHELL_INTEGRATION=true 以啟用 Powerlevel10k shell 整合功能。(實驗性)"
 		}
 	},
 	"advanced": {