This repository is provided as-is for archival and reference purposes only. Please do not open issues, ask questions, or request features. This project is not actively developed or maintained.
A sleek, customizable desktop system monitoring application built with Python and tkinter that provides real-time monitoring of system resources and process information.
Current Status: ✅ Fully functional with real-time monitoring, process tracking, and optimized performance.
-
Real-time System Monitoring
- CPU usage with real-time graphing
- HDD/SSD activity monitoring with I/O statistics
- Network upload/download speeds with utilization percentage
- Live performance graphs for all metrics
-
Process Monitoring
- Top 3 CPU-intensive processes (excludes system idle)
- Top 3 memory-consuming applications
- Top 3 disk I/O intensive processes
- Stacked layout for better visibility
-
User Interface
- Clean, modern dark theme with custom colors (#202020 background, #0078d4 accents)
- Compact 240x650 window design positioned in upper-right corner
- Draggable window with dedicated drag handle
- Right-click context menu for quick exit
- Escape key support for quick closing
- No title bar for minimal footprint
- Arial font family throughout the interface for consistency
- Responsive graph scaling with dynamic network utilization display
-
Performance Features
- Non-blocking CPU monitoring with psutil integration
- Optimized update intervals (1-second metrics, 2-second process lists)
- Thread-safe graph updates with matplotlib backend
- Efficient process filtering (excludes system idle processes)
- Smart network speed detection with Windows command fallbacks
- Memory-efficient deque-based data storage (60 data points)
- Error handling and graceful degradation
-
Clone the repository:
git clone https://github.com/SamStamport/SystemMonitorGadget.git cd SystemMonitorGadget -
Install dependencies:
pip install -r requirements.txt -
Run the application:
python SystemMonitorGadget.py
- The application launches in the upper right corner of your screen (240x650 window)
- Drag the window by clicking and holding the drag handle at the top
- Right-click anywhere in the window to access the exit menu
- Press
Escapeto exit the application quickly - Click the red × button in the top-right corner to close
- Real-time Updates:
- System metrics: Every 1 second
- Process lists: Every 2 seconds (optimized for performance)
- Graphs: Live updates with 60-point history
- Automatic Features:
- Network speed detection (WiFi/Ethernet)
- System idle process filtering
- Dynamic graph scaling for network utilization
- OS: Windows 10/11
- Python: 3.8 or higher
- Dependencies:
psutil- System monitoringmatplotlib- Graph visualizationnumpy- Numerical operations
You can customize the following aspects by editing the SystemMonitorGadget.py file:
-
Window Configuration:
- Size and position (currently 240x650, upper-right)
- Color scheme (dark theme with customizable hex colors)
- Font family and sizes (currently Arial throughout)
-
Monitoring Settings:
- Update intervals (metrics: 1s, processes: 2s)
- Graph history length (currently 60 data points)
- Process count per category (currently top 3)
-
Visual Customization:
- Graph colors and styles
- Background and accent colors
- Font sizes and weights
- Window transparency and effects
- Architecture: Single-threaded UI with background monitoring thread
- Data Storage: Circular buffers (deque) for efficient memory usage
- Error Handling: Comprehensive exception handling with graceful fallbacks
- Platform: Windows-optimized with native command integration
- Dependencies: Minimal external dependencies for lightweight deployment
This project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
Version: 1.0
Last Updated: December 2024
Status: Production Ready ✅
