Ubuntu下多VSCode实例登录Copilot后无法重定向至对应实例
解决VSCode指定user-data-dir实例登录Copilot后重定向问题
方法一:手动指定实例处理认证回调
- 在指定
user-data-dir的VSCode实例中触发Copilot登录,浏览器会打开GitHub认证页面。 - 先不完成认证,复制浏览器地址栏中的完整认证URL。
- 走完GitHub认证流程(输入账号密码、授权),当浏览器提示打开VSCode时,不要直接打开,复制页面跳转的
vscode://协议链接。 - 在终端运行命令,让指定实例处理认证回调:
执行后,指定实例会接收认证结果,完成Copilot登录。code --user-data-dir=~/.config/vscode_white "复制的vscode://链接"
方法二:复制已认证配置文件到指定目录
如果已在默认VSCode实例完成登录,可直接复制认证文件到目标目录:
- 关闭所有VSCode实例。
- 执行复制命令:
cp -r ~/.config/Code/User/globalStorage/github.authentication/ ~/.config/vscode_white/User/globalStorage/ cp -r ~/.config/Code/User/globalStorage/github.copilot/ ~/.config/vscode_white/User/globalStorage/ - 启动指定
user-data-dir的VSCode实例,Copilot会自动加载认证信息。
方法三:临时修改VSCode协议关联(Ubuntu环境)
- 关闭所有VSCode实例。
- 创建临时桌面文件并修改:
编辑cp /usr/share/applications/code.desktop ~/.local/share/applications/code-temp.desktop~/.local/share/applications/code-temp.desktop,将Exec行改为:Exec=code --user-data-dir=~/.config/vscode_white %F - 设置临时文件为
vscode://协议的默认处理应用:xdg-mime default code-temp.desktop x-scheme-handler/vscode - 启动指定实例完成登录,此时浏览器会默认用该实例处理回调。
- 登录完成后恢复默认设置:
xdg-mime default code.desktop x-scheme-handler/vscode rm ~/.local/share/applications/code-temp.desktop
为什么替换windowId无效?
你用xdotool获取的是系统窗口ID,但VSCode认证URL中的windowId是实例内部生成的唯一标识,和系统窗口ID不匹配,所以无法被目标实例识别。
内容的提问来源于stack exchange,提问作者Alexander Phung
相关产品推荐
相关产品推荐

