存到哪 使用说明（V1.6 · deb 安装版）
=====================================

〇、安装 .deb（需要 root）
  方法一（推荐）：软件中心/包管理器双击安装；
  方法二：终端执行
    sudo dpkg -i savejump_1.6_all.deb
    # 若提示缺依赖，执行：
    sudo apt -f install -y
  安装后：
  - 主程序入口 /usr/bin/savejump，程序文件 /usr/share/savejump/
    （含 savejump.py、savejump-toggle.sh、icons/ 等）；
  - 已自动为系统上所有普通用户写入开机自启；
  - 索引与配置在用户目录（~/.config/savejump），每个用户各自独立。

  依赖：python3-pyqt6（或 pyqt5）、xdotool、xclip、python3-pyperclip，
  系统会随安装自动提示补齐；手动等价命令：
    sudo apt-get install xdotool xclip python3-pyperclip
    sudo apt-get install python3-pyqt6    # 缺则 python3-pyqt5

一、设置全局快捷键
  - deepin（X11）：系统设置 → 自定义快捷键 → 新建 → 程序选择
    「存到哪 快速呼出」（/usr/share/applications/savejump-toggle.desktop，
    安装时已自动写入），例如设为 Ctrl+Space 或 Ctrl+Alt+S。
  - 国产商用发行版（银河麒麟 V10 SP1 已实测，V11、统信 UOS 等流程相同）：
    1. 安装：若安全中心提示拦截（麒麟 KYSEC / 统信同类管控对未签名第三方
       程序的常规管控，并非程序问题），可先到 安全中心→应用保护 临时关闭
       「应用来源检查」「应用访问权限控制」再安装，装完可恢复。
    2. 安装后（关键）：到 安全中心→应用保护→应用程序执行控制→高级设置，
       右上角"加号"把
         /usr/share/savejump/savejump.py
         /usr/share/savejump/savejump-toggle.sh
       加入白名单（按路径持久放行）。否则即使弹窗点了"始终允许"也不持久——
       安全中心按程序签名/来源判断，本程序无签名，主程序开机自启后是新进程
       会被再次拦截，导致无法常驻、快捷键呼不出。加入执行控制白名单后才可
       稳定使用。
    3. 注销重登 → 设置→设备→快捷键→自定义快捷键→添加，程序选择
       savejump-toggle.desktop（安装时 postinst 已自动写入系统目录并清理
       用户目录同名项），设置按键即可。
  - 快捷键 Exec 已统一指向启动脚本绝对路径
    （/usr/share/savejump/savejump-toggle.sh），避免不同桌面解析 Exec
    差异导致按了没反应。

二、使用
  1. 打开应用的"保存/另存为"对话框；
  2. 按快捷键呼出搜索框，输入关键字；
  3. 在搜索框内按 ↑/↓ 即可上下移动结果选中项（越界自动夹紧、超长自动
     滚动保持可见），回车自动跳转当前项；Esc 关闭不跳转。
  技巧：
  - 多关键字用空格分隔（AND 关系）；
  - 搜文件时跳转的是文件所在文件夹；
  - 移动盘插入后盘内文件自动可搜，搜盘名可直接跳盘根；
  - 跳转前复制过文本/文件，跳转后约 1 秒剪贴板自动恢复（不覆盖跳转后
    你新复制的内容）。

三、设置界面（托盘 → 设置）
  1. 可视化设置窗口，改完全自动保存并生效：
    - 排除目录（每行一个完整路径，不被索引）
    - 文件索引上限 max_files（允许 100~500000，默认 60000）
    - 文件索引深度 index_files_depth（允许 1~30，默认 6；勾选「仅索引
      文件夹」后自动置灰）
    - 目录索引深度 index_dirs_depth（允许 1~50，默认 8）
    - 索引范围（folders_only，默认开启）：勾选「仅索引文件夹」后不再
      索引文件，索引增删大幅减少，且「文件索引深度」联动置灰；取消勾选
      可恢复搜索文件
    - 移动盘/挂载盘索引（三个开关，见下节）
    - 后台重扫间隔（秒，rescan_interval，默认 0 = 仅启动和呼出搜索框时
      扫描；非 0 最小 5 秒，低于 5 秒保存时自动提到 5 秒）
  2. 改到索引相关项（排除/上限/深度/mounts/白名单/仅文件夹）会立即重建索引；
     改重扫间隔由后台线程动态套用，无需重启程序。
  3. 手改 config.json（~/.config/savejump/config.json）同样有效
     （首次运行自动生成默认值）。

