<aside> 🌍 This page is public. Read about our take on public when possible, private when necessary.
</aside>
Our users are asking us to add a means for persistent per-user configuration: https://github.com/gitpod-io/gitpod/issues/5198
The happy path is pretty close to how Codespaces implements this feature.
<aside> 💡 This section desperately needs visual design @George Tsiolis
</aside>
Users configure a "dot file repository" in their user preferences. Super rough outline for where this could be positioned:
This repo must either be public, or can be pulled using one of the authentication providers the user has signed in with.
Cloning the dotfile repo: the dotfiles must be in place before the IDE starts, because they're likely to change the PATH
environment variable. dotfile repo init can happen in parallel with the content init though.
We would clone the repo to /home/gitpod/.dotfiles
. If that directory already exists, it will be removed prior to the clone operation.
Installing the dotfiles: we look for a setup script in the cloned dotfile repo using this list:
If no such script is found, we symlink every file and folder starting with a .
from within the cloned repo to /home/gitpod
. For example:
As long as we just backup/snapshot the /workspace
directory, dotfiles do not concern this process. With full workspace backup however, they do.
We could argue that dotfiles are installed once on first workspace startup and are not updated during restarts. This means we don't have to treat dotfiles in any special way.
<aside> 💡 This section will need a discussion on the desired behaviour.
</aside>
It's not clear if users would expect