A GNOME Shell extension that displays ping latency in the top bar.
Fork of the original ping_indicator, rewritten for GNOME 45+ with:
- Dual-stack monitoring: IPv4 and/or IPv6, each tracked independently
(
ipv4,ipv6orbothmode) - Per-protocol status in the top bar (
v4 23ms/v6 31ms, icon when down) - Smart retry: hard-failed protocols (no route, DNS failure, bad destination) are re-probed on a configurable cadence instead of respawning every second
- Offline alert (sound + top bar color) fires only when all active protocols are down, and only once per outage
- Failure reasons in the panel menu: Timeout, Unreachable, No network, DNS Err, Bad dest
- Persistent
pingsubprocesses (no spawning per refresh) - Modern Adwaita preferences UI
make installThis builds the extension and runs gnome-extensions install --force for you.
Log out and back in, then enable:
gnome-extensions enable ping_indicator_plusplus@info.sig9.chIf you prefer to run the steps manually:
make
gnome-extensions install --force ping_indicator_plusplus@info.sig9.ch.zipcd ~/.local/share/gnome-shell/extensions/
wget https://github.com/sig9sec/ping_indicator_plusplus/releases/download/v1/ping_indicator_plusplus@info.sig9.ch.zip
unzip ping_indicator_plusplus@info.sig9.ch.zip -d ping_indicator_plusplus@info.sig9.ch
rm ping_indicator_plusplus@info.sig9.ch.zipLog out and back in, then enable with gnome-extensions enable ping_indicator_plusplus@info.sig9.ch.
All settings are available in the preferences dialog. Notable keys:
| Key | Default | Meaning |
|---|---|---|
ping-mode |
both |
Which protocol(s) to monitor |
ping-destination-v4 |
8.8.8.8 |
IPv4 destination (IP or hostname) |
ping-destination-v6 |
2001:4860:4860::8888 |
IPv6 destination (IP or hostname) |
refresh-interval |
2 |
Seconds between pings |
failure-timeout |
5 |
Seconds without a reply before a protocol counts as down |
retry-interval |
10 |
Smart-retry cadence for exited protocols |
show-protocol-status |
true |
Per-protocol panel display; false = single legacy value |
show-failure-reason |
false |
Show why a protocol is down in the top bar |
hide-down-protocols |
false |
Both mode only: drop down protocols from the top bar |
Tips:
- The IPv6 destination should be a real external address:
::1or a link-local address is always reachable and would report IPv6 as healthy even without actual connectivity. - Leaving a destination empty disables that protocol.
- The offline alert (sound, bar color) only fires when every
active protocol is down. If you only care about IPv4, set the mode
to
ipv4. hide-down-protocolstrims the bar while at least one protocol is up; during a full outage the protocols come back, and the popup menu always lists them.
The old ping-destination setting was replaced by the per-protocol
destinations; set your destination once in the preferences dialog. By
default both protocols are now monitored; switch ping-mode to
ipv4 for the old single-stack behavior and display.
Run the static checks (schema strict compile, JS syntax, unit tests):
make checkThe schemas/gschemas.compiled file is generated from the .gschema.xml:
glib-compile-schemas schemas/This is done automatically by make.
- Check for GNOME Shell errors:
journalctl --user -f | grep -i ping - Inspect via Looking Glass:
Alt+F2→ typelg→ Extensions - Verify the extension is listed:
gnome-extensions list - Run
gnome-tweaksand make sure the extension is enabled

