Skip to content

8hourseontheleft6/seekie_pet

Repository files navigation

Seekie Pet v3.3.3

一个轻量级的桌面宠物应用,显示一个机器人在菜单栏区域移动,支持快捷键功能和设置窗口。

版本: 3.3.3
最后更新: 2026-04-21

前言

这个项目呢,百分之九十九基本都是由AI Agent完成的,我用的是cline,搭配的deepseek chat模型,作者只是进行了一点点辅助。 在AI抽风的时候骂他两句,然后自己做测试,看看有没有什么问题,有没有什么要改进的地方。 作者只是在读高中生,所以没很多经验,也没有多大水平,所以基本全靠AI了。 问题肯定是存在的,而且这个项目只是刚刚开始,还没有到很完备的状态,希望大家能够多多帮我测试。 这也是一个学习项目,不一定需要大家赞助什么的(虽然也不会有) 但是欢迎大家多提交issues,如果可以的话,也可以star一下hhhh,不多指望什么。 后面基本全是AI写的,大家可以看着安装,至于发行版我后面做的差不多了会考虑到hh。

主要功能

模块化重构版 (v3.3.0+)

  • 模块化架构: 将代码拆分为核心模块,提高可维护性
  • 增强日志系统: 支持文件和控制台日志,日志轮转和清理
  • 改进配置管理: 支持配置版本迁移、验证和导入/导出
  • 智能图片加载: 图片缓存、错误处理和默认图片生成
  • 更好的错误处理: 统一的异常处理和错误恢复机制

Web设置窗口版 (v3.2.0+)

  • 输入检测: 检测鼠标和键盘活动
  • 睡眠模式: 10秒无输入活动进入睡眠状态
  • 自动唤醒: 检测到输入活动后自动唤醒
  • 智能暂停: 睡眠状态下停止所有移动
  • 状态切换: 睡眠时显示Sleep.png图片
  • 快捷键支持: 可自定义快捷键快速打开截图软件
  • 设置窗口: 提供图形化设置界面,可自定义运动间隔、速度和快捷键
  • 配置管理: 设置保存到配置文件,支持热重载

功能特点

  • 智能机器人: 使用Robot.png图片作为桌面宠物
  • 流畅动画: 20FPS高帧率,无卡顿感
  • 右半边限制: 机器人只在屏幕右半边移动,不干扰主要工作区域
  • 智能移动模式: 机器人可自定义间隔移动,每次持续5-15秒
  • 系统托盘集成: 右键点击可控制应用,包含设置选项
  • 可调节速度: 速度范围0.5-5.0(可自定义初始速度)
  • 显示/隐藏: 可切换机器人窗口的可见性
  • 睡眠检测: 10秒无鼠标/键盘活动进入睡眠状态
  • 自动唤醒: 活动后自动恢复
  • 快捷键支持: 可自定义快捷键快速打开截图软件
  • 设置窗口: 提供图形化设置界面,参考Microsoft Word编辑器风格
  • 配置管理: 设置保存到config.json文件,支持热重载
  • 轻量级: 资源占用低,优化更新频率
  • 错误处理: 完整的异常处理和后备方案

安装要求

  • Python 3.6 或更高版本
  • Windows 系统(也支持 macOS 和 Linux,但菜单栏行为可能不同)

安装步骤

  1. 克隆或下载本项目

  2. 安装依赖:

    pip install -r requirements.txt

    或者手动安装:

    pip install pillow pystray keyboard

使用方法

  1. 运行应用:

    python main.py
  2. 应用启动后:

    • 一个机器人会出现在屏幕右下角菜单栏区域
    • 系统托盘区域会出现一个机器人图标
    • 右键点击托盘图标可以打开控制菜单
  3. 控制菜单选项:

    • 显示/隐藏: 切换机器人窗口的可见性
    • 速度加快: 增加机器人的移动速度
    • 速度减慢: 减小机器人的移动速度
    • 退出: 退出应用
  4. 睡眠功能:

    • 10秒无鼠标或键盘活动,机器人进入睡眠状态
    • 睡眠时显示Sleep.png图片,停止所有移动
    • 移动鼠标或按键后自动唤醒
  5. 快捷键功能:

    • Ctrl+J: 快速打开截图软件
    • 支持多种截图方式:Windows截图工具、PrintScreen键、Win+Shift+S快捷键、画图工具

项目结构 (v3.3.2)

