From a686d0105185fb5ec578879fd6160eefb951d83c Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Sun, 11 Nov 2018 14:07:43 -0800 Subject: Add backup scripts, including systemd service and timer --- home/.local/bin/dbusmonitor | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 home/.local/bin/dbusmonitor (limited to 'home/.local/bin/dbusmonitor') diff --git a/home/.local/bin/dbusmonitor b/home/.local/bin/dbusmonitor new file mode 100755 index 0000000..f3b3d4a --- /dev/null +++ b/home/.local/bin/dbusmonitor @@ -0,0 +1,27 @@ +#!/usr/bin/python3 +# dbus-monitor --system "path=/org/freedesktop/NetworkManager,interface=org.freedesktop.DBus.Properties,type=signal,member=PropertiesChanged" + +from gi.repository import GLib +import pydbus +loop = GLib.MainLoop() +systemd = pydbus.SessionBus().get(".systemd1") +nm = pydbus.SystemBus().get("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager") + +# https://developer.gnome.org/NetworkManager/stable/nm-dbus-types.html#NMMetered +# 0 = The metered status is unknown +# 1 = Metered, the value was statically set +# 2 = Not metered, the value was statically set +# 3 = Metered, the value was guessed +# 4 = Not metered, the value was guessed +def check_metered(changed): + value=nm.Metered + if (value == 2 or value == 4): + # start unit (replace any conflicting requests that might have been + # enqueued to systemctl but not yet run) + systemd.StartUnit("unmetered-internet.target", "replace") + else: + systemd.StopUnit("unmetered-internet.target", "replace") + +nm.PropertiesChanged.connect(check_metered) +loop.run() + -- cgit v1.2.3