VSCodium: Difference between revisions
imported>Raboof document how to use vscode-with-extensions with vscodium |
Use example with hash |
||
(13 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
VSCodium is a build of [[ | VSCodium is a build of [[Visual Studio Code]] without the proprietary bits that are included in the official distribution. See https://github.com/VSCodium/vscodium#readme for more background. | ||
== | == Installation == | ||
=== NixOS === | |||
<syntaxHighlight lang=nix> | <syntaxHighlight lang=nix> | ||
environment.systemPackages = with pkgs; [ vscodium ]; | |||
</syntaxHighlight> | |||
bbenoist. | |||
Extensions can be managed using the 'vscode-with-extensions' package: | |||
<syntaxhighlight lang="nix"> | |||
environment.systemPackages = with pkgs; [ | |||
(vscode-with-extensions.override { | |||
vscode = vscodium; | |||
vscodeExtensions = with vscode-extensions; [ | |||
bbenoist.nix | |||
ms-python.python | ms-python.python | ||
ms-azuretools.vscode-docker | ms-azuretools.vscode-docker | ||
] | ms-vscode-remote.remote-ssh | ||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ | |||
{ | |||
name = "dscodegpt"; | |||
publisher = "DanielSanMedium"; | |||
version = "3.4.10"; | |||
} | hash = "sha256-zjaM9YME0wfBOwhJTacnQbQvw35QL5NvXIBAx5d/bjI="; | ||
} | |||
]; | |||
}) | |||
]; | |||
</syntaxhighlight> | |||
Some examples here: [https://github.com/search?q=extensionFromVscodeMarketplace&type=code GitHub search for "extensionFromVscodeMarketplace"] | |||
vscodium | |||
{{ic|extensionsFromVscodeMarketplace}} is a manual way to fetch extensions. However, to keep updated from upstream, [https://github.com/nix-community/nix-vscode-extensions nix-community/nix-vscode-extensions] provides the Nix expressions for the majority of available extensions from Open VSX and VSCode Marketplace. A GitHub Action updates the extensions daily. | |||
It's also possible to install VSCodium via [[Home Manager]]: | |||
<syntaxhighlight lang="nix"> | |||
programs.vscode = { | |||
enable = true; | |||
package = pkgs.vscodium; | |||
extensions = with pkgs.vscode-extensions; [ | |||
dracula-theme.theme-dracula | |||
vscodevim.vim | |||
yzhang.markdown-all-in-one | |||
]; | ]; | ||
}; | |||
</syntaxhighlight> | |||
* See for more options: [https://nix-community.github.io/home-manager/options.html#opt-programs.vscode.enable Home Manager Manual: Options - programs.vscode] | |||
* Search for extensions with configurations: [https://search.nixos.org/packages?type=packages&query=vscode-extensions NixOS Search: vscode-extensions] | |||
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [https://github.com/VSCodium/vscodium/blob/master/DOCS.md#proprietary-debugging-tools this note on the VSCodium docs page] for what's been found so far and possible workarounds. | |||
In particular, [https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh remote-ssh] does not work yet with VSCodium. | |||
=== Non-NixOS === | |||
<syntaxHighlight lang="console"> | |||
$ nix-env -iA nixos.vscodium | |||
</syntaxHighlight> | |||
=== Use VS Code extensions without additional configuration === | |||
With the package vscodium.fhs, the editor launches inside a [https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard FHS] compliant chroot environment using buildFHSUserEnv. This reintroduces directories such as /bin, /lib, and /usr, which allows for extensions which ship pre-compiled binaries to work with little to no additional nixification. | |||
{{note|From a philosophical view, use of buildFHSUserEnv allows for ease-of-use at the cost of some impurity and non-reproducibility. If you prioritize purely-declarative configurations, please stay with the above guidance.}} | |||
Example usage: | |||
<syntaxHighlight lang=nix> | |||
environment.systemPackages = with pkgs; [ vscodium.fhs ]; | |||
</syntaxHighlight> | |||
Home-manager: | |||
<syntaxHighlight lang=nix> | |||
programs.vscode = { | |||
enable = true; | |||
package = pkgs.vscodium.fhs; | |||
}; | |||
</syntaxHighlight> | |||
Adding extension-specific dependencies, these will be added to the FHS environment: | |||
<syntaxHighlight lang=nix> | |||
# needed for rust lang server extension | |||
programs.vscode.package = pkgs.vscodium.fhsWithPackages (ps: with ps; [ rustup zlib ]); | |||
</syntaxHighlight> | |||
== Creating development environments using nix-shell == | |||
Instead of using configuration.nix to add packages (e.g. Python or NodeJS) for developing code on VSCode, you can instead use nix-shell. This will allow you to seamlessly create development environments with the correct packages for your project, without rebuilding and restarting NixOS. See [[Development_environment_with_nix-shell | this page]] for further instructions in building nix-shell development environments. | |||
The extension [https://marketplace.visualstudio.com/items?itemName=arrterian.nix-env-selector nix-env-selector] will make switching between different nix-shell environments within VSCode so you can switch between different coding projects easily. It has a guide for setting up nix-shell environments for VSCode. | |||
== Troubleshooting == | |||
=== Issues running Vscodium on Wayland === | |||
In case of a broken graphical interface while running Vscodium on [[Wayland]], removing following cache directories might resolve the issues: | |||
<syntaxHighlight lang="console"> | |||
$ rm -r ~/.config/VSCodium/GPUCache ~/.config/VSCodium/Crashpad | |||
</syntaxHighlight> | |||
An other workaround is to run Vscodium without GPU acceleration | |||
<syntaxHighlight lang="console"> | |||
$ codium --disable-gpu | |||
</syntaxHighlight> | </syntaxHighlight> | ||
[[Category:Applications]] |