seekie_pet/
├── main.py                   # 主程序文件(模块化重构版,修复所有问题)
├── settings_window_v2.py     # 现代化设置窗口程序(备用)
├── config.json               # 配置文件(保存所有设置)
├── improvement_plan.md       # 项目改进计划
├── improvement_summary.md    # 改进总结
├── run.bat                   # 智能启动器(可选择版本)
├── run_refactored.bat        # 重构版专用启动器
│
├── config/                   # 配置管理模块
│   └── config_manager.py     # 增强版配置管理器
│
├── utils/                    # 工具模块
│   ├── logger.py            # 增强日志系统
│   └── image_loader.py      # 智能图片加载器
│
├── tests/                    # 测试文件目录
│   ├── test_movement_only.py
│   ├── test_new_movement.py
│   ├── test_settings.py
│   └── ... (共16个测试文件)
│
├── main_pic/                 # 图片资源
│   ├── Robot_50x50.png      # 实际使用的50x50像素机器人图片
│   ├── Sleep.png            # 睡眠状态图片
│   └── robot-icon.png       # 托盘图标
│
├── web_settings/             # Web设置窗口
│   ├── web_settings.py      # Flask后端程序
│   └── templates/index.html # 前端HTML界面
│
├── logs/                     # 日志目录(自动创建)
│   └── seekie_pet.log       # 应用日志文件
│
├── requirements.txt          # 依赖列表
├── README.md                # 说明文档
└── .gitignore              # Git忽略配置

已删除的文件:

  • main_refactored.py - 已重命名为main.py
  • README_REFACTORED.md - 旧版本重构说明文档
  • main_final.py, main_with_mouse_detection.py, main_with_input_detection.py - 测试版本文件
  • create_sleep_image.py - 睡眠图片创建工具(已使用)
  • process_image.py, process_image_auto.py, clean_image_edges.py - 图片处理工具
  • test_basic.py, test_new_features.py - 测试文件
  • Robot_100x100.png - 冗余图片资源
  • USAGE.md - 过时的使用指南(已整合到README)

版本历史

v3.4.0 (2026-04-22) - 模块化重构

  • 模块化架构: 将872行main.py拆分为8个独立模块
  • 核心模块: window.py, animation.py, movement.py, input_detection.py, hotkeys.py, tray.py, settings.py, robot.py
  • 代码清晰度: 每个模块职责单一,易于维护和扩展
  • 主程序简化: main.py从872行减少到约50行
  • 版本更新: 更新版本号为3.4.0

v3.3.3 (2026-04-21) - 鼠标悬停动画功能

  • 鼠标悬停动画: 添加鼠标悬停机器人图片触发动画功能
  • 动画精灵图: 支持see-left-and-right.png精灵图动画(7帧)
  • 动画速度: 可调节动画播放速度(默认300ms每帧)
  • 触发区域: 整个机器人图片区域作为触发区域
  • 动画循环: 鼠标悬停时循环播放动画,离开时恢复原状
  • 睡眠状态: 睡眠状态下不响应鼠标事件
  • 调试信息: 添加详细的鼠标位置和触发状态日志

v3.3.2 (2026-04-19) - 修复Web设置窗口配置问题

  • 配置问题修复: 修复Web设置窗口配置不生效的问题
  • 配置格式统一: Web设置窗口现在使用与主程序相同的配置格式
  • 配置管理器集成: Web设置窗口集成新的配置管理器
  • 版本更新: 更新版本号为3.3.2
  • 文档清理: 清理README.md格式,移除表情符号

v3.3.1 (2026-04-19) - 修复所有问题版

  • 问题修复: 修复所有用户反馈的问题
  • 设置功能: 修复Web设置窗口正常打开问题
  • 托盘程序: 修复托盘图标使用robot-icon.png,解决只能打开一次的问题
  • 运动逻辑: 修复运动逻辑,机器人运动到指定地点后停止,等待10秒再开始新运动
  • 线程安全: 修复main thread is not in main loop线程错误
  • 代码优化: 删除旧版main.py,只保留重构版main.py
  • 测试规整: 将所有测试文件移动到tests/文件夹
  • 版本更新: 更新版本号为3.3.1

v3.3.0 (2026-04-18) - Web设置窗口版

  • Web设置窗口: 添加基于Flask的现代化Web设置窗口,类似洛雪音乐桌面客户端风格
  • 现代化界面: 使用HTML/CSS/JavaScript创建现代化界面,支持多主题切换
  • 外观设置: 新增外观设置页面,支持6种主题(柠檬黄、天蓝、青苹果绿、梦幻紫、日落橙、深海蓝)
  • 多页面设计: 支持常规设置、外观设置、快捷键设置、关于页面切换
  • 实时预览: 滑块调整时实时显示数值变化,主题切换即时生效
  • 响应式设计: 支持桌面和移动端自适应布局
  • 回退机制: Web窗口失败时自动回退到现代化设置窗口
  • Flask集成: 添加Flask依赖,支持Web API接口

