Ubuntu root用户使用trae插件
点击个人登录trae,跳转到浏览器, 登录trae后,浏览器没有弹框提示跳回vscode, 导致trae插件始终无法登录成功。
原因是vscode命令需要加上--no-sandbox, 无法唤醒vscode:
vscode://Microsoft.VisualStudio.Code.OpenFolder?some/path
解决方法:
安装Chrome
# 下载 Chrome 最新 .deb 包
wget -O /tmp/chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
# 安装
sudo dpkg -i /tmp/chrome.deb
sudo apt-get install -f # 补全依赖
安装完成后,注销并重新登录(或至少重启桌面环境),然后修改默认浏览器:
# 1. 设置 Chrome 为系统默认浏览器
xdg-settings set default-web-browser google-chrome.desktop
# 2. 强制 vscode:// 和 trae:// 协议关联到 Chrome(解决跳转)
xdg-mime default google-chrome.desktop x-scheme-handler/vscode
xdg-mime default google-chrome.desktop x-scheme-handler/trae
# 3. 验证
xdg-settings get default-web-browser # 应输出 google-chrome.desktop
xdg-mime query default x-scheme-handler/vscode # 应输出 google-chrome.desktop
浏览器启动加上后缀--no-sandbox:
/usr/share/applications# vi google-chrome.desktop
Exec=/usr/bin/google-chrome-stable %U --no-sandbox
让 Chrome 自动调用带 --no-sandbox 的 VS Code
创建脚本 /usr/local/bin/vscode-handler.sh
#!/bin/bash
/usr/share/code/code --no-sandbox --open-url "$1"
chmod +x /usr/local/bin/vscode-handler.sh
创建.desktop文件
/usr/share/applications/vscode-nosandbox.desktop
内容:
[Desktop Entry]
Name=Visual Studio Code (No Sandbox)
Comment=Code Editing. Redefined.
Exec=/usr/local/bin/vscode-handler.sh %u
Icon=code
Terminal=false
Type=Application
MimeType=x-scheme-handler/vscode;
Categories=Development;
注册协议处理器:
xdg-mime query default x-scheme-handler/vscode
# 应输出 vscode-nosandbox.desktop
验证:
xdg-mime query default x-scheme-handler/vscode
# 应输出 vscode-nosandbox.desktop
现在 Chrome 点击任何 vscode:// 链接,都会通过脚本启动带 --no-sandbox 的 VS Code。