summaryrefslogtreecommitdiff
path: root/pm/module.d/tuxonice
diff options
context:
space:
mode:
Diffstat (limited to 'pm/module.d/tuxonice')
-rwxr-xr-xpm/module.d/tuxonice32
1 files changed, 23 insertions, 9 deletions
diff --git a/pm/module.d/tuxonice b/pm/module.d/tuxonice
index 3fcc995..9764e21 100755
--- a/pm/module.d/tuxonice
+++ b/pm/module.d/tuxonice
@@ -9,15 +9,28 @@ export TUXONICE_LOC
# more locations might be nice
for loc in "/sys/power/tuxonice" "/sys/power/suspend2"; do
[ -d "${loc}" ] && { TUXONICE_LOC="${loc}"; break; }
-done
+done
+
+if [ -n $TUXONICE_LOC ]; then
+ toi_maybe_chvt() {
+ local toi_ui="$(cat "$TUXONICE_LOC/user_interface/program")"
+ local toi_ui_en="$(cat "$TUXONICE_LOC/user_interface/enabled")"
+ if [ -x "$toi_ui" ] && [ "$toi_ui_en" = 1 ] && \
+ ! state_exists console; then
+ fgconsole |savestate console
+ chvt 63
+ fi
+ }
+fi
if [ -z "$HIBERNATE_MODULE" -a -n "$TUXONICE_LOC" ] && \
[ -f "${TUXONICE_LOC}/do_hibernate" ]; then
HIBERNATE_MODULE="tuxonice"
do_hibernate()
{
- echo 5 > "${TUXONICE_LOC}/powerdown_method"
- echo anything > "${TUXONICE_LOC}/do_hibernate"
+ toi_maybe_chvt
+ echo 5 > "${TUXONICE_LOC}/powerdown_method"
+ echo anything > "${TUXONICE_LOC}/do_hibernate"
}
fi
@@ -27,13 +40,14 @@ if [ -z "$SUSPEND_HYBRID_MODULE" -a -n "$TUXONICE_LOC" ] && \
SUSPEND_HYBRID_MODULE="tuxonice"
do_suspend_hybrid()
{
- r=0
- echo 3 >"${TUXONICE_LOC}/powerdown_method"
- echo anything >"${TUXONICE_LOC}/do_hibernate"
- r=$?
- [ -f /sys/power/tuxonice/did_suspend_to_both ] && \
+ toi_maybe_chvt
+ r=0
+ echo 3 >"${TUXONICE_LOC}/powerdown_method"
+ echo anything >"${TUXONICE_LOC}/do_hibernate"
+ r=$?
+ [ -f /sys/power/tuxonice/did_suspend_to_both ] && \
[ "$(cat /sys/power/tuxonice/did_suspend_to_both)" != "1" ] && \
REVERSE="thaw"
- return $r
+ return $r
}
fi