@setoelkahfi / svara / commits / 0fdacb9

feat: toggle for external/embedded terminal

Signed-off-by: mellobacon <mellodev@outlook.com>

mellobacon committed Jan 31, 2024 at 22:32 UTC 0fdacb9d4446097dcbfd8cd677e472550495087c
1 file changed +16 -3
src/lib/Settings.svelte
+16 -3
@@ -8,16 +8,18 @@
8 import { addEditorTab } from "./EditorTabList.svelte";
9
10 export let hidden = true;
11 -
11 +
12 let editorFontSize;
13 let editorFontFamily;
14 let nucleusTheme;
15 let editorAutosave;
16 + let externalTerminal;
17 onMount(async () => {
18 editorFontSize = await appSettings.get("editor.fontSize");
19 editorFontFamily = await appSettings.get("editor.fontFamily");
20 editorAutosave = await appSettings.get("editor.autosave");
21 nucleusTheme = await appSettings.get("nucleus.theme");
22 + externalTerminal = await appSettings.get("nucleus.useExternalTerminal");
23 })
24
25 async function handleSelect(e) {
@@ -36,6 +38,10 @@
38 await appSettings.set("editor.fontFamily", e.detail.value);
39 await appSettings.save();
40 }
41 + async function handleTerminal(e) {
42 + await appSettings.set("nucleus.useExternalTerminal", e.detail.selection.name);
43 + await appSettings.save();
44 + }
45 </script>
46
47 <div class="settings-container" class:hidden>
@@ -48,6 +54,7 @@
54 {id: 4, path: "", name: "Font Size"},
55 {id: 5, path: "", name: "Font Family"}
56 ]},
57 + {id: 6, path: "", name: "Terminal"},
58 ]},
59 ]}></FileTreeView>
60 <!-- svelte-ignore a11y-click-events-have-key-events -->
@@ -69,6 +76,12 @@
76 <Input _class="settings-input" placeholder="monospace" value={editorFontFamily} medium label="Font Family" on:d_input={handleFamilySelect} />
77 </div>
78 </div>
79 + <div class="settings-category">
80 + <div class="heading">Terminal</div>
81 + <div class="content">
82 + <Select label="Use External Terminal" items={[{id: 0, name: "false"}, {id: 1, name: "true"}]} selected={externalTerminal} on:select={handleTerminal} />
83 + </div>
84 + </div>
85 </div>
86 </div>
87 </div>
@@ -84,7 +97,7 @@
97 .settings {
98 width: 100%;
99 height: 100%;
87 - overflow: hidden;
100 + overflow: auto;
101 display: flex;
102 flex-direction: column;
103 justify-content: space-between;
@@ -97,7 +110,7 @@
110 .settings-directory {
111 min-width: 13rem;
112 height: 100%;
100 - overflow: hidden;
113 + overflow: auto;
114 display: flex;
115 align-items: center;
116 flex-direction: column;