mirror of
https://github.com/yuaotian/go-cursor-help.git
synced 2026-03-07 22:33:39 +00:00
```
feat(cursor_linux_id_modifier): 添加 TTY UI 控制和下载兼容性修复 - 添加 CURSOR_NO_TTY_UI 环境变量支持,显式禁用花哨的 TTY UI, 避免部分环境下出现乱码/花屏问题 - 实现 NO_COLOR 标准兼容,支持 CURSOR_NO_COLOR 环境变量禁用颜色输出 - 修复下载逻辑:当 curl 或 wget 不支持进度条参数时自动降级到基础参数 - 在终端窗口调整、清屏和 Logo 显示功能中添加 TTY UI 开关检查 ```
This commit is contained in:
@@ -19,11 +19,30 @@ YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 显式禁用时,关闭 TTY UI(resize/clear/Logo),避免部分环境乱码/花屏
|
||||
if [ -n "${CURSOR_NO_TTY_UI:-}" ]; then
|
||||
CURSOR_NO_TTY_UI=1
|
||||
fi
|
||||
|
||||
# UI/颜色开关:遵循 NO_COLOR 标准,并支持 CURSOR_NO_TTY_UI(禁用花哨 TTY UI)
|
||||
if [ -n "${NO_COLOR:-}" ] || [ -n "${CURSOR_NO_COLOR:-}" ] || [ -n "${CURSOR_NO_TTY_UI:-}" ]; then
|
||||
RED=''
|
||||
GREEN=''
|
||||
YELLOW=''
|
||||
BLUE=''
|
||||
NC=''
|
||||
fi
|
||||
|
||||
# 启动时尝试调整终端窗口大小为 120x40(列x行);不支持/失败时静默忽略,避免影响脚本主流程
|
||||
try_resize_terminal_window() {
|
||||
local target_cols=120
|
||||
local target_rows=40
|
||||
|
||||
# 可通过 CURSOR_NO_TTY_UI 显式禁用所有终端控制输出(避免部分环境乱码/花屏)
|
||||
if [ -n "${CURSOR_NO_TTY_UI:-}" ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# 仅在交互终端中尝试,避免输出被重定向时出现乱码
|
||||
if [ ! -t 1 ]; then
|
||||
return 0
|
||||
@@ -1317,30 +1336,52 @@ EOF
|
||||
for url in "${hook_download_urls[@]}"; do
|
||||
index=$((index + 1))
|
||||
log_info "⏳ [Hook] ($index/$total_urls) 当前下载节点: $url"
|
||||
|
||||
# 兼容修复:部分 curl 版本可能不支持 --progress-bar,失败时回退为基础参数
|
||||
if curl -fL --progress-bar "$url" -o "$hook_target_path"; then
|
||||
chown "$CURRENT_USER":"$CURRENT_GROUP" "$hook_target_path" 2>/dev/null || true
|
||||
log_info "✅ [Hook] 外置 Hook 已在线下载: $hook_target_path"
|
||||
hook_downloaded=true
|
||||
break
|
||||
else
|
||||
rm -f "$hook_target_path"
|
||||
log_warn "⚠️ [Hook] 外置 Hook 下载失败: $url"
|
||||
fi
|
||||
|
||||
rm -f "$hook_target_path"
|
||||
log_warn "⚠️ [Hook] curl 下载失败,尝试回退参数重试: $url"
|
||||
if curl -fL "$url" -o "$hook_target_path"; then
|
||||
chown "$CURRENT_USER":"$CURRENT_GROUP" "$hook_target_path" 2>/dev/null || true
|
||||
log_info "✅ [Hook] 外置 Hook 已在线下载: $hook_target_path"
|
||||
hook_downloaded=true
|
||||
break
|
||||
fi
|
||||
|
||||
rm -f "$hook_target_path"
|
||||
log_warn "⚠️ [Hook] 外置 Hook 下载失败: $url"
|
||||
done
|
||||
elif command -v wget >/dev/null 2>&1; then
|
||||
local index=0
|
||||
for url in "${hook_download_urls[@]}"; do
|
||||
index=$((index + 1))
|
||||
log_info "⏳ [Hook] ($index/$total_urls) 当前下载节点: $url"
|
||||
|
||||
# 兼容修复:BusyBox/精简版 wget 可能不支持 --progress=bar:force,失败时回退为基础参数
|
||||
if wget --progress=bar:force -O "$hook_target_path" "$url"; then
|
||||
chown "$CURRENT_USER":"$CURRENT_GROUP" "$hook_target_path" 2>/dev/null || true
|
||||
log_info "✅ [Hook] 外置 Hook 已在线下载: $hook_target_path"
|
||||
hook_downloaded=true
|
||||
break
|
||||
else
|
||||
rm -f "$hook_target_path"
|
||||
log_warn "⚠️ [Hook] 外置 Hook 下载失败: $url"
|
||||
fi
|
||||
|
||||
rm -f "$hook_target_path"
|
||||
log_warn "⚠️ [Hook] wget 下载失败,尝试回退参数重试: $url"
|
||||
if wget -O "$hook_target_path" "$url"; then
|
||||
chown "$CURRENT_USER":"$CURRENT_GROUP" "$hook_target_path" 2>/dev/null || true
|
||||
log_info "✅ [Hook] 外置 Hook 已在线下载: $hook_target_path"
|
||||
hook_downloaded=true
|
||||
break
|
||||
fi
|
||||
|
||||
rm -f "$hook_target_path"
|
||||
log_warn "⚠️ [Hook] 外置 Hook 下载失败: $url"
|
||||
done
|
||||
else
|
||||
log_warn "⚠️ [Hook] 未检测到 curl/wget,无法在线下载 Hook"
|
||||
@@ -2016,7 +2057,9 @@ cursor_initialize_cleanup() {
|
||||
# 主函数
|
||||
main() {
|
||||
# 在显示菜单/流程说明前调整终端窗口大小;不支持则静默忽略
|
||||
try_resize_terminal_window
|
||||
if [ -z "${CURSOR_NO_TTY_UI:-}" ]; then
|
||||
try_resize_terminal_window
|
||||
fi
|
||||
|
||||
# 初始化日志文件
|
||||
initialize_log
|
||||
@@ -2030,28 +2073,30 @@ main() {
|
||||
log_info "系统信息: $(uname -a)"
|
||||
log_cmd_output "lsb_release -a 2>/dev/null || cat /etc/*release 2>/dev/null || cat /etc/issue" "系统版本信息"
|
||||
|
||||
clear
|
||||
# 显示 Logo
|
||||
echo -e "
|
||||
██████╗██╗ ██╗██████╗ ███████╗ ██████╗ ██████╗
|
||||
██╔════╝██║ ██║██╔══██╗██╔════╝██╔═══██╗██╔══██╗
|
||||
██║ ██║ ██║██████╔╝███████╗██║ ██║██████╔╝
|
||||
██║ ██║ ██║██╔══██╗╚════██║██║ ██║██╔══██╗
|
||||
╚██████╗╚██████╔╝██║ ██║███████║╚██████╔╝██║ ██║
|
||||
╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝
|
||||
"
|
||||
echo -e "${BLUE}=====================================================${NC}"
|
||||
echo -e "${GREEN} Cursor Linux 启动与修改工具(免费) ${NC}"
|
||||
echo -e "${YELLOW} 关注公众号【煎饼果子卷AI】 ${NC}"
|
||||
echo -e "${YELLOW} 一起交流更多Cursor技巧和AI知识(脚本免费、关注公众号加群有更多技巧和大佬) ${NC}"
|
||||
echo -e "${BLUE}=====================================================${NC}"
|
||||
echo
|
||||
echo -e "${YELLOW}⚡ [小小广告] Cursor官网正规成品号:Pro¥65 | Pro+¥265 | Ultra¥888 独享账号| ¥688 Team绝版次数号1000次+20刀额度 | 全部7天质保 | ,WeChat:JavaRookie666 ${NC}"
|
||||
echo
|
||||
echo -e "${YELLOW}[提示]${NC} 本工具旨在修改 Cursor 以解决可能的启动问题或设备限制。"
|
||||
echo -e "${YELLOW}[提示]${NC} 它将优先修改 JS 文件,并可选择重置设备ID和禁用自动更新。"
|
||||
echo -e "${YELLOW}[提示]${NC} 如果未找到 Cursor,将尝试从 '$APPIMAGE_SEARCH_DIR' 目录安装。"
|
||||
echo
|
||||
if [ -z "${CURSOR_NO_TTY_UI:-}" ]; then
|
||||
clear
|
||||
# 显示 Logo
|
||||
echo -e "
|
||||
██████╗██╗ ██╗██████╗ ███████╗ ██████╗ ██████╗
|
||||
██╔════╝██║ ██║██╔══██╗██╔════╝██╔═══██╗██╔══██╗
|
||||
██║ ██║ ██║██████╔╝███████╗██║ ██║██████╔╝
|
||||
██║ ██║ ██║██╔══██╗╚════██║██║ ██║██╔══██╗
|
||||
╚██████╗╚██████╔╝██║ ██║███████║╚██████╔╝██║ ██║
|
||||
╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝
|
||||
"
|
||||
echo -e "${BLUE}=====================================================${NC}"
|
||||
echo -e "${GREEN} Cursor Linux 启动与修改工具(免费) ${NC}"
|
||||
echo -e "${YELLOW} 关注公众号【煎饼果子卷AI】 ${NC}"
|
||||
echo -e "${YELLOW} 一起交流更多Cursor技巧和AI知识(脚本免费、关注公众号加群有更多技巧和大佬) ${NC}"
|
||||
echo -e "${BLUE}=====================================================${NC}"
|
||||
echo
|
||||
echo -e "${YELLOW}⚡ [小小广告] Cursor官网正规成品号:Pro¥65 | Pro+¥265 | Ultra¥888 独享账号| ¥688 Team绝版次数号1000次+20刀额度 | 全部7天质保 | ,WeChat:JavaRookie666 ${NC}"
|
||||
echo
|
||||
echo -e "${YELLOW}[提示]${NC} 本工具旨在修改 Cursor 以解决可能的启动问题或设备限制。"
|
||||
echo -e "${YELLOW}[提示]${NC} 它将优先修改 JS 文件,并可选择重置设备ID和禁用自动更新。"
|
||||
echo -e "${YELLOW}[提示]${NC} 如果未找到 Cursor,将尝试从 '$APPIMAGE_SEARCH_DIR' 目录安装。"
|
||||
echo
|
||||
fi
|
||||
|
||||
# 查找 Cursor 路径
|
||||
if ! find_cursor_path; then
|
||||
|
||||
Reference in New Issue
Block a user