summaryrefslogtreecommitdiff
path: root/posts/vscode.md
blob: 28505c7441a327efe3764efbb9a88e01cdb285ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[[!meta title="Running VSCode in Chromium on OpenBSD"]]
[[!meta date="2023-06-05"]]

VSCode and its many variations are not available on OpenBSD. This doesn't cause issue with many OpenBSD users, but those making the jump from Linux might miss access to such a popular editor. Lucky for us, there is a *hacky* workaround to solve this problem.

## VSCode in the Browser

I tried my best to build something like `code-server` locally and run that directly in my browser - but I failed miserably. Instead, I fell back on [vscode.dev](https://vscode.dev) which is essentially a remote version of `code-server`.

Getting things to work seamlessly proved a little more challenging. I found the best performance was running everything through Chromium with special parameters enabled on launch.

> **Note:** The following assumes you have already installed `chromium`

First we need to disable [unveil](https://man.openbsd.org/unveil.2) for Chromium. This will allow us to access our system files through [vscode.dev](https://vscode.dev) using the "Open folder..." or "Open file..." commands without issue:

```
chrome --disable-unveil
```

Everything should work pretty solid right out the box now - except it doesn't. Syntax highlighting does not work without enabling WASM/WebAssembly. Your experience might be different, but I had to include the following when launching Chromium from the terminal:

```
ENABLE_WASM=1 chrome --enable-wasm
```

Success! We can avoid typing out these complex commands everytime we want to launch our editor by setting up an `alias` (in my case via `.zshrc`):

```
alias vscode="ENABLE_WASM=1 chrome --enable-wasm --disable-unveil"
```

That's it! Now I can just pop open VSCode on OpenBSD by simply running `vscode` in my terminal. Hopefully this can help others slowly transition over to OpenBSD - which you should do because it is amazing!