diff --git a/.vscode/settings.json b/.vscode/settings.json
index 7a73a41bfdf76d6f793007240d80983a52f15f97..ac904dfe30f031ba2a9acbaa1b9b4bbee2416ea5 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,2 +1,70 @@
 {
-}
\ No newline at end of file
+  // Generic settings :
+  "editor.formatOnSave": true, // Format files on save
+  "formatFiles.runOrganizeImports": true, // Sort imports when formatting
+  "editor.codeActionsOnSave": {
+    // Organize imports on save
+    "source.organizeImports": true
+  },
+  "editor.inlineSuggest.enabled": true, // Instantly show suggestions
+  "editor.minimap.enabled": false, // Hide minimap (along scroll bar)
+  "editor.mouseWheelZoom": true,
+
+  // Generic extension settings
+  "todo-tree.highlights.useColourScheme": true,
+  "code-runner.saveFileBeforeRun": true,
+  "github.copilot.enable": {
+    "*": true
+  },
+  "workbench.editorAssociations": {
+    "*.csv": "gc-excelviewer-csv-editor" // Open CSV files with the Excel extension
+  },
+
+  // C++
+  "clangd.path": "/home/thibaut/.config/Code/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/15.0.6/clangd_15.0.6/bin/clangd",
+  "clang-format.style": "{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: true, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }",
+  "C_Cpp.intelliSenseEngine": "disabled",
+  "[cpp]": {
+    "editor.defaultFormatter": "xaver.clang-format"
+  },
+  "[c]": {
+    "editor.defaultFormatter": "xaver.clang-format"
+  },
+
+  // Web dev
+  "javascript.updateImportsOnFileMove.enabled": "always", // Automatically update imports when moving a file
+
+  "[javascript]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "[css]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "[jsonc]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "[json]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+
+  // Java
+  "[java]": {
+    "editor.defaultFormatter": "redhat.java"
+  },
+
+  // Latex
+  "[latex]": {
+    "editor.defaultFormatter": "James-Yu.latex-workshop"
+  },
+  "latex-workshop.message.badbox.show": false, // Allow using \\ for newlines, without warnings
+
+  // Python
+  "python.analysis.typeCheckingMode": "basic", // or "strict" : use stricter python type checking
+
+  // Python Jupyter Notebooks
+  "jupyter.interactiveWindow.textEditor.executeSelection": true,
+  "notebook.formatOnSave.enabled": true, // Optional : use a formatter on save (slow)
+
+  // Rust
+  "rust-analyzer.check.command": "clippy" // Use clippy for better warnings
+}