dbus-monitor --system "type='signal',sender='org.freedesktop.UDisks2',interface='org.freedesktop.DBus.Properties'" | perl -lne' if (/^\s+ ([[:xdigit:]]{2} \s)+/msx) { $r .= $_; } elsif (/\s+\]/ && $r) { my $mount = join "", map { chr hex $_ } grep { !!$_ && $_ ne "00" } split /\s+/, $r; system "xdg-open", $mount; $r = ""; } '