@ -267,6 +267,10 @@ It should also be wayland by default, but you can check it by `doas apk add xeye
In order for screen sharing to work, go to `chrome://flags/#enable-webrtc-pipewire-capturer` and enable it.
In order for screen sharing to work, go to `chrome://flags/#enable-webrtc-pipewire-capturer` and enable it.
Note though that every time you screenshare, there will be two promps from xdg-desktop-portal, one for picking a source, and another for actually sharing.
Note though that every time you screenshare, there will be two promps from xdg-desktop-portal, one for picking a source, and another for actually sharing.
### Archives
`apk install ouch` to avoid having to remember `tar` flags etc, and instead do `ouch decompress archive.tar.gz` (for any archive format).
### Git
### Git
```
```
@ -677,33 +681,40 @@ doas rc-service squid start
In host, create new FF profile (`about:profiles`) for that purpose, and configure it to use squid proxy running inside of container.
In host, create new FF profile (`about:profiles`) for that purpose, and configure it to use squid proxy running inside of container.
#### VS Code Remote (does not work)
#### VS Code Remote
Connects to host successfully, but does not let to do anything (not even to open a folder):
Note that VS Code (and all related products) has a protection intended to prevent OSS variants from connecting to proprietary versions of VS code.
produces "Connection error: Client refused: version mismatch" error,
However, apparently, it is implemented in such a way that it prevents even different OSS products from connecting to each other.
presumably due to code-oss being used on VS client (system host) and vscodium being used on host (LXC container).
Only "Code OSS" is packaged for Alpine; and only VSCodium has server-side builds, so you'll need to patch Code OSS to make it pretend to be VSCodium.
(Only code-oss is present in alpine packages, and only vscodium has remote-host binaries).
Steps to get to that stage (one of the sources: https://github.com/microsoft/vscode-remote-release/issues/6347),
Steps to get it running, assuming that you already have keyring and key-based SSH auth (with non-RSA key) configured:
assuming that you already have keyring and key-based SSH auth (with non-RSA key) configured:
In container:
In container (one of the sources: https://github.com/microsoft/vscode-remote-release/issues/6347):
```
```
doas apk add gcompat libstdc++ curl bash git procps
doas apk add gcompat libstdc++ curl bash git procps
```
```
and enable `AllowTcpForwarding` and `PermitTunnel` in `/etc/ssh/sshd_config`.
and enable `AllowTcpForwarding` and `PermitTunnel` in `/etc/ssh/sshd_config`.
In host:
On host (where you intend to run IDE client):
`doas apk add code-oss`
`doas apk add code-oss`
Edit `/usr/lib/code-oss/resources/app/package.json`: at the root level, add `"release": "22245",`
Using e.g. Firefox, download `vscodium-reh-linux-x64-...` for a relevant build (with a version matching to code-oss)
(replace 22245 with an actual value for your version from https://github.com/VSCodium/vscodium/releases).
from https://github.com/VSCodium/vscodium/releases
`linuxIconName`, `reportIssueUrl` and `date` fields,
and adding `updateUrl`, `quality` and `commit` fields was enough.
But most of these fields are probably irrelevant and can be left as is.
Run `code-oss`, add "Open Remote - SSH" extension by jeanp413, exit.
Run `code-oss`, add "Open Remote - SSH" extension by jeanp413, exit.
@ -712,7 +723,9 @@ Add `"enable-proposed-api": ["jeanp413.open-remote-ssh"]` at the root level of `
Run `code-oss` again, you'll get remote button under the marketplace button.
Run `code-oss` again, you'll get remote button under the marketplace button.
Go there, add your host, right-click it, connect.
Go there, add your host, right-click it, connect.
Connection should be successful, and you should see "connected to remote" on Code OSS main screen.
Connection should be successful, and you should see "connected to remote" on Code OSS main screen.
But "Open file" / "Open folder" will still list local directory structure, and in debug output for "Window" there will be an error message about "version mismatch".
"Open folder" should take you to the remote directory structure, allowing you to open projects hosted in container.
All code-related extensions will also work in remote context, isolated from the parent system and unable to affect it,
no matter what malicious npm packages get installed into container.