diff --git a/.config/VSCodium/User/.github/README.md b/.config/VSCodium/User/.github/README.md
new file mode 100644
index 00000000..affa9d51
--- /dev/null
+++ b/.config/VSCodium/User/.github/README.md
@@ -0,0 +1,3 @@
+
+

+
diff --git a/.config/VSCodium/User/.github/title.png b/.config/VSCodium/User/.github/title.png
new file mode 100644
index 00000000..dd153e22
Binary files /dev/null and b/.config/VSCodium/User/.github/title.png differ
diff --git a/.config/VSCodium/User/keybindings.json b/.config/VSCodium/User/keybindings.json
new file mode 100644
index 00000000..41df2844
--- /dev/null
+++ b/.config/VSCodium/User/keybindings.json
@@ -0,0 +1,278 @@
+[
+ {
+ "key": "ctrl+shift+b",
+ "command": "workbench.action.toggleActivityBarVisibility"
+ },
+ {
+ "key": "ctrl+shift+[Backslash]",
+ "command": "workbench.action.toggleStatusbarVisibility"
+ },
+ {
+ "key": "ctrl+shift+i",
+ "command": "-editor.action.formatDocument.none",
+ "when": "editorTextFocus && !editorHasDocumentFormattingProvider && !editorReadonly"
+ },
+ {
+ "key": "ctrl+meta+numpad_add",
+ "command": "editor.action.formatDocument",
+ "when": "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor"
+ },
+ {
+ "key": "ctrl+shift+i",
+ "command": "-editor.action.formatDocument",
+ "when": "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor"
+ },
+ {
+ "key": "ctrl+shift+m",
+ "command": "-workbench.actions.view.problems",
+ "when": "workbench.panel.markers.view.active"
+ },
+ {
+ "key": "ctrl+numpad_divide",
+ "command": "bookmarks.toggle",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "ctrl+alt+k",
+ "command": "-bookmarks.toggle",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "ctrl+1",
+ "command": "-workbench.action.focusFirstEditorGroup"
+ },
+ {
+ "key": "ctrl+1",
+ "command": "extension.liveServer.goOnline",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "alt+l alt+o",
+ "command": "-extension.liveServer.goOnline",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "shift+f11",
+ "command": "-workbench.action.debug.stepOut",
+ "when": "debugState == 'stopped'"
+ },
+ {
+ "key": "f11 f11",
+ "command": "workbench.action.toggleZenMode"
+ },
+ {
+ "key": "ctrl+k z",
+ "command": "-workbench.action.toggleZenMode"
+ },
+ {
+ "key": "shift+f11",
+ "command": "workbench.action.debug.stepIntoTarget",
+ "when": "inDebugMode && stepIntoTargetsSupported && debugState == 'stopped'"
+ },
+ {
+ "key": "ctrl+f11",
+ "command": "-workbench.action.debug.stepIntoTarget",
+ "when": "inDebugMode && stepIntoTargetsSupported && debugState == 'stopped'"
+ },
+ {
+ "key": "ctrl+b",
+ "command": "-lineHighlightBookmark.toogleBookmarks",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "ctrl+t",
+ "command": "-workbench.action.showAllSymbols"
+ },
+ {
+ "key": "ctrl+t",
+ "command": "workbench.action.terminal.toggleTerminal",
+ "when": "terminal.active"
+ },
+ {
+ "key": "ctrl+`",
+ "command": "-workbench.action.terminal.toggleTerminal",
+ "when": "terminal.active"
+ },
+ {
+ "key": "ctrl+alt+p",
+ "command": "workbench.action.showAllEditors"
+ },
+ {
+ "key": "ctrl+k ctrl+p",
+ "command": "-workbench.action.showAllEditors"
+ },
+ {
+ "key": "ctrl+shift+o",
+ "command": "workbench.action.files.openFolder",
+ "when": "openFolderWorkspaceSupport"
+ },
+ {
+ "key": "ctrl+k ctrl+o",
+ "command": "-workbench.action.files.openFolder",
+ "when": "openFolderWorkspaceSupport"
+ },
+ {
+ "key": "shift+alt+left",
+ "command": "-editor.action.smartSelect.shrink",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "ctrl+shift+t",
+ "command": "workbench.action.toggleTabsVisibility"
+ },
+ {
+ "key": "ctrl+shift+t",
+ "command": "-workbench.action.reopenClosedEditor"
+ },
+ {
+ "key": "ctrl+shift+b",
+ "command": "-workbench.action.tasks.build",
+ "when": "taskCommandsRegistered"
+ },
+ {
+ "key": "ctrl+k left",
+ "command": "-workbench.action.moveActiveEditorGroupLeft"
+ },
+ {
+ "key": "ctrl+alt+left",
+ "command": "-workbench.action.moveEditorToPreviousGroup"
+ },
+ {
+ "key": "ctrl+alt+right",
+ "command": "-workbench.action.moveEditorToNextGroup"
+ },
+ {
+ "key": "ctrl+k right",
+ "command": "-workbench.action.moveActiveEditorGroupRight"
+ },
+ {
+ "key": "ctrl+k up",
+ "command": "-workbench.action.moveActiveEditorGroupUp"
+ },
+ {
+ "key": "ctrl+k down",
+ "command": "-workbench.action.moveActiveEditorGroupDown"
+ },
+ {
+ "key": "ctrl+alt+down",
+ "command": "workbench.action.moveEditorToBelowGroup"
+ },
+ {
+ "key": "ctrl+alt+up",
+ "command": "workbench.action.moveEditorToAboveGroup"
+ },
+ {
+ "key": "ctrl+alt+left",
+ "command": "workbench.action.moveEditorToLeftGroup"
+ },
+ {
+ "key": "ctrl+alt+right",
+ "command": "workbench.action.moveEditorToRightGroup"
+ },
+ {
+ "key": "ctrl+m",
+ "command": "editor.action.toggleMinimap"
+ },
+ {
+ "key": "ctrl+shift+m",
+ "command": "-rust-analyzer.matchingBrace",
+ "when": "editorTextFocus && editorLangId == 'rust'"
+ },
+ {
+ "key": "ctrl+m",
+ "command": "-markdown.extension.editing.toggleMath",
+ "when": "editorTextFocus && !editorReadonly && editorLangId =~ /^markdown$|^rmd$|^quarto$/"
+ },
+ {
+ "key": "ctrl+m",
+ "command": "-editor.action.toggleTabFocusMode"
+ },
+ {
+ "key": "ctrl+d",
+ "command": "-vscode-neovim.ctrl-d",
+ "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
+ },
+ {
+ "key": "ctrl+u",
+ "command": "-vscode-neovim.ctrl-u",
+ "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
+ },
+ {
+ "key": "ctrl+f",
+ "command": "-vscode-neovim.ctrl-f",
+ "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
+ },
+ {
+ "key": "ctrl+b",
+ "command": "-vscode-neovim.ctrl-b",
+ "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
+ },
+ {
+ "command": "vscode-neovim.send",
+ "key": "ctrl+d",
+ "when": "editorTextFocus && neovim.init && neovim.mode != insert || neovim.recording",
+ "args": ""
+ },
+ {
+ "command": "vscode-neovim.send",
+ "key": "ctrl+u",
+ "when": "editorTextFocus && neovim.init && neovim.mode != insert || neovim.recording",
+ "args": ""
+ },
+ {
+ "command": "vscode-neovim.send",
+ "key": "ctrl+f",
+ "when": "editorTextFocus && neovim.init && neovim.mode != insert || neovim.recording",
+ "args": ""
+ },
+ {
+ "command": "vscode-neovim.send",
+ "key": "ctrl+b",
+ "when": "editorTextFocus && neovim.init && neovim.mode != insert || neovim.recording",
+ "args": ""
+ },
+ {
+ "key": "ctrl+d",
+ "command": "-vscode-neovim.ctrl-d",
+ "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
+ },
+ {
+ "key": "ctrl+u",
+ "command": "-vscode-neovim.ctrl-u",
+ "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
+ },
+ {
+ "key": "ctrl+f",
+ "command": "-vscode-neovim.ctrl-f",
+ "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
+ },
+ {
+ "key": "ctrl+b",
+ "command": "-vscode-neovim.ctrl-b",
+ "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'"
+ },
+ {
+ "command": "vscode-neovim.send",
+ "key": "ctrl+d",
+ "when": "editorTextFocus && neovim.init && neovim.mode != insert || neovim.recording",
+ "args": ""
+ },
+ {
+ "command": "vscode-neovim.send",
+ "key": "ctrl+u",
+ "when": "editorTextFocus && neovim.init && neovim.mode != insert || neovim.recording",
+ "args": ""
+ },
+ {
+ "command": "vscode-neovim.send",
+ "key": "ctrl+f",
+ "when": "editorTextFocus && neovim.init && neovim.mode != insert || neovim.recording",
+ "args": ""
+ },
+ {
+ "command": "vscode-neovim.send",
+ "key": "ctrl+b",
+ "when": "editorTextFocus && neovim.init && neovim.mode != insert || neovim.recording",
+ "args": ""
+ },
+]
\ No newline at end of file
diff --git a/.config/VSCodium/User/settings.json b/.config/VSCodium/User/settings.json
new file mode 100644
index 00000000..846ecf57
--- /dev/null
+++ b/.config/VSCodium/User/settings.json
@@ -0,0 +1,249 @@
+{
+ // open json editor for settings
+ "workbench.settings.editor": "json",
+
+ // Theme
+ "workbench.colorTheme": "Catppuccin Macchiato",
+ "workbench.preferredDarkColorTheme": "Catppuccin Macchiato",
+ "workbench.iconTheme": "catppuccin-perfect-mocha",
+ "workbench.preferredHighContrastColorTheme": "Catppuccin Macchiato",
+ "catppuccin.accentColor": "lavender",
+ "catppuccin.extraBordersEnabled": true,
+ "catppuccin.italicKeywords": true,
+
+ // Font
+ "editor.fontFamily": "JetBrainsMono Nerd Font",
+ "editor.inlayHints.fontFamily": "JetBrainsMono Nerd Font",
+ "terminal.integrated.fontFamily": "JetBrainsMono Nerd Font",
+ "scm.inputFontFamily": "JetBrainsMono Nerd Font",
+ "chat.editor.fontFamily": "JetBrainsMono Nerd Font",
+ "debug.console.fontFamily": "JetBrainsMono Nerd Font",
+ "editor.codeLensFontFamily": "JetBrainsMono Nerd Font",
+ "notebook.output.fontFamily": "JetBrainsMono Nerd Font",
+ "markdown.preview.fontFamily": "JetBrainsMono Nerd Font",
+ "errorLens.fontFamily": "JetBrainsMono Nerd Font",
+ "editor.fontSize": 14,
+ "terminal.integrated.fontSize": 14,
+
+ // UI
+ "window.commandCenter": false,
+ "editor.lineNumbers": "relative",
+ "window.menuBarVisibility": "toggle",
+ "editor.minimap.enabled": false,
+ "editor.overviewRulerBorder": false,
+ "workbench.editor.enablePreviewFromCodeNavigation": true,
+ "workbench.view.alwaysShowHeaderActions": true,
+ "workbench.startupEditor": "none",
+ "editor.scrollbar.horizontal": "hidden",
+ "editor.hideCursorInOverviewRuler": true,
+ "workbench.statusBar.visible": false,
+ "workbench.editor.empty.hint": "hidden",
+ "workbench.editor.tabActionCloseVisibility": false,
+ "markdown-preview-github-styles.lightTheme": "dark",
+ "markdown-preview-github-styles.colorTheme": "dark",
+ "editor.matchBrackets": "never",
+ "files.trimTrailingWhitespace": true,
+ "editor.foldingImportsByDefault": true,
+ "editor.guides.bracketPairs": true,
+ "editor.guides.highlightActiveIndentation": true,
+ "editor.guides.bracketPairsHorizontal": "active",
+ "cSpell.language": "en, es",
+ "search.followSymlinks": false,
+ "workbench.editor.showTabs": "multiple",
+ "explorer.compactFolders": false,
+ "breadcrumbs.filePath": "off",
+ "editor.bracketPairColorization.enabled": true,
+ "editor.scrollbar.vertical": "hidden",
+ "editor.wordWrap": "off",
+
+ // Misc
+ "codeium.enableCodeLens": false,
+ "git.openRepositoryInParentFolders": "never",
+ "editor.linkedEditing": true,
+ "git.closeDiffOnOperation": true,
+ "workbench.editor.scrollToSwitchTabs": true,
+ "editor.inlayHints.enabled": "on",
+ "editor.autoClosingBrackets": "always",
+ "diffEditor.codeLens": true,
+ "editor.suggest.preview": true,
+ "debug.allowBreakpointsEverywhere": true,
+ "editor.suggest.matchOnWordStartOnly": false,
+ "editor.mouseWheelZoom": true,
+ "codeium.enableSearch": true,
+ "workbench.editor.splitInGroupLayout": "vertical",
+ "files.associations": {
+ ".env*": "dotenv"
+ },
+ "update.mode": "manual",
+
+ // APC
+ "apc.activityBar": {
+ "position": "bottom",
+ "hideSettings": true,
+ "size": 28
+ },
+ "apc.electron": {
+ "titleBarStyle": "hiddenInset",
+ "trafficLightPosition": {
+ "x": 12,
+ "y": 10
+ }
+ },
+ "apc.font.family": "JetBrainsMono Nerd Font",
+ "apc.monospace.font.family": "JetBrainsMono Nerd Font",
+ "apc.statusBar": {
+ "position": "editor-bottom",
+ "height": 28,
+ "fontSize": 12
+ },
+
+ // Custom css
+ "apc.stylesheet": {
+ ".title-actions": "display: none !important",
+ ".tabs-and-actions-container > .editor-actions": "display: none !important",
+ ".titlebar-center": "display: none !important",
+ ".titlebar-right": "display: none !important",
+ ".inline-tabs-placeholder": "display: none !important"
+ },
+
+ // Toggle excluded files
+ "files.exclude": {
+ "**/.git": true,
+ "**/.svn": true,
+ "**/.hg": true,
+ "**/CVS": true,
+ "**/.DS_Store": true,
+ "**/Thumbs.db": true,
+ "**/node_modules": true,
+ "**/.next": true,
+ "**/.husky": true,
+ "**/drizzle": true,
+ "**/dist": true,
+ "**/.todo.md": true,
+ "**/.vscode": true,
+ "**/.eslintrc.cjs": true,
+ "**/.editorconfig": true,
+ "**/.gitignore": true,
+ "**/.lintstagedrc.mjs": true,
+ "**/.markdownlint.json": true,
+ "**/.markdownlintignore": true,
+ "**/.prettierignore": true,
+ "**/bun.lockb": true,
+ "**/cspell.json": true,
+ "**/package-lock.json": true,
+ "**/pnpm-lock.yaml": true,
+ "**/next-env.d.ts": true,
+ "**/postcss.config.cjs": true,
+ "**/prettier.config.js": true,
+ "**/README.md": true,
+ "**/next.config.js": true,
+ "**/tailwind.config.ts": true,
+ "**/drizzle.config.ts": true,
+ "**/migrate.ts": true,
+ "**/.env.example": true
+ },
+
+ // Neovim
+ "extensions.experimental.affinity": {
+ "asvetliakov.vscode-neovim": 1
+ },
+
+ // Project Manager
+ "projectManager.git.baseFolders": [
+ "/home/matt/Repos/Work",
+ "/home/matt/Repos/Personal",
+ "/home/matt/Repos/Community",
+ "/home/matt/Repos/Class"
+ ],
+
+ // Smooth movement
+ "editor.cursorSmoothCaretAnimation": "on",
+ "workbench.list.smoothScrolling": true,
+ "terminal.integrated.smoothScrolling": true,
+ "editor.cursorBlinking": "smooth",
+ "editor.smoothScrolling": true,
+
+ // Animations
+ "animations.Enabled": true,
+ "animations.Active": "Indent",
+ "animations.Scrolling": "Slide",
+ "animations.Durations": {
+ "Command-Palette": 400,
+ "Scrolling": 300,
+ "Active": 200,
+ "Smooth-Mode": 300,
+ "Tabs": 300
+ },
+ "animations.Smooth-Mode": true,
+ "animations.Install-Method": "Apc Customize UI++",
+ "apc.imports": [
+ "file:///home/matt/.vscode/extensions/brandonkirbyson.vscode-animations-2.0.1/dist/updateHandler.js"
+ ],
+
+ // Language specific
+ "markdown.preview.scrollEditorWithPreview": true,
+ "markdown.preview.scrollPreviewWithEditor": true,
+ "Lua.codeLens.enable": true,
+ "html.format.enable": true,
+ "json.format.enable": true,
+ "javascript.format.enable": true,
+ "redhat.telemetry.enabled": false,
+
+ // Terminal
+ "terminal.integrated.cursorBlinking": true,
+ "terminal.external.linuxExec": "kitty",
+ "terminal.integrated.cursorStyle": "line",
+ "terminal.integrated.defaultProfile.linux": "fish",
+ "terminal.integrated.gpuAcceleration": "on",
+ "terminal.integrated.shellIntegration.suggestEnabled": true,
+ "terminal.integrated.enableImages": true,
+ "terminal.explorerKind": "external",
+ "terminal.integrated.env.linux": {},
+
+ // Zen mode
+ "zenMode.showTabs": "none",
+ "zenMode.hideLineNumbers": false,
+ "zenMode.silentNotifications": false,
+ "zenMode.fullScreen": false,
+
+ // Error lens
+ "errorLens.errorGutterIconColor": "#ED8796",
+ "errorLens.searchForProblemQuery": "https://search.brave.com/search?q=$message",
+ "errorLens.warningGutterIconColor": "#EED49F",
+
+ // Colorize
+ "colorize.include": [
+ "**/*.lua",
+ "**/*.cs",
+ "**/*.css",
+ "**/*.scss",
+ "**/*.sass",
+ "**/*.less",
+ "**/*.styl",
+ "**/*.xml",
+ "**/*.svg",
+ "**/*.json",
+ "**/*.js",
+ "**/*.java",
+ "**/*.kt",
+ "**/*.cpp",
+ "**/*.rasi"
+ ],
+ "colorize.languages": [
+ "css",
+ "sass",
+ "scss",
+ "less",
+ "postcss",
+ "sss",
+ "stylus",
+ "xml",
+ "svg",
+ "json",
+ "javascript",
+ "java",
+ "c",
+ "rasi",
+ "markdown"
+ ],
+}
\ No newline at end of file
diff --git a/.config/VSCodium/User/snippets/css.json b/.config/VSCodium/User/snippets/css.json
new file mode 100644
index 00000000..835896fe
--- /dev/null
+++ b/.config/VSCodium/User/snippets/css.json
@@ -0,0 +1,13 @@
+{
+ "ignore (prettier)": {
+ "body": "/* prettier-ignore */",
+ "prefix": "ignore (prettier)"
+ },
+ "ignore range (stylelint)": {
+ "body": [
+ "/* stylelint-disable ${1:no-duplicate-selectors} */",
+ "/* stylelint-enable ${1:no-duplicate-selectors} */"
+ ],
+ "prefix": "ignore range (stylelint)"
+ }
+}
diff --git a/.config/VSCodium/User/snippets/global.json b/.config/VSCodium/User/snippets/global.json
new file mode 100644
index 00000000..96e7c982
--- /dev/null
+++ b/.config/VSCodium/User/snippets/global.json
@@ -0,0 +1,6 @@
+{
+ "nonbreaking space": {
+ "body": " ",
+ "prefix": "nonbreaking space"
+ }
+}
diff --git a/.config/VSCodium/User/snippets/lua.json b/.config/VSCodium/User/snippets/lua.json
new file mode 100644
index 00000000..f7e8a981
--- /dev/null
+++ b/.config/VSCodium/User/snippets/lua.json
@@ -0,0 +1,50 @@
+{
+ "@class (LuaDoc)": {
+ "body": [
+ "---@class (exact) ${1:class_name}",
+ "---@field ${2:field_name} string",
+ "---@field ${3:field_name} string"
+ ],
+ "description": "https://github.com/LuaLS/lua-language-server/wiki/Annotations#class",
+ "prefix": "@class (LuaDoc)"
+ },
+ "@type (LuaDoc)": {
+ "body": "---@type ${1:string}",
+ "prefix": "@type (LuaDoc)"
+ },
+ "export module": {
+ "body": [
+ "local M = {}",
+ "--------------------------------------------------------------------------------",
+ "",
+ "$0--------------------------------------------------------------------------------",
+ "return M"
+ ],
+ "prefix": "export module"
+ },
+ "find all in string": {
+ "body": [
+ "local ${1:matches} = {}",
+ "for match in ${2:str}:gmatch(${3:pattern}) do",
+ "\ttable.insert(${1:matches}, match)",
+ "end"
+ ],
+ "prefix": "find all in string"
+ },
+ "home": {
+ "body": "os.getenv(\"HOME\")",
+ "prefix": "home"
+ },
+ "ignore (stylua)": {
+ "body": "-- stylua: ignore",
+ "prefix": "ignore (stylua)"
+ },
+ "ignore start/end (stylua)": {
+ "body": ["-- stylua: ignore start", "-- stylua: ignore end"],
+ "prefix": "ignore start/end (stylua)"
+ },
+ "import module": {
+ "body": "local ${1:name} = require(\"${2:module}.${1:name}\")",
+ "prefix": "import module"
+ }
+}
diff --git a/.config/VSCodium/User/snippets/markdown.json b/.config/VSCodium/User/snippets/markdown.json
new file mode 100644
index 00000000..10dad64e
--- /dev/null
+++ b/.config/VSCodium/User/snippets/markdown.json
@@ -0,0 +1,72 @@
+{
+ "caution (callout)": {
+ "body": [
+ "> [!CAUTION]",
+ "> $0"
+ ],
+ "description": "https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts",
+ "prefix": "caution (callout)"
+ },
+ "centerdiv": {
+ "body": "$0
",
+ "prefix": "centerdiv"
+ },
+ "details & summary": {
+ "body": [
+ "",
+ "${1:Text}
",
+ "$0",
+ " "
+ ],
+ "description": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details",
+ "prefix": [
+ "toggle / fold",
+ "details & summary"
+ ]
+ },
+ "div": {
+ "body": "$0
",
+ "description": "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div",
+ "prefix": "div"
+ },
+ "image": {
+ "body": "
",
+ "description": "HTML syntax for images used to display images with reduced size",
+ "prefix": "image"
+ },
+ "important (callout)": {
+ "body": [
+ "> [!IMPORTANT]",
+ "> $0"
+ ],
+ "description": "https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts",
+ "prefix": "important (callout)"
+ },
+ "note (callout)": {
+ "body": [
+ "> [!NOTE]",
+ "> $0"
+ ],
+ "description": "https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts",
+ "prefix": [
+ "info (callout)",
+ "note (callout)"
+ ]
+ },
+ "tip (callout)": {
+ "body": [
+ "> [!TIP]",
+ "> $0"
+ ],
+ "description": "https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts",
+ "prefix": "tip (callout)"
+ },
+ "warning (callout)": {
+ "body": [
+ "> [!WARNING]",
+ "> $0"
+ ],
+ "description": "https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts",
+ "prefix": "warning (callout)"
+ }
+}
diff --git a/.config/VSCodium/User/snippets/python/python.json b/.config/VSCodium/User/snippets/python/python.json
new file mode 100644
index 00000000..01932eee
--- /dev/null
+++ b/.config/VSCodium/User/snippets/python/python.json
@@ -0,0 +1,19 @@
+{
+ "list comprehension": {
+ "body": "list(${1:value} for ${2:value} in ${3:iterable})$0",
+ "description": "List comprehension for creating a list based on existing lists.",
+ "prefix": "list comprehension"
+ },
+ "replace (regex)": {
+ "body": "re.sub(r\"${1:regex}\", r\"${2:replace}\", ${3:str})$0",
+ "prefix": "replace (regex)"
+ },
+ "ternary": {
+ "body": "${1:value1} if ${2:condition} else ${3:value2}",
+ "prefix": "ternary"
+ },
+ "while": {
+ "body": "while ${1:condition}:\n\t${2:pass}$0",
+ "prefix": "while"
+ }
+}
diff --git a/.config/ansible/roles/arch/packages/tasks/modules/coding.yml b/.config/ansible/roles/arch/packages/tasks/modules/coding.yml
index bd9bb397..36937bfe 100644
--- a/.config/ansible/roles/arch/packages/tasks/modules/coding.yml
+++ b/.config/ansible/roles/arch/packages/tasks/modules/coding.yml
@@ -43,7 +43,8 @@
- lazynpm
- scc-bin
- tgpt-bin
- - visual-studio-code-bin
+ - vscodium-bin
+ - vscodium-marketplace-bin
# Cargo
- name: Install Rust Packages
diff --git a/.github/README.md b/.github/README.md
index 22da30be..8ceb7d15 100644
--- a/.github/README.md
+++ b/.github/README.md
@@ -54,6 +54,7 @@ I've been working on this for a long time so I hope you like it!
- :dark_sunglasses: Dark Mode for the whole system
- :framed_picture: Various Wallpapers
- :nerd_face: Nerd Fonts for the Shell Prompt
+- :rocket: VSCodium with native integration of your Neovim setup
- :loud_sound: Volume OSD
- :iphone: App Launcher
- :keyboard: Multiple Keyboard Layouts
@@ -162,22 +163,23 @@ Here is all the information about my setup:
🖱️ GUI Apps
-| 📚 Entry | ✨ App |
-| --------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
-| **Music Player** | [Spotify](https://open.spotify.com/) (patched with [Spicetify](https://spicetify.app/)) [:gear:](../.config/spicetify/) |
-| **Web Browser** | 💖 [Librewolf](https://librewolf.net/) [:gear:](../.config/browser/) |
-| **Messaging App** | [Discord](https://discord.com/) (patched with [BetterDiscord](https://betterdiscord.app/)) [:gear:](../.config/BetterDiscord/) |
-| **Email Client** | [Thunderbird](https://www.thunderbird.net/) |
-| **PDF Viewer** | [Zathura](https://pwmt.org/projects/zathura/) [:gear:](../.config/zathura/) |
-| **Note Taking App** | 💖 [Obsidian](https://obsidian.md/) [:gear:](../.config/obsidian/) |
-| **Video Player** | [Celluloid](https://celluloid-player.github.io/) ([MPV](https://mpv.io/) frontend) [:gear:](../.config/mpv/) |
-| **Image Viewer** | [geeqie](https://www.geeqie.org/) [:gear:](../.config/geeqie/) |
-| **File Manager** | [Nemo](https://community.linuxmint.com/software/view/nemo) |
-| **Audio Effects** | [Easyeffects](https://github.com/wwmm/easyeffects) |
-| **Image Editor** | [Krita](https://krita.org/) |
-| **VM Manager** | [Virt-Manager](https://virt-manager.org/) ([QEMU](https://www.qemu.org/)) |
-| **Recording Program** | [OBS](https://obsproject.com/) |
-| **Office Apps** | [LibreOffice](https://www.libreoffice.org/) |
+| 📚 Entry | ✨ App |
+| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
+| **Music Player** | [Spotify](https://open.spotify.com/) (patched with [Spicetify](https://spicetify.app/)) [:gear:](../.config/spicetify/) |
+| **Fallback Text Editor** | [VSCodium](https://vscodium.com/) [:gear:](../.config/VSCodium/User/) |
+| **Web Browser** | 💖 [Librewolf](https://librewolf.net/) [:gear:](../.config/browser/) |
+| **Messaging App** | [Discord](https://discord.com/) (patched with [BetterDiscord](https://betterdiscord.app/)) [:gear:](../.config/BetterDiscord/) |
+| **Email Client** | [Thunderbird](https://www.thunderbird.net/) |
+| **PDF Viewer** | [Zathura](https://pwmt.org/projects/zathura/) [:gear:](../.config/zathura/) |
+| **Note Taking App** | 💖 [Obsidian](https://obsidian.md/) [:gear:](../.config/obsidian/) |
+| **Video Player** | [Celluloid](https://celluloid-player.github.io/) ([MPV](https://mpv.io/) frontend) [:gear:](../.config/mpv/) |
+| **Image Viewer** | [geeqie](https://www.geeqie.org/) [:gear:](../.config/geeqie/) |
+| **File Manager** | [Nemo](https://community.linuxmint.com/software/view/nemo) |
+| **Audio Effects** | [Easyeffects](https://github.com/wwmm/easyeffects) |
+| **Image Editor** | [Krita](https://krita.org/) |
+| **VM Manager** | [Virt-Manager](https://virt-manager.org/) ([QEMU](https://www.qemu.org/)) |
+| **Recording Program** | [OBS](https://obsproject.com/) |
+| **Office Apps** | [LibreOffice](https://www.libreoffice.org/) |