Skip to content

mrbeandev/network-status-widget

πŸ“Ά Network Status Widget

Network Status Widget Python License Status

A sleek Windows taskbar widget that displays real-time network connectivity status using colorful signal bars in your system tray.

Author: mrbeandev β€’ Website: mrbean.dev

πŸ“₯ Download β€’ πŸš€ Quick Start β€’ πŸ”§ Build β€’ 🀝 Contribute


✨ Features

🎯 Visual Network Monitoring

  • 6-bar signal strength indicator in system tray
  • Real-time connection quality assessment
  • Color-coded status for instant recognition

🎨 Smart Color Coding

  • 🟒 Green: Excellent connection (< 400ms response)
  • 🟠 Orange: Slow connection (400ms - 3000ms response)
  • πŸ”΄ Red: No connection or very poor (> 3000ms response)

βš™οΈ Highly Customizable

  • Configurable ping intervals (1s, 3s, 5s, 10s, 30s, or custom)
  • Custom ping URL support (default: https://mrbean.dev/health)
  • Adjustable timeout settings
  • Persistent settings storage

πŸ–₯️ System Integration

  • Lightweight system tray application
  • Windows startup integration
  • Minimal resource usage
  • No console window interference

πŸ“¦ Easy Distribution

  • Single executable file (no Python required)
  • Portable - runs on any Windows machine
  • Simple startup folder integration

Features

  • 6-bar signal strength indicator in the taskbar

  • Color-coded status:

    • 🟒 Green: Good connection (fast response times)
    • 🟠 Orange: Slow connection (moderate response times)
    • πŸ”΄ Red: No connection or very slow
  • System tray integration: Lives in your taskbar notification area

  • Customizable ping intervals: 1s, 3s, 5s, 10s, 30s, or custom

  • Configurable ping URL: Default uses https://mrbean.dev/health

  • Real-time monitoring: Continuous network status updates

  • Context menu: Right-click for settings and options

πŸš€ Quick Start

Option 1: Download Executable (Recommended)

  1. Download the latest NetworkStatusWidget.exe from Releases
  2. Run the executable - it will appear in your system tray
  3. Right-click the signal bars for settings and options

Option 2: Run from Source

  1. Clone the repository:

    git clone https://github.com/mrbeandev/network-status-widget.git
    cd network-status-widget
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the widget:

    python taskbar_network_widget.py

πŸ“₯ Installation & Usage

How to Use

  1. After starting, look for the signal bars icon in your system tray (taskbar notification area)
  2. The bars will fill up based on connection quality:
    • More bars = better connection
    • Color indicates overall status
  3. Right-click the icon for options:
    • View current status
    • Change ping intervals
    • Modify ping URL
    • Test connection
    • Exit application

Signal Bar Meanings

  • 6 bars (Green): Excellent connection (< 100ms)
  • 5 bars (Green): Very good connection (< 200ms)
  • 4 bars (Green): Good connection (< 400ms)
  • 3 bars (Orange): Fair connection (< 800ms)
  • 2 bars (Orange): Slow connection (< 1500ms)
  • 1 bar (Orange/Red): Very slow connection (< 3000ms)
  • 0 bars (Red): No connection

Customization

The widget automatically saves your preferences:

All settings are stored in network_widget_settings.json and persist between sessions.

Building Executable

To create a standalone executable file:

  1. Build the exe:

    python build_exe.py

    Or double-click build.bat

  2. Add to Windows startup:

    • Right-click add_to_startup.bat and "Run as administrator"
    • The widget will now start automatically with Windows

The executable will be created in the dist/ folder as NetworkStatusWidget.exe.

For detailed build instructions, see BUILD_INSTRUCTIONS.md.

πŸ“Έ Screenshots

System Tray Integration

The widget appears as signal bars in your Windows system tray, showing connection status at a glance.

Context Menu

Right-click the icon to access all settings and options:

  • View current network status
  • Change ping intervals
  • Modify ping URL
  • Test connection
  • Access about information

🎯 Signal Bar Meanings

Bars Color Status Response Time
6 bars 🟒 Green Excellent < 100ms
5 bars 🟒 Green Very Good < 200ms
4 bars 🟒 Green Good < 400ms
3 bars 🟠 Orange Fair < 800ms
2 bars 🟠 Orange Slow < 1500ms
1 bar 🟠 Orange Very Slow < 3000ms
0 bars πŸ”΄ Red No Connection No response

πŸ”§ Configuration

The widget automatically saves your preferences in network_widget_settings.json:

{
  "ping_url": "https://mrbean.dev/health",
  "ping_interval": 5,
  "timeout": 3,
  "signal_bars": 6
}

Customizable Settings

  • Ping URL: Any HTTP/HTTPS endpoint for connectivity testing
  • Ping Interval: How often to check connection (1-300 seconds)
  • Timeout: Request timeout duration (1-30 seconds)
  • Signal Bars: Number of bars to display (fixed at 6)

πŸš€ Adding to Windows Startup

Automatic Method (Recommended)

  1. Build or download the executable
  2. Right-click add_to_startup.bat and select "Run as administrator"
  3. The widget will now start automatically with Windows

Manual Method

  1. Press Win + R, type shell:startup, press Enter
  2. Copy NetworkStatusWidget.exe to the startup folder
  3. The widget will start with Windows

πŸ› οΈ Development

Prerequisites

  • Python 3.7 or higher
  • Windows operating system
  • Internet connection for testing

Setting up Development Environment

# Clone the repository
git clone https://github.com/mrbeandev/network-status-widget.git
cd network-status-widget

# Create virtual environment
python -m venv .venv
.venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run from source
python taskbar_network_widget.py

Project Structure

network-status-widget/
β”œβ”€β”€ taskbar_network_widget.py    # Main application
β”œβ”€β”€ build_exe.py                 # Build script
β”œβ”€β”€ requirements.txt             # Dependencies
β”œβ”€β”€ README.md                    # This file
β”œβ”€β”€ BUILD_INSTRUCTIONS.md        # Build guide
β”œβ”€β”€ CONTRIBUTING.md              # Contribution guidelines
β”œβ”€β”€ CHANGELOG.md                 # Version history
β”œβ”€β”€ LICENSE                      # MIT License
└── .gitignore                   # Git ignore rules

🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Ways to Contribute

  • πŸ› Report bugs and issues
  • πŸ’‘ Suggest new features
  • πŸ”§ Submit code improvements
  • πŸ“š Improve documentation
  • 🎨 Design better icons or UI

πŸ“‹ Roadmap

  • Unit tests and automated testing
  • Multiple ping URL support
  • Network adapter selection
  • Bandwidth monitoring
  • Custom themes and icons
  • Sound notifications
  • Network statistics logging
  • Configuration import/export

πŸ› Troubleshooting

Common Issues

Widget doesn't appear in system tray

  • Check if the application is running in Task Manager
  • Look in the hidden icons area (click the up arrow in system tray)

No network detection

  • Check firewall settings
  • Try changing the ping URL in settings
  • Verify internet connection with browser

Build fails

  • Ensure Python 3.7+ is installed
  • Run pip install -r requirements.txt
  • Check for antivirus interference

Startup doesn't work

  • Run add_to_startup.bat as administrator
  • Manually check the startup folder: Win + R β†’ shell:startup

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Built with pystray for system tray integration
  • Uses Pillow for icon generation
  • Packaged with PyInstaller for distribution
  • Network testing via mrbean.dev health endpoint

Made with ❀️ for Windows users who want to monitor their network connection

Author: mrbeandev β€’ Website: mrbean.dev

⭐ Star this repo β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature