#!/usr/bin/perl use strict; use warnings; use Date::Format; my ($last_pid, $last_rss, $last_vsz) = getNmData(); while (1) { sleep ($ARGV[0] || 5); my ($pid, $rss, $vsz) = getNmData(); if ($rss != $last_rss) { notify("/usr/share/sounds/KDE_Beep_Pop.wav", "rss", $last_rss, $rss); } if ($vsz != $last_vsz) { notify("/usr/share/sounds/pop.wav", "vsz", $last_vsz, $vsz); } ($last_pid, $last_rss, $last_vsz) = ($pid, $rss, $vsz); } exit 0; sub getNmData { return split(/\s+/, `pgrep -x NetworkManager | xargs ps -o pid=,rss=,vsz=`); } sub notify { system("aplay $_[0] > /dev/null 2>&1"); my $m = "NetworkManager $_[1] $_[2] => $_[3]"; system("notify-send '$m'"); }