v3.2.0 (2026-04-18) - 设置窗口版

  • 设置窗口: 添加"Seekie Setup"设置窗口,参考Microsoft Word编辑器风格
  • 配置管理: 添加config.json配置文件,保存所有设置
  • 图形化设置: 提供滑块调节运动间隔和速度,输入框设置快捷键
  • 托盘增强: 添加"打开设置"和"重新加载配置"菜单项
  • 热重载: 支持不重启程序重新加载配置
  • 模块化: 将设置窗口独立为settings_window.py模块

v3.1.0 (2026-04-17) - 快捷键增强版

  • 快捷键支持: 添加全局快捷键检测功能
  • 截图功能: Ctrl+J 快速打开截图软件
  • 多方式截图: 支持Windows截图工具、PrintScreen键、Win+Shift+S、画图工具
  • 键盘库集成: 添加keyboard库依赖

v3.0.3 (2026-04-12) - 输入活动检测版

  • 输入检测: 添加鼠标和键盘活动检测功能
  • 睡眠模式: 10秒无输入活动进入睡眠状态,显示Sleep.png
  • 自动唤醒: 检测到输入活动后自动唤醒
  • 智能控制: 睡眠状态下停止所有移动,唤醒后恢复

v3.0.2 (2026-04-12) - 鼠标活动检测版

  • 鼠标检测: 添加鼠标活动检测功能
  • 睡眠模式: 10秒无鼠标活动进入睡眠状态

v3.0.2 (2026-04-12) - 重构版本

  • 代码重构: 将长函数拆分为小函数
  • 结构优化: 使用常量配置和模块化设计
  • 项目清理: 删除不必要的工具和测试文件
  • 菜单简化: 简化系统托盘菜单

v3.0.1 (2026-04-11) - 修复版本

  • 问题修复: 解决图片透明边缘黑边问题
  • 视觉优化: 保持机器人白色部分正常显示,避免变成透明
  • 文件管理: 删除临时文件,优化项目结构
  • 工具更新: 优化图像处理工具,简化工作流程
  • 透明窗口: 改进透明窗口设置,使用黑色作为透明色

v3.0.0 (2026-04-11) - 重大更新

  • 全新外观: 从蓝色小方块改为Robot.png机器人图片
  • 图片支持: 添加图片加载和处理系统
  • 路径修复: 使用绝对路径确保图片可靠加载
  • 性能优化: 保持20FPS高帧率流畅动画
  • 界面净化: 移除移动时的箭头指示器
  • 错误处理: 添加完整的异常处理和后备方案

v2.0.4 (2026-04-11)

  • 性能优化: 提高帧率到20FPS(原2FPS)
  • 速度调整: 提高移动速度从0.3到1.5
  • 控制范围: 调整速度控制范围到0.5-5.0

v2.0.4 (2026-04-11) - 设计更新

  • 外观更新: 从二轮小车改为蓝色小方块
  • 滚动效果: 移动时显示滚动效果线
  • 托盘图标: 更新为蓝色小方块图标

v2.0.4 (2026-04-11) - 问题修复

  • 启动位置: 修复小车启动时出现在左上角的问题
  • 垂直偏移: 修正垂直偏移方向错误

v2.0.3 (2026-04-11)

  • 垂直偏移: 修正垂直偏移方向错误(从+15改为-5)

v2.0.0 (2026-04-11)

  • 重大更新: 完全重新设计移动逻辑
  • 右半边限制: 小车现在只在屏幕右半边移动
  • 智能移动: 大约每分钟移动一次,而不是持续移动
  • 视角系统: 根据移动方向显示不同数量的轮子
  • 速度优化: 降低移动速度,更合理的速度范围
  • 性能改进: 降低更新频率,节省系统资源

v1.0.0 (初始版本)

  • 基本功能:小车在屏幕底部来回移动
  • 系统托盘控制
  • 速度调节和随机位置功能

技术实现

  • GUI框架: Tkinter(Python标准库)
  • 系统托盘: pystray 库
  • 图像处理: Pillow(PIL)库,支持PNG透明背景
  • 快捷键检测: keyboard 库,支持全局热键
  • 配置管理: JSON配置文件,支持动态加载
  • 多线程: Python threading 模块,用于同时处理动画、系统托盘、快捷键和设置窗口
  • 输入检测: Windows API获取最后输入时间
  • 智能算法: 基于时间的移动触发和方向计算
  • 路径处理: 使用绝对路径确保文件可靠访问
  • 错误处理: 完整的异常处理和后备图标系统

自定义和图像处理

1. 更换机器人图片

  1. 准备图片: 创建50x50像素的PNG图片(支持透明背景)
  2. 替换文件: 将图片保存为 main_pic/Robot_50x50.png
  3. 重启应用: 重新运行 python main.py

2. 更换睡眠图片

  1. 准备图片: 创建50x50像素的PNG图片(支持透明背景)
  2. 替换文件: 将图片保存为 main_pic/Sleep.png
  3. 重启应用: 重新运行 python main.py

3. 通过设置窗口调整参数

现在可以通过设置窗口调整所有参数,无需修改代码:

  1. 打开设置窗口: 右键点击系统托盘图标 → 选择"打开设置"
  2. 调整运动间隔: 使用滑块调整两次运动之间的间隔(5-60秒)
  3. 调整运动速度: 使用滑块调整运动速度(0.5-5.0)
  4. 修改快捷键: 在输入框中修改截图快捷键(格式: ctrl+key, alt+key, shift+key)
  5. 保存设置: 点击"保存设置"按钮,部分设置需要重启程序生效

4. 手动调整程序参数(高级)

config.json 中手动调整配置:

  • move_interval: 运动间隔时间(默认20秒)
  • move_speed: 初始移动速度(默认1.5)
  • screenshot_hotkey: 截图快捷键(默认ctrl+j)
  • window_title: 设置窗口标题(默认Seekie Setup)

5. 自定义托盘图标

机器人图片会自动调整大小作为托盘图标,无需额外设置

注意事项

  • 图片文件必须为PNG格式以支持透明背景
  • 在某些系统上,可能需要管理员权限才能正常显示系统托盘图标
  • 如果遇到透明色问题,可以修改 _init_window() 方法中的 transparentcolor 参数
  • 应用退出时请使用托盘菜单的"退出"选项,以确保所有线程正确关闭
  • 输入检测功能仅支持Windows系统

故障排除

1. 图片相关问题

  • 图片加载失败:
    • 检查 main_pic/Robot_50x50.png 文件是否存在
    • 程序会自动创建后备图标
  • 白色部分变透明: 确保使用版本3.0.1或更高

2. 程序运行问题

  • 导入错误: 确保已安装所有依赖
    pip install -r requirements.txt
  • 托盘图标不显示: 检查系统托盘设置,可能需要重启资源管理器
  • 机器人不移动: 检查控制台输出是否有错误信息

3. 设置窗口问题

  • 设置窗口打不开: 确保settings_window.py文件存在,检查Python环境
  • 设置保存失败: 检查config.json文件是否可写,是否有权限问题
  • 设置不生效: 部分设置需要重启程序,或使用"重新加载配置"菜单项

4. 快捷键问题

  • 快捷键不工作: 确保已安装keyboard库,可能需要管理员权限
  • 截图功能失败: 检查系统是否支持截图工具,尝试其他截图方式
  • 快捷键冲突: 检查是否与其他程序快捷键冲突

5. 输入检测问题

  • 睡眠功能不工作: 检查是否在Windows系统上运行
  • 无法唤醒: 确保鼠标或键盘活动被系统检测到

6. 窗口显示问题

  • 窗口有残留色块: 确保使用黑色作为透明色(已默认设置)
  • 窗口位置不正确: 检查屏幕分辨率和任务栏设置
  • 设置窗口样式异常: 确保系统支持Tkinter主题

设置窗口使用说明

1. 打开设置窗口

  • 方法1: 右键点击系统托盘图标 → 选择"打开设置"
  • 方法2: 直接运行 python settings_window.py(独立测试)

2. 设置项说明

  • 运动间隔: 控制机器人两次移动之间的等待时间(5-60秒)
  • 运动速度: 控制机器人移动的速度(0.5-5.0)
  • 截图快捷键: 自定义打开截图软件的快捷键(格式: ctrl+key, alt+key, shift+key)

3. 按钮功能

  • 保存设置: 保存所有设置并关闭窗口
  • 应用: 保存所有设置但不关闭窗口
  • 取消: 放弃所有更改并关闭窗口

4. 配置热重载

  • 修改config.json文件后,可在托盘菜单中选择"重新加载配置"
  • 部分设置(如运动间隔、快捷键)

About

Seekie Pet - ????????????,???????????????

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors