Skip to content

mohammad-rj/ping-widget

Repository files navigation

Ping Widget

A lightweight, always-on-top desktop widget that shows a real-time ping latency graph — stays visible over all windows without stealing focus.

Ping Widget Python License

Features

  • Real-time ping latency graph updated every second
  • Configurable target IP via ping_widget_config.json (default: 8.8.8.8)
  • Transparent, frameless window — always on top, never blocks your workflow
  • Stays visible even when clicking on the desktop
  • System tray icon — double-click to show/hide, right-click to exit
  • Drag to move, Ctrl+Drag to resize
  • Window position and size saved between sessions
  • Auto-repositions to top-right corner if saved position is off-screen (e.g. after monitor change)
  • No subprocess or ping.exe — uses TCP socket for latency measurement (no DLL conflicts)

Usage

Download

Grab the latest PingWidget-*.zip from the Releases page — no installation needed.

Extract the zip and run PingWidget.exe.

Configuration

Edit ping_widget_config.json in the same folder as the exe:

{
    "ping_target": "8.8.8.8",
    "ping_port": 53,
    "ping_timeout": 1.0
}
Field Description Default
ping_target IP or hostname to measure latency to 8.8.8.8
ping_port TCP port used for connection 53
ping_timeout Timeout in seconds per measurement 1.0

If the config file is missing, defaults are used automatically.

Run from source

pip install PySide6 matplotlib numpy
python ping_widget.py

Controls

Action How
Move Drag the small red dot (bottom-right corner)
Resize Ctrl + Drag the red dot
Show / Hide Double-click tray icon
Exit Right-click tray icon → Exit, or right-click widget → Exit

Requirements

  • Windows 10/11
  • Python 3.12+ (if running from source)

About

Lightweight always-on-top desktop ping latency graph widget for Windows

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages