@setoelkahfi / svara / commits / dfaf4b5

feat!: added settings file

mellbacon committed Jul 8, 2023 at 22:54 UTC dfaf4b5c96b5286956f1ba8c012a2111526832b4
4 files changed +34 -90
src-tauri/Cargo.toml
+1 -1
@@ -15,7 +15,7 @@ tauri-build = { version = "1.2.1", features = [] }
15 [dependencies]
16 serde_json = "1.0"
17 serde = { version = "1.0", features = ["derive"] }
18 -tauri = { version = "1.2.5", features = ["clipboard-write-text", "dialog-ask", "dialog-confirm", "dialog-open", "dialog-save", "fs-create-dir", "fs-read-dir", "fs-read-file", "fs-rename-file", "fs-write-file", "path-all", "shell-open", "window-center", "window-close", "window-create", "window-hide", "window-maximize", "window-minimize", "window-print", "window-set-decorations", "window-set-focus", "window-set-fullscreen", "window-set-icon", "window-show", "window-start-dragging", "window-unmaximize", "window-unminimize"] }
18 +tauri = { version = "1.2.5", features = ["clipboard-write-text", "dialog-ask", "dialog-confirm", "dialog-open", "dialog-save", "fs-create-dir", "fs-exists", "fs-read-dir", "fs-read-file", "fs-rename-file", "fs-write-file", "path-all", "shell-open", "window-center", "window-close", "window-create", "window-hide", "window-maximize", "window-minimize", "window-print", "window-set-decorations", "window-set-focus", "window-set-fullscreen", "window-set-icon", "window-show", "window-start-dragging", "window-unmaximize", "window-unminimize"] }
19 tauri-plugin-fs-watch = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" }
20 trash = "3.0.2"
21
src/App.svelte
+2 -5
@@ -6,21 +6,18 @@
6 import Statusbar from "./lib/Statusbar.svelte";
7 import EditorTabList, {hidden} from "./lib/EditorTabList.svelte";
8 import { onMount } from "svelte";
9 - import { loadTheme } from "./config/themehandler";
9 import { appWindow } from '@tauri-apps/api/window';
10 import { writable } from "svelte/store";
11 import InputModal from "./lib/Modals/InputModal.svelte";
12 import RenameModal from "./lib/Modals/RenameModal.svelte";
14 - import { getShortcuts } from "./config/config";
13 + import { loadDefaultSettings } from "./config/config";
14 let resolution = writable(0);
15
16 let minPanelSize = 10;
17 let panelSize = 15;
18
19 onMount(async () => {
21 - await loadTheme("dark");
22 - await getShortcuts();
23 -
20 + await loadDefaultSettings();
21 let size = await appWindow.innerSize();
22 resolution.set(size.width);
23 updateMinPanelSize();
src/config/config.ts
+31
@@ -1,6 +1,8 @@
1 import { writable } from "svelte/store";
2 import Mousetrap from "mousetrap";
3 import { getKeybinds } from "./commands";
4 +import { fs, path } from "@tauri-apps/api";
5 +import { loadTheme } from "./themehandler";
6
7 export const systemfonts = writable([]);
8 export const editorfont = writable("");
@@ -53,3 +55,32 @@ async function fireAction(callback: () => Promise<void>, args = []) {
55 await callback();
56 return false;
57 }
58 +
59 +export async function getSettings() {
60 + const settings = {
61 + "nucleus.theme": "dark",
62 + "editor.fontSize": 14,
63 + "editor.fontFamily": "Uno",
64 + "editor.autosave": false,
65 + "nucleus.showKeybinds": false,
66 + "nucleus.useExternalTerminal": true,
67 + "terminal.external": {
68 + "profile": "powershell"
69 + },
70 + "terminal.internal": {
71 + "profile": "powershell"
72 + },
73 + };
74 + const appdataLocal = await path.appLocalDataDir();
75 +
76 + if (!await fs.exists(`${appdataLocal}/settings.json`)) {
77 + await fs.writeFile(`${appdataLocal}/settings.json`, JSON.stringify(settings, null, " "));
78 + }
79 +}
80 +
81 +export async function loadDefaultSettings() {
82 + await getSettings();
83 + const settings = JSON.parse(await fs.readTextFile("settings.json", {dir: fs.BaseDirectory.AppLocalData}));
84 + await loadTheme(settings["nucleus.theme"]);
85 + await getShortcuts();
86 +}
\ No newline at end of file
src/config/nucleus-settings.json deleted
-84
@@ -1,84 +0,0 @@
1 -{
2 - "shortcuts": {
3 - "new-file-shortcut": {
4 - "primaryKey": "N",
5 - "secondaryKey": "",
6 - "modifier": "Ctrl"
7 - },
8 - "open-file-shortcut": {
9 - "primaryKey": "O",
10 - "secondaryKey": "",
11 - "modifier": "Ctrl"
12 - },
13 - "open-folder-shortcut": {
14 - "primaryKey": "K",
15 - "secondaryKey": "",
16 - "modifier": "Ctrl"
17 - },
18 - "save-file-shortcut": {
19 - "primaryKey": "S",
20 - "secondaryKey": "",
21 - "modifier": "Ctrl"
22 - },
23 - "save-file-as-shortcut": {
24 - "primaryKey": "S",
25 - "secondaryKey": "Shift",
26 - "modifier": "Ctrl"
27 - },
28 - "undo-shortcut": {
29 - "primaryKey": "Z",
30 - "secondaryKey": "",
31 - "modifier": "Ctrl"
32 - },
33 - "redo-shortcut": {
34 - "primaryKey": "Y",
35 - "secondaryKey": "",
36 - "modifier": "Ctrl"
37 - },
38 - "delete-shortcut": {
39 - "primaryKey": "Delete",
40 - "secondaryKey": "",
41 - "modifier": ""
42 - },
43 - "cut-shortcut": {
44 - "primaryKey": "X",
45 - "secondaryKey": "",
46 - "modifier": "Ctrl"
47 - },
48 - "copy-shortcut": {
49 - "primaryKey": "C",
50 - "secondaryKey": "",
51 - "modifier": "Ctrl"
52 - },
53 - "paste-shortcut": {
54 - "primaryKey": "V",
55 - "secondaryKey": "",
56 - "modifier": "Ctrl"
57 - },
58 - "find-shortcut": {
59 - "primaryKey": "F",
60 - "secondaryKey": "",
61 - "modifier": "Ctrl"
62 - },
63 - "select-all-text-shortcut": {
64 - "primaryKey": "A",
65 - "secondaryKey": "",
66 - "modifier": "Ctrl"
67 - },
68 - "build-shortcut": {
69 - "primaryKey": "B",
70 - "secondaryKey": "",
71 - "modifier": "Ctrl"
72 - },
73 - "run-shortcut": {
74 - "primaryKey": "F5",
75 - "secondaryKey": "",
76 - "modifier": "Ctrl"
77 - },
78 - "run-no-debug-shortcut": {
79 - "primaryKey": "F5",
80 - "secondaryKey": "",
81 - "modifier": ""
82 - }
83 - }
84 -}
\ No newline at end of file