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": "\"${2:alt", + "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/) |