1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
# -*- sh -*-
# vim:ft=sh:ts=8:sw=4:noet
###
## Disconnects NetworkManager on suspend and connects on resume. This is the equivalent of
## clicking the "Switch to Offline" button before suspending, and clicking the
## "Switch to Online" button after resuming.
##
## Author: Markus Becker
## Credits:
## Based on kopete scriplet from Pat Double <pat@patdouble.com>
##
###
AddConfigHandler NMOptions
AddConfigHelp "EnableNMReconnect <boolean>" "Disconnect and reconnect NM before and after suspending."
NMSuspend() {
vecho 3 "Putting NetworkManager to sleep"
/usr/bin/dbus-send --system \
--dest=org.freedesktop.NetworkManager \
--type=method_call /org/freedesktop/NetworkManager \
org.freedesktop.NetworkManager.sleep
return 0
}
NMResume() {
vecho 3 "Waking up NetworkManager"
/usr/bin/dbus-send --system \
--dest=org.freedesktop.NetworkManager \
--type=method_call /org/freedesktop/NetworkManager \
org.freedesktop.NetworkManager.wake
return 0
}
NMOptions() {
case $1 in
enablenmreconnect)
if [ ! -x "$(command -v dbus-send)" ]; then
vecho 1 "dbus-send not found, cannot signal NetworkManager"
return 1
fi
BoolIsOn "$1" "$2" && NM_ENABLED=1 || return 0
;;
*)
return 1
esac
if [ -z "$NM_HOOKED" ] ; then
vecho 0 "nm: hook"
AddSuspendHook 61 NMSuspend
AddResumeHook 61 NMResume
NM_HOOKED=1
fi
return 0
}
|