Jump to content

VSCodium: Difference between revisions

m
Category:Applications
imported>Trusktr
(add install section)
m (Category:Applications)
(11 intermediate revisions by 9 users not shown)
Line 1: Line 1:
VSCodium is a build of [[Vscode]] without the proprietary bits that are included in the official [[Vscode]] distribution. See https://github.com/VSCodium/vscodium#readme for more background.
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.


== Install ==
== Installation ==


Install the `vscodium` package.
=== NixOS ===


<syntaxhighlight lang="nix>
<syntaxHighlight lang=nix>
  environment.systemPackages = with pkgs; [ vscodium ];
environment.systemPackages = with pkgs; [ vscodium ];
</syntaxhighlight>
</syntaxHighlight>


== Managing extensions ==
Extensions can be managed using the 'vscode-with-extensions' package:
 
Extensions can be managed using the 'vscode-with-extensions' package, mostly like for [[Vscode]]:


<syntaxHighlight lang=nix>
<syntaxHighlight lang=nix>
let
environment.systemPackages = with pkgs; [
   extensions = (with pkgs.vscode-extensions; [
   (vscode-with-extensions.override {
       bbenoist.Nix
    vscode = vscodium;
    vscodeExtensions = with vscode-extensions; [
       bbenoist.nix
       ms-python.python
       ms-python.python
       ms-azuretools.vscode-docker
       ms-azuretools.vscode-docker
     ]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
      ms-vscode-remote.remote-ssh
    {
     ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
      name = "remote-ssh";
      {
      publisher = "ms-vscode-remote";
        name = "remote-ssh-edit";
      version = "0.47.2";
        publisher = "ms-vscode-remote";
      sha256 = "04niirbkrzsm4wk22pr5dcfymnhqq4vn25xwkf5xvbpw32v1bpp3";
        version = "0.47.2";
     }
        sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
    {
      }
      name = "remote-ssh-edit";
     ];
      publisher = "ms-vscode-remote";
  })
      version = "0.47.2";
];
      sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
</syntaxHighlight>
    }
 
   ];
Some examples here: [https://github.com/search?q=extensionFromVscodeMarketplace&type=code GitHub search for "extensionFromVscodeMarketplace"]
   vscodium-with-extensions = pkgs.vscode-with-extensions.override {
 
     vscode = pkgs.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.
     vscodeExtensions = extensions;
 
  };
It's also possible to install VSCodium via [[Home Manager]]:
in
 
  environment.systemPackages = [
<syntaxhighlight lang="nix">
     vscodium-with-extensions
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>


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.
[[Category:Applications]]
trusted
596

edits