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;