Real-time system monitoring tool with professional DevOps aesthetics
Features โข Installation โข Usage โข Autostart โข Screenshots
- โจ Real-time monitoring: CPU, RAM, SWAP, GPU, Disk usage and temperatures
- ๐จ Cyber/DevOps aesthetic: Professional terminal-style interface
- โก Lightweight: Low resource consumption (~0.5% CPU, ~30MB RAM)
- ๐ Auto-refresh: Updates every 1.5 seconds
- ๐ ASCII progress bars: Visual representation of metrics
- ๐จ Color-coded alerts: Green โ Yellow โ Red based on usage
- ๐ช Normal window behavior: Minimizable and doesn't block other windows
- ๐ Auto-start support: Run on system boot
- OS: Linux (Debian/Ubuntu based distros, Arch, Fedora, etc.)
- Python: 3.8 or higher
- Dependencies:
python3-tk(Tkinter)psutil(System monitoring)lm-sensors(Temperature sensors)
git clone https://github.com/BRUNO1993-CIBER/monitor-linux.git
cd monitor-linuxDebian/Ubuntu:
sudo apt update
sudo apt install python3-tk python3-venv lm-sensorsArch Linux:
sudo pacman -S tk python-pip lm_sensorsFedora:
sudo dnf install python3-tkinter lm_sensorssudo sensors-detect
# Press ENTER to accept all defaultspython3 -m venv .venv
source .venv/bin/activate
pip install psutilpython3 mini_conky.py# Navigate to project directory
cd /path/to/monitor-linux
# Activate virtual environment
source .venv/bin/activate
# Run in foreground
python3 mini_conky.py
# Or run in background
python3 mini_conky.py &pkill -f mini_conky.pyps aux | grep mini_conky.py1. Create launcher script:
nano start_monitor.shAdd this content:
#!/bin/bash
cd "/path/to/monitor-linux"
source .venv/bin/activate
python3 mini_conky.py &
deactivateMake executable:
chmod +x start_monitor.sh2. Create autostart entry:
mkdir -p ~/.config/autostart
nano ~/.config/autostart/cybermonitor.desktopAdd this content:
[Desktop Entry]
Type=Application
Name=CyberMonitor
Comment=System Monitor - DevOps Style
Exec=/path/to/monitor-linux/start_monitor.sh
Terminal=false
Hidden=false
X-GNOME-Autostart-enabled=true
StartupNotify=false
Categories=Utility;System;Replace /path/to/monitor-linux/ with your actual path!
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/cybermonitor.serviceAdd this content:
[Unit]
Description=CyberMonitor System Monitor
After=graphical-session.target
[Service]
Type=forking
WorkingDirectory=/path/to/monitor-linux
ExecStart=/bin/bash -c 'source .venv/bin/activate && python3 mini_conky.py &'
Restart=on-failure
RestartSec=5
Environment=DISPLAY=:0
Environment=XAUTHORITY=%h/.Xauthority
[Install]
WantedBy=default.targetEnable and start:
systemctl --user daemon-reload
systemctl --user enable cybermonitor.service
systemctl --user start cybermonitor.service
# Check status
systemctl --user status cybermonitor.serviceEdit mini_conky.py to customize:
self.bg_color = "#0a0e27" # Background
self.fg_primary = "#00ff41" # Primary (green)
self.fg_secondary = "#00d9ff" # Secondary (cyan)
self.fg_warning = "#ffaa00" # Warning (orange)
self.fg_danger = "#ff3366" # Danger (red)self.width = 280 # Width in pixels
self.height = 200 # Height in pixelsself.root.after(1500, self.update_stats) # 1500ms = 1.5 seconds| Metric | Description | Color Coding |
|---|---|---|
| CPU | Total CPU usage percentage | Green < 50% < Yellow < 75% < Red |
| TEMP | CPU temperature (ยฐC) | Based on temperature value |
| RAM | Memory usage with amount used | Green < 50% < Yellow < 75% < Red |
| SWAP | Swap memory usage | Green < 50% < Yellow < 75% < Red |
| GPU | GPU temperature if available | Based on temperature value |
| DISK | Root partition (/) usage | Green < 50% < Yellow < 75% < Red |
# Reconfigure sensors
sudo sensors-detect
sensors # Check if temperatures are detectedsudo apt install nvidia-smi # For NVIDIA GPUs# Install amdgpu drivers and ensure lm-sensors detects them
sensors# Check autostart file exists
ls -la ~/.config/autostart/cybermonitor.desktop
# Check script permissions
ls -la /path/to/monitor-linux/start_monitor.sh
# Test script manually
/path/to/monitor-linux/start_monitor.sh# Increase update interval in mini_conky.py
# Change from 1500 to 3000 (3 seconds)
self.root.after(3000, self.update_stats)- Language: Python 3.8+
- GUI Framework: Tkinter
- System Monitoring: psutil
- Temperature Reading: lm-sensors
- Font: JetBrains Mono (falls back to monospace)
This project is licensed under the MIT License - see the LICENSE file for details.
Bruno
- GitHub: @BRUNO1993-CIBER
- Repository: monitor-linux
Contributions, issues, and feature requests are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
If you find this project useful, please consider giving it a star! โญ
Made with โค๏ธ for the Linux community