四、移动盘/挂载盘索引（三个开关）
  - 启用 /media 与 /mnt 索引（index_mounts）：全量扫描是否包含整个
    /media 与 /mnt。完全不想索引挂载盘的用户可关掉。
  - 自动跟随挂载/卸载（auto_mount_index，默认开）：临时盘（U 盘、移动
    硬盘等）自动"挂载时建索引、卸载时删索引"，不留残留。挂载点自动识别
    /media、/mnt、/run/media 下的真实挂载（含 /media/用户名/卷标 二级挂载）。
  - 持久挂载白名单（mount_whitelist）：把挂载点声明为「常驻数据盘」
    （第二硬盘/长期外置盘，区别于临时 U 盘）。白名单盘始终索引、拔走/卸载
    不删索引，且不受「启用 /media 与 /mnt」和「自动跟随挂载/卸载」两个
    开关影响——关闭全量挂载索引时，白名单盘是唯一仍被索引的挂载点。
  - 启动顺序：文件系统先挂载、用户自启进程后启动，开机后已挂载的盘都能
    被索引到；关机/重启时程序先于文件系统卸载而退出，不会触发"卸载删索引"，
    开机不丢索引、无需重建。只有「运行中拔出/卸载」才会删该盘索引，再插回
    自动重建。
  - 白名单盘拔走期间搜索仍能搜到其路径条目，但此时跳转会失败（盘不在），
    插回即恢复。

五、升级与卸载
  升级：下载新版 .deb 后直接
    sudo dpkg -i savejump_1.6_all.deb   # 覆盖安装，配置与索引保留
  卸载：
    sudo dpkg -r savejump
  卸载不删 ~/.config/savejump 的索引与配置，重装后索引仍在；如需彻底
  删除数据，再手动执行：rm -rf ~/.config/savejump

六、常见问题
  1. 启动失败：缺依赖，装齐上文依赖即可。
  2. 跳转失败提示：多为对话框不响应 Ctrl+L（WPS/Qt 类）或 xdotool 未装；
     本程序已自动补发 Alt+N 兼容 WPS 类对话框，实测正常。
  3. 呼出无反应：确认已在 X11 会话（deepin 25 登录界面选 X11，不要选
     Treeland/Wayland）；商用发行版快捷键被拦见上文安全中心白名单指引。
  4. 仅支持 X11：Wayland/Treeland 下窗口无法强制置顶，属合成器限制。

七、V1.6 更新要点（含 V1.3→V1.6 全部变化）
  1. 跳转加固：Alt+N 固定自动补发（兼容 WPS 等不响应 Ctrl+L 的对话框，
     实测 Qt 应用无副作用）；移除设置界面「跳转兼容模式」项；
  2. 索引根改为用户主目录：home 下所有可见文件夹（Downloads、文档、自建
     目录等）均可搜到，深度由「目录索引深度」限制；隐藏项不索引；
  3. 修复挂载盘/白名单盘搜不到：
     - 扫描不再跟进符号链接（防链接指向大目录导致扫描卡死/抢占挂载盘）；
     - 全量扫描期间发现的新挂载点排队、扫描结束立即补索引（不再被饿死）；
  4. 修复无效编码文件名（如「�� (无效的编码)」）导致索引写库失败、整体
     扫描中断的问题——此类名字自动跳过不索引；
  5. 商用发行版适配：postinst 自动检测麒麟/统信 UOS 等（kylin/uos/
     uniontech），其快捷键项写入系统目录、deepin 走系统目录也可用；
  6. 目录树型对话框支持（V1.6 新增）：360 安全浏览器下载框无地址栏（银河
     麒麟实测），自动判断——仅当系统为银河麒麟且窗口类名含 browser360-cn
     时，跳转改为发送 "/" 激活位置输入再粘贴路径；deepin 等其它系统不启用
     此判断、不受任何影响；
  7. 搜索结果 ↑/↓ 方向键筛选（V1.6 新增）：焦点在搜索框内即可上下移动
     结果选中项，回车跳转当前项；
  8. 本包为 deb 安装版（dpkg 管理）；另提供用户级安装版（./install.sh，
     装到 ~/.local/share/savejump/）。功能完全相同，按需选一。

八、如何构建 .deb（本源码包用途）
  见 README_deb打包说明.txt：解压后执行
    dpkg-buildpackage -us -uc -b      # 标准方式，需打包工具链
  或
    bash build_deb.sh                  # 手工方式，无需 debhelper
  产物 savejump_1.6_all.deb 在源码目录/上级目录。
