You are not logged in.

#1 2017-04-04 11:41:29

shaoyu0209
Member
From: Taiwan
Registered: 2016-10-28
Posts: 42

Disable suspending on lid close on AC

I would like to disable suspending on lid close on AC so that my systemd backup timer would work. However, I also want to enable suspending on battery.

I set the "HandleLidSwitch" in /etc/systemd/logind.conf to "ignore"

However, I would not be able to suspend on lid close when I am using my battery, which will drain the battery very quickly.

I am using GNOME 3 with gdm.

Offline

#2 2017-04-04 13:28:19

Docbroke
Member
From: India
Registered: 2015-06-13
Posts: 1,433

Re: Disable suspending on lid close on AC

Isn't that available in gnome-settings /powermanager or something like that?

Offline

#3 2017-04-04 13:34:23

shaoyu0209
Member
From: Taiwan
Registered: 2016-10-28
Posts: 42

Re: Disable suspending on lid close on AC

Docbroke wrote:

Isn't that available in gnome-settings /powermanager or something like that?

No. Systemd is managing those events now. Therefore, I would prefer to add a script to run before suspending that detects whether the computer is plugged in.

Offline

#4 2017-04-05 03:17:59

Docbroke
Member
From: India
Registered: 2015-06-13
Posts: 1,433

Re: Disable suspending on lid close on AC

Something like this

#!/bin/bash

xlock() {
    ( slock && xset dpms 0 0 300 ) &
    xset dpms 0 0 2
    xset dpms force off
}

while true;
do 
    if [[ $(< /proc/acpi/button/lid/LID0/state) = *closed ]] 
    then
	case $(< /sys/class/power_supply/AC/online) in
	    1)  [[ ! "$(pidof slock)" ]] && xlock ;;
	    0)	systemctl suspend ;;
	esac
    fi
    sleep 2;
done

Last edited by Docbroke (2017-04-05 03:20:03)

Offline

#5 2017-04-09 11:57:38

shaoyu0209
Member
From: Taiwan
Registered: 2016-10-28
Posts: 42

Re: Disable suspending on lid close on AC

Docbroke wrote:

Something like this

#!/bin/bash

xlock() {
    ( slock && xset dpms 0 0 300 ) &
    xset dpms 0 0 2
    xset dpms force off
}

while true;
do 
    if [[ $(< /proc/acpi/button/lid/LID0/state) = *closed ]] 
    then
	case $(< /sys/class/power_supply/AC/online) in
	    1)  [[ ! "$(pidof slock)" ]] && xlock ;;
	    0)	systemctl suspend ;;
	esac
    fi
    sleep 2;
done

Sorry for late reply. Where should I put this file?

Offline

Board footer

Powered by FluxBB