From d96775f4dd69931ebf71c2078eead268a9dcc05d Mon Sep 17 00:00:00 2001 From: Ulysse Cura Date: Thu, 16 Jul 2026 18:58:20 +0200 Subject: [PATCH] Moved from vscode to vscodium, and added extensions and config. --- packages.nix | 52 +++++++++++- users-configuration/ulysse-cura-home.nix | 11 +-- .../ulysse-cura-vscodium-settings.jsonc | 82 +++++++++++++++++++ 3 files changed, 139 insertions(+), 6 deletions(-) create mode 100644 users-configuration/ulysse-cura-vscodium-settings.jsonc diff --git a/packages.nix b/packages.nix index cc820b1..f47b6ec 100644 --- a/packages.nix +++ b/packages.nix @@ -38,7 +38,56 @@ # withSubmodules = true; # }); + patchedVSCodium = (pkgs.vscode-with-extensions.override { + vscode = pkgs.vscodium; + vscodeExtensions = with pkgs.vscode-extensions; [ + mads-hartmann.bash-ide-vscode + twxs.cmake + bierner.color-info + ecmel.vscode-html-css + shd101wyy.markdown-preview-enhanced + jnoortheen.nix-ide + christian-kohler.path-intellisense + ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + { + name = "minimal-green"; + publisher = "moldaz"; + version = "0.0.7"; + hash = "sha256-rihLJzq5Zng2Z76qEKHZrYKpSzsQrk5EZzxxjZ8074A="; + } + { + name = "ccls"; + publisher = "ccls-project"; + version = "0.1.32"; + hash = "sha256-sCsRwS2z/jJpHeSuSdcitk39WEzKBiaZgt0gYRpViYU="; + } + { + name = "LiveServer"; + publisher = "ritwickdey"; + version = "5.7.10"; + hash = "sha256-D474GdTCAH8b+zuO+1M+cnluKfBv7mAMdtH7F777W5U="; + } + { + name = "vscode-pdf"; + publisher = "mathematic"; + version = "0.1.11"; + hash = "sha256-h0liigU+oyHkZM9Kn3P8J/9IV8sgYI+fcpHV37WfNjk="; + } + { + name = "toggle-hidden"; + publisher = "adrianwilczynski"; + version = "1.0.2"; + hash = "sha256-ET8qBNtQHyOXB7oJOndkvW5ZqrZjFGZkkAv1CirpWuE="; + } + { + name = "teleplot"; + publisher = "alexnesnes"; + version = "1.0.2"; + hash = "sha256-vIPCB17KR35yYJybaSuTn85WNIb32NhXbEptmYn0QuY="; + } + ]; }); + patchedElementDesktop = (pkgs.element-desktop.overrideAttrs (oldAttrs: { desktopItems = [ ((builtins.elemAt oldAttrs.desktopItems 0).override { startupWMClass = "element"; }) @@ -74,10 +123,11 @@ prismlauncher # Developement - vscode # extensions configured by users + patchedVSCodium nixfmt nixd nil + ccls scrcpy android-tools # patchedPicoSdk diff --git a/users-configuration/ulysse-cura-home.nix b/users-configuration/ulysse-cura-home.nix index b57a6e7..7d4eb5f 100644 --- a/users-configuration/ulysse-cura-home.nix +++ b/users-configuration/ulysse-cura-home.nix @@ -18,6 +18,9 @@ in # REAPER ReaPack Plugin home.file.".config/REAPER/UserPlugins/reaper_reapack-x86_64.so".source = "${pkgs.reaper-reapack-extension}/UserPlugins/reaper_reapack-x86_64.so"; + # VSCodium config + home.file.".config/VSCodium/User/settings.json".source = ./ulysse-cura-vscodium-settings.jsonc; + # Gnome extensions. home.packages = with pkgs.gnomeExtensions; [ tophat @@ -81,7 +84,7 @@ in }; "org/gnome/desktop/app-folders/folders/Programming" = { name = "Programmation"; - apps = [ "code.desktop" "com.jetpackduba.Gitnuro.desktop" "arduino-ide.desktop" "org.godotengine.Godot4.6.desktop" "unityhub.desktop" ]; + apps = [ "codium.desktop" "com.jetpackduba.Gitnuro.desktop" "arduino-ide.desktop" "org.godotengine.Godot4.6.desktop" "unityhub.desktop" "code.desktop" ]; }; "org/gnome/desktop/app-folders/folders/Electronic" = { name = "Electronique"; @@ -115,14 +118,12 @@ in (apl-entry "firefox.desktop" 12) (apl-entry "element-desktop.desktop" 13) (apl-entry "discord.desktop" 14) - (apl-entry "io.bassi.Amberol.desktop" 15) - (apl-entry "org.gnome.Console.desktop" 16) - (apl-entry "code.desktop" 17) + (apl-entry "org.gnome.Console.desktop" 15) ] ]; }; "org/gnome/shell" = { - favorite-apps = [ "firefox.desktop" "org.gnome.Nautilus.desktop" "org.gnome.Console.desktop" "element-desktop.desktop" "discord.desktop" "io.bassi.Amberol.desktop" "org.prismlauncher.PrismLauncher.desktop" "steam.desktop" "code.desktop" "com.jetpackduba.Gitnuro.desktop" ]; + favorite-apps = [ "firefox.desktop" "org.gnome.Nautilus.desktop" "org.gnome.Console.desktop" "element-desktop.desktop" "discord.desktop" "io.bassi.Amberol.desktop" "org.prismlauncher.PrismLauncher.desktop" "steam.desktop" "codium.desktop" "com.jetpackduba.Gitnuro.desktop" ]; }; # Peripherals diff --git a/users-configuration/ulysse-cura-vscodium-settings.jsonc b/users-configuration/ulysse-cura-vscodium-settings.jsonc new file mode 100644 index 0000000..50820c7 --- /dev/null +++ b/users-configuration/ulysse-cura-vscodium-settings.jsonc @@ -0,0 +1,82 @@ +{ + "window.newWindowDimensions": "maximized", + "window.restoreFullscreen": true, + "window.commandCenter": false, + + "workbench.layoutControl.enabled": false, + "workbench.colorTheme": "minimalGreen", + "workbench.editor.empty.hint": "hidden", + + "editor.stickyScroll.enabled": false, + "editor.minimap.enabled": false, + "editor.renderWhitespace": "trailing", + "editor.unicodeHighlight.includeStrings": false, + + "explorer.confirmDelete": false, + "explorer.confirmDragAndDrop": false, + "explorer.confirmPasteNative": false, + + "terminal.integrated.persistentSessionReviveProcess": "never", + "terminal.integrated.enableMultiLinePasteWarning": "never", + "terminal.integrated.initialHint": false, + "terminal.integrated.cursorStyle": "line", + "terminal.integrated.cursorStyleInactive": "line", + "terminal.integrated.drawBoldTextInBrightColors": false, + "terminal.integrated.minimumContrastRatio": 1, + "terminal.integrated.stickyScroll.enabled": false, + "terminal.integrated.textBlinking": true, + + "application.shellEnvironmentResolutionTimeout": 100, + + "security.workspace.trust.untrustedFiles": "open", + + "chat.disableAIFeatures": true, + + "telemetry.feedback.enabled": false, + "telemetry.telemetryLevel": "off", + "telemetry.editStats.enabled": false, + + "git.enabled": false, + "extensions.ignoreRecommendations": true, + "bashIde.shellcheckArguments": "--exclude=SC2120,SC2155,SC2119", + "markdown-preview-enhanced.previewTheme": "atom-dark.css", + "nix.enableLanguageServer": true, + "nix.serverPath": "nil", // or "nixd", or ["executable", "argument1", ...] + // LSP config can be passed via the ``nix.serverSettings.{lsp}`` as shown below. + "nix.serverSettings": { + // check https://github.com/oxalica/nil/blob/main/docs/configuration.md for all options available + "nil": { + // "diagnostics": { + // "ignored": ["unused_binding", "unused_with"], + // }, + "formatting": { + "command": [ + "nixfmt" + ] + } + }, + // check https://github.com/nix-community/nixd/blob/main/nixd/docs/configuration.md for all nixd config + "nixd": { + "formatting": { + "command": [ + "nixfmt" + ] + }, + "options": { + // By default, this entry will be read from `import { }`. + // You can write arbitrary Nix expressions here, to produce valid "options" declaration result. + // Tip: for flake-based configuration, utilize `builtins.getFlake` + "nixos": { + "expr": "(builtins.getFlake \"/absolute/path/to/flake\").nixosConfigurations..options" + }, + "home-manager": { + "expr": "(builtins.getFlake \"/absolute/path/to/flake\").homeConfigurations..options" + }, + // Tip: use ${workspaceFolder} variable to define path + "nix-darwin": { + "expr": "(builtins.getFlake \"${workspaceFolder}/path/to/flake\").darwinConfigurations..options" + } + } + } + } +} \ No newline at end of file