From 87205631f8a9197d7f67b04f16aac6e298b0e583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=85=8E=E9=A5=BC=E6=9E=9C=E5=AD=90=E5=8D=B7=E9=B2=A8?= =?UTF-8?q?=E9=B1=BC=E8=BE=A3=E6=A4=92?= Date: Mon, 19 Jan 2026 17:21:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(cursor=5Flinux=5Fid=5Fmodifier):=20?= =?UTF-8?q?=E6=94=B9=E8=BF=9B=E8=8F=9C=E5=8D=95=E9=80=89=E6=8B=A9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=92=8CTTY=E5=85=BC=E5=AE=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改默认选择为"重置"选项,满足默认全部处理的需求 - 添加TTY兼容性支持,在非TTY环境下使用/dev/tty读取输入 - 增加应用光标模式的ANSI码兼容支持(eOA/eOB) - 支持数字键快捷选择(1-N),提高操作便利性 - 修复资源泄露问题,正确关闭TTY句柄 - 改进输入读取逻辑,增强脚本在不同环境下的稳定性 --- scripts/run/cursor_linux_id_modifier.sh | 39 +++++++++++++++++++++---- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/scripts/run/cursor_linux_id_modifier.sh b/scripts/run/cursor_linux_id_modifier.sh index 01fd254..019a526 100755 --- a/scripts/run/cursor_linux_id_modifier.sh +++ b/scripts/run/cursor_linux_id_modifier.sh @@ -969,7 +969,8 @@ generate_new_config() { # 使用菜单选择函数询问用户是否重置机器码 set +e - select_menu_option "是否需要重置机器码? (通常情况下,只修改js文件即可):" "不重置 - 仅修改js文件即可|重置 - 同时修改配置文件和机器码" 0 + # 默认选择“重置”,满足“默认应全部处理”的需求 + select_menu_option "是否需要重置机器码? (默认:重置并同步修改配置文件):" "不重置 - 仅修改js文件即可|重置 - 同时修改配置文件和机器码" 1 reset_choice=$? set -e @@ -1909,7 +1910,24 @@ select_menu_option() { local key_input local cursor_up=$'\e[A' # 更标准的 ANSI 码 local cursor_down=$'\e[B' + local cursor_up_alt=$'\eOA' # 兼容应用光标模式 + local cursor_down_alt=$'\eOB' local enter_key=$'\n' + # 兼容管道执行场景:stdin 非 TTY 时改用 /dev/tty 读取 + local input_fd=0 + local input_fd_opened=0 + + if [ -t 0 ]; then + input_fd=0 + elif [ -r /dev/tty ]; then + exec 3