I downloaded and ran VS Code from a tarball, which does not set up the vscode: protocol binding. So when I installed the Cody AI extension for VS Code, it prompted me to sign in, and I signed in with GitLab in Firefox, but when Firefox tried to redirect me back to VS Code using the vscode: protocol, it didn't know how to because the protocol wasn't registered.
How can I register the protocol manually?
Download the
.desktopfile template by going to https://github.com/microsoft/vscode/blob/main/resources/linux/code-url-handler.desktop and clicking the download icon in the top bar of the file.Edit the file you just downloaded. Replace
@@NAME_LONG@@with "VS Code". Replace@@EXEC@@with the full path to thecodeexecutable on your system. Replace@@ICON@@with some random application icon, e.g.firefox(it doesn't really matter). Replace@@URLPROTOCOL@@withvscode.Very important - do not skip this step, which I couldn't find documented anywhere else, or it won't work! Move the file into
~/.local/share/applicationsand remove any.downloadextension if your browser has added it - the file should now have a.desktopextension.Type
xdg-settings set default-url-scheme-handler vscode <your .desktop filename>. Do not provide an absolute path or you will get a cryptic error about invalid application name.Now try logging in to the extension again and it should all work. However, I did restart VS Code and Firefox, so you might need to do that as well.