Python 电脑桌面——工作量监控大屏

开源地址:https://gitee.com/beautiful_corridors/niuma

Python 工作量监控大屏

基于 Python + PySide6 开发的实时工作量监控桌面应用,提供美观的大屏显示界面。

功能特性

📊 实时监控

  • 键盘输入统计: 实时统计按键次数,显示平均和峰值每分钟按键数
  • 鼠标移动追踪: 监控鼠标移动距离,自动转换为厘米单位
  • 应用使用时间: 追踪每个应用程序的使用时长和切换频率
  • 工作时长统计: 显示总工作时间和生产力指数

🎨 界面设计

  • 现代化UI: 采用 PySide6 实现的毛玻璃效果和渐变背景
  • 响应式布局: 自适应不同屏幕尺寸
  • 实时动画: 数据更新时的平滑过渡效果
  • 深色主题: 护眼的深色配色方案

⚡ 性能优化

  • 低资源占用: 高效的多线程数据采集
  • 实时更新: 1秒间隔的数据刷新
  • 跨平台支持: Windows、macOS、Linux

安装和运行

环境要求

  • Python 3.8+
  • pip

方法一:直接运行

```bash

克隆或下载代码

安装依赖

pip install -r requirements.txt

运行应用

python main.py

```

方法二:安装为包

```bash

安装

pip install -e .

运行

work-monitor

```

方法三:创建可执行文件

```bash

安装 PyInstaller

pip install pyinstaller

创建可执行文件

pyinstaller --onefile --windowed main.py

可执行文件在 dist/ 目录中

```

依赖说明

核心依赖

  • PySide6: Qt6 的 Python 绑定,用于 GUI 界面
  • pynput: 跨平台的键盘鼠标监控库
  • psutil: 系统和进程信息获取库

平台特定依赖

  • Windows: pywin32 (用于获取活动窗口)
  • macOS: PyObjC (可选,用于更好的窗口检测)
  • Linux: xdotool (可选,用于窗口检测)

平台兼容性

Windows

  • ✅ 完全支持所有功能
  • ✅ 自动检测活动窗口
  • ✅ 键盘鼠标监控

macOS

  • ✅ 支持基本功能
  • ⚠️ 需要授予辅助功能权限
  • ⚠️ 活动窗口检测可能需要额外设置

Linux

  • ✅ 支持基本功能
  • ⚠️ 需要安装 xdotool: `sudo apt-get install xdotool`
  • ⚠️ 某些桌面环境可能需要额外配置

使用说明

主界面功能

  1. 键盘监控卡片: 显示总按键数、平均速度、峰值速度
  2. 鼠标监控卡片: 显示移动距离、平均速度、总像素数
  3. 工作时长卡片: 显示工作时间、活跃应用数、生产力指数
  4. 应用排行榜: 按使用时长排序的应用列表

快捷键

  • F11: 切换全屏模式
  • F5: 手动刷新数据

控制按钮

  • 重置数据: 清空所有统计数据
  • 全屏: 切换全屏显示模式

权限设置

Windows

  • 通常无需额外设置
  • 某些杀毒软件可能需要添加信任

macOS

  1. 系统偏好设置 → 安全性与隐私 → 隐私
  2. 选择"辅助功能"
  3. 添加 Python 或终端应用到允许列表
  4. 重启应用

Linux

```bash

Ubuntu/Debian

sudo apt-get install xdotool

如果遇到权限问题,可能需要添加用户到 input 组

sudo usermod -a -G input $USER

```

开发和自定义

项目结构

```

work-monitor/

├── main.py # 主程序入口

├── monitor.py # 监控核心逻辑

├── ui_components.py # UI 组件

├── requirements.txt # 依赖列表

├── setup.py # 安装配置

└── README.md # 说明文档

```

自定义配置

修改监控间隔

在 `monitor.py` 中调整:

```python

应用监控间隔(秒)

time.sleep(1) # 默认1秒

界面更新间隔在 main.py

self.update_timer.start(1000) # 默认1000毫秒

```

自定义界面样式

在 `main.py` 中修改 QSS 样式:

```python

self.setStyleSheet("""

QMainWindow {

background: qlineargradient(x1:0, y1:0, x2:1, y2:1,

stop:0 #667eea, stop:1 #764ba2);

}

""")

```

添加新的监控指标
  1. 在 `monitor.py` 中添加数据收集逻辑
  2. 在 `main.py` 中添加显示组件
  3. 更新 `update_display` 方法

故障排除

常见问题

  1. ImportError: No module named 'PySide6'

    ```bash

    pip install PySide6

    ```

  2. 权限被拒绝 (macOS)

    • 检查系统偏好设置中的辅助功能权限
    • 重启终端和应用
  3. 鼠标/键盘监控不工作

    • 检查是否有其他程序占用输入设备
    • 尝试以管理员权限运行
  4. 应用检测不准确

    • Windows: 确保 pywin32 正确安装
    • Linux: 安装 xdotool
    • macOS: 检查权限设置
相关推荐
molaifeng2 小时前
Go 语言如何实现高性能网络 I/O:Netpoller 模型揭秘
开发语言·网络·golang
崇山峻岭之间2 小时前
Matlab学习记录33
开发语言·学习·matlab
Evand J2 小时前
【2026课题推荐】DOA定位——MUSIC算法进行多传感器协同目标定位。附MATLAB例程运行结果
开发语言·算法·matlab
小二·2 小时前
Python Web 开发进阶实战:性能压测与调优 —— Locust + Prometheus + Grafana 构建高并发可观测系统
前端·python·prometheus
jllllyuz3 小时前
基于MATLAB的二维波场模拟程序(含PML边界条件)
开发语言·matlab
忆锦紫3 小时前
图像增强算法:Gamma映射算法及MATLAB实现
开发语言·算法·matlab
七牛云行业应用3 小时前
重构实录:我删了 5 家大模型 SDK,只留了 OpenAI 标准库
python·系统架构·大模型·aigc·deepseek
知乎的哥廷根数学学派3 小时前
基于多模态特征融合和可解释性深度学习的工业压缩机异常分类与预测性维护智能诊断(Python)
网络·人工智能·pytorch·python·深度学习·机器学习·分类
亲爱的非洲野猪4 小时前
Java锁机制八股文
java·开发语言
LawrenceLan4 小时前
Flutter 零基础入门(十二):枚举(enum)与状态管理的第一步
开发语言·前端·flutter·dart