Migrating from VS Code to VS Codium on Linux painlessly
Tags: webdev, vscode, tooling, tutorial
Published: 2022-06-13 10:32:37


Switching to [VS Codium](https://vscodium.com/) does not require much effort. You just need to install it and copy your configuration files across. If you are wondering why should I switch, you can read [my previous article where I compare the 2 editors](https://www.roboleary.net/tools/2022/05/31/vscode-vscodium-which-should-i-use.html).

## Install via a package manager (GNU/Linux)

My preference is to install VS Codium through a package manager and get automatic updates. You can consult [the installation instructions on the official website](https://vscodium.com/#install) for more info, there are options for most Linux distributions.

I got set-up through the [vscodium-deb-rpm-repo](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo) on my Ubuntu machine. This repo covers various Debian-based distributions and comes with [a good set of instructions](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo#how-to-install-for-debianubuntulinux-mint).

I added it using `apt-key`. You need the [`software-properties-common` package](https://askubuntu.com/questions/1000118/what-is-software-properties-common) available to do it this way.

```shell
wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | sudo apt-key add -
sudo apt-add-repository 'deb https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs/ vscodium main'
sudo apt update
sudo apt install codium
```

It worked as expected for me! 🌟

If there isn't an option for your particular package manager, it is also available in the Snap Store as [Codium](https://snapcraft.io/codium). I did use snap package for while previously and found that the udpates lagged behind a little bit.

```shell
snap install codium --classic
```

## Migrate configuration

You can use the [Settings Sync](https://open-vsx.org/extension/Shan/code-settings-sync) extension to upload/download your configuration from a GitHub Gist. So, you can install the extension in VS Code and upload everything, and then install the extension in VS Codium and download everything. I didn't try this myself. I found it quicker to move the configuration files myself as below.

### Migrate settings and keybindings manually

VS Code stores your user settings in `$HOME/.config/Code/User`. VS Codium store its settings in `$HOME/.config/VSCodium/User`. You can copy the entire contents of the folder across if you want.

```shell
# copy everything
cp -r $HOME/.config/Coe/User/* $HOME/.config/VSCodium/User
```

I targeted the keybindings, settings, and user snippets with the following from the command-line:

```shell
# copy keybindings, settings, and snippets
cp -r $HOME/.config/Code/User/settings.json $HOME/.config/Code/User/snippets $HOME/.config/Code/User/keybindings.json $HOME/.config/VSCodium/User
```

### Migrate extensions manually

VSCodium stores its extension files in `~/.vscode-oss`. You can copy the extensions from `~/.vscode/extensions` to `~/.vscode-oss/extensions`.

```shell
# copy extensions
sudo cp -R ~/.vscode/extensions ~/.vscode-oss
```

**Some of Microsoft's extensions have restricted licenses, so if you use them with VS Codium you are breaking the license terms. Keep this in mind if you copy across all your extensions.**

This is the [list of Microsoft extensions with their licenses](https://code.visualstudio.com/docs/supporting/oss-extensions). The most popular Microsoft extensions with restricted licenses are:

1. [C# language (powered by OmniSharp)](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp): Official C# language support.
2. [C++ language](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools): Official C++ language support.
3. [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare): Collaboratively edit and debug with others in real time in your editor.
4. [Remote - SSH](https://aka.ms/vscode-remote/download/ssh) - Work with source code in any location by opening folders on a remote  machine/VM using SSH.
5. [Remote - Containers](https://aka.ms/vscode-remote/download/containers) - Work with a separate toolchain or container based application by opening any folder mounted into or inside a container.
6. [Remote - WSL](https://aka.ms/vscode-remote/download/wsl) - Get a Linux-powered development experience from the comfort of  Windows by opening any folder in the Windows Subsystem for Linux.

There are some alternatives for these extensions in the [Open VSX Registry](https://open-vsx.org/). I did not use any of the extensions above, so I did not need to search!

## What about automatic updates?

I have been using VS Codium a while now, and the updates are done like clockwork. However, you may get nagged before the update is performed by a popup notification whenever you open VS Code, as below.

<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vlfe9pp22d49415jt3tb.png" alt="update badge on manage button" width="538" height="99" loading="lazy"/>

You will see a badge on the *manage* button in the *activity bar* whenever an update is available. The default location is the bottom left corner. I switched the *activity bar* to the right-hand side, so it looks like the following for me:

<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eprbtvp2e6facdthdcjz.png" alt="update badge on manage button" width="154" height="94" loading="lazy"/>

To update to the latest version, do it through your package manager.  For the APT package manager, you are using the `upgrade command`.

```shell
sudo apt-get upgrade
```

## What about the extensions?

VS Codium is configured to use [Open VSX Registry](https://open-vsx.org/), rather than the [Microsoft VS Code Marketplace](https://marketplace.visualstudio.com/VSCode). Your experience with the marketplace will be the same as with VS Code.

By now, Open VSX Registry has a lot of the same extensions as the Microsoft VS Code Marketplace. For licensing reasons, the Microsoft extensions mentioned previously are not there. Ultimately, it is up to the community to plug these gaps, and keep things ticking over.

As far as I can tell, a lot of the extensions are updated in Open VSX Registry at a similar cadence to VS Code Marketplace, but they are not totally aligned when extensions are not directly published by authors to the Open VSX Registry. So, you will encounter some differences. For example, the latest version of the ESLint extension is [v2.2.3 in the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint), and it is [v2.2.2 in Open VSX Registry](https://open-vsx.org/extension/dbaeumer/vscode-eslint). This is not a deal-breaker for me, but it could be for you!

My own experience is that I did not find any extensions missing, and I do not need to use the absolute latest of an extension. I tend to use less extensions than most. So, your mileage may vary.

## Final thoughts

I found it painless to switch to VS Codium. You can try them out side-by-side and see if there is anything you miss, or if you encounter any snags before making the switch full-time. The benefit is that you will be using a more privacy-oriented, fully open-source version of the editor. Give it a shot!