diff --git a/src/common/user-store/preferences-helpers.ts b/src/common/user-store/preferences-helpers.ts index ea59192a02..fd825589ff 100644 --- a/src/common/user-store/preferences-helpers.ts +++ b/src/common/user-store/preferences-helpers.ts @@ -10,7 +10,7 @@ import { getAppVersion, ObservableToggleSet } from "../utils"; import type { editor } from "monaco-editor"; import merge from "lodash/merge"; import { SemVer } from "semver"; -import { defaultTheme } from "../vars"; +import { defaultTheme, defaultFontFamily, defaultFontSize } from "../vars"; export interface KubeconfigSyncEntry extends KubeconfigSyncValue { filePath: string; @@ -188,6 +188,32 @@ const downloadBinariesPath: PreferenceDescription = { }, }; +const terminalFontSize: PreferenceDescription = { + fromStore(val) { + return val; + }, + toStore(val) { + if (!val) { + return defaultFontSize; + } + + return val; + }, +}; + +const terminalFontFamily: PreferenceDescription = { + fromStore(val) { + return val; + }, + toStore(val) { + if (!val) { + return defaultFontFamily; + } + + return val; + }, +}; + const kubectlBinariesPath: PreferenceDescription = { fromStore(val) { return val; @@ -359,6 +385,8 @@ export const DESCRIPTORS = { syncKubeconfigEntries, editorConfiguration, terminalCopyOnSelect, + terminalFontSize, + terminalFontFamily, updateChannel, extensionRegistryUrl, }; diff --git a/src/common/user-store/user-store.ts b/src/common/user-store/user-store.ts index b0726d62ca..2e56424cc1 100644 --- a/src/common/user-store/user-store.ts +++ b/src/common/user-store/user-store.ts @@ -57,6 +57,8 @@ export class UserStore extends BaseStore /* implements UserStore @observable downloadBinariesPath?: string; @observable kubectlBinariesPath?: string; @observable terminalCopyOnSelect: boolean; + @observable terminalFontSize?: number; + @observable terminalFontFamily?: string; @observable updateChannel?: string; @observable extensionRegistryUrl: ExtensionRegistry; @@ -185,6 +187,8 @@ export class UserStore extends BaseStore /* implements UserStore this.syncKubeconfigEntries.replace(DESCRIPTORS.syncKubeconfigEntries.fromStore(preferences?.syncKubeconfigEntries)); this.editorConfiguration = DESCRIPTORS.editorConfiguration.fromStore(preferences?.editorConfiguration); this.terminalCopyOnSelect = DESCRIPTORS.terminalCopyOnSelect.fromStore(preferences?.terminalCopyOnSelect); + this.terminalFontSize = DESCRIPTORS.terminalFontSize.fromStore(preferences?.terminalFontSize); + this.terminalFontFamily = DESCRIPTORS.terminalFontFamily.fromStore(preferences?.terminalFontFamily); this.updateChannel = DESCRIPTORS.updateChannel.fromStore(preferences?.updateChannel); this.extensionRegistryUrl = DESCRIPTORS.extensionRegistryUrl.fromStore(preferences?.extensionRegistryUrl); } @@ -210,6 +214,8 @@ export class UserStore extends BaseStore /* implements UserStore syncKubeconfigEntries: DESCRIPTORS.syncKubeconfigEntries.toStore(this.syncKubeconfigEntries), editorConfiguration: DESCRIPTORS.editorConfiguration.toStore(this.editorConfiguration), terminalCopyOnSelect: DESCRIPTORS.terminalCopyOnSelect.toStore(this.terminalCopyOnSelect), + terminalFontFamily: DESCRIPTORS.terminalFontFamily.toStore(this.terminalFontFamily), + terminalFontSize: DESCRIPTORS.terminalFontSize.toStore(this.terminalFontSize), updateChannel: DESCRIPTORS.updateChannel.toStore(this.updateChannel), extensionRegistryUrl: DESCRIPTORS.extensionRegistryUrl.toStore(this.extensionRegistryUrl), }, diff --git a/src/common/vars.ts b/src/common/vars.ts index de0d1abf98..4a54c6bc50 100644 --- a/src/common/vars.ts +++ b/src/common/vars.ts @@ -26,6 +26,8 @@ export const productName = packageInfo.productName; export const appName = `${packageInfo.productName}${isDevelopment ? "Dev" : ""}`; export const publicPath = "/build/" as string; export const defaultTheme = "lens-dark" as string; +export const defaultFontSize = 10; +export const defaultFontFamily = "Verdana"; // Webpack build paths export const contextDir = process.cwd(); diff --git a/src/renderer/components/+preferences/terminal.tsx b/src/renderer/components/+preferences/terminal.tsx index 49fb6ddc08..0830c4ecef 100644 --- a/src/renderer/components/+preferences/terminal.tsx +++ b/src/renderer/components/+preferences/terminal.tsx @@ -22,7 +22,7 @@ import React from "react"; import { observer } from "mobx-react"; import { UserStore } from "../../../common/user-store"; import { SubTitle } from "../layout/sub-title"; -import { Input } from "../input"; +import { Input, InputValidators } from "../input"; import { isWindows } from "../../../common/vars"; import { Switch } from "../switch"; @@ -58,7 +58,25 @@ export const Terminal = observer(() => { Copy on select and paste on right-click - -
+
+ + userStore.terminalFontSize = Number(value)} + /> +
+
+ + userStore.terminalFontFamily = value} + /> +
); });