( lancsihh | 2007. 03. 19., h – 09:47 )

Szia!

Ezzel én is sokat játszottam.

Kell az acpi daemon.

Hozz létre egy fájlt:
/etc/acpi/events/lidbtn

Tartalma:


event=button[ /]lid

action=/etc/acpi/lid.sh

Illetve egy /etc/acpi/lid.sh-t, melynek tartalma:


#!/bin/bash


. /usr/share/acpi-support/power-funcs
. /usr/share/acpi-support/policy-funcs
. /etc/default/acpi-support

[ -x /etc/acpi/local/lid.sh.pre ] && /etc/acpi/local/lid.sh.pre

if [ `CheckPolicy` == 0 ]; then exit; fi

grep -q closed /proc/acpi/button/lid/*/state
if [ $? = 0 ]
then
    for x in /tmp/.X11-unix/*; do
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
    getXuser;
    if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"        
        . /usr/share/acpi-support/screenblank
    fi
    done
else
    for x in /tmp/.X11-unix/*; do
    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
    getXuser;
    if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
        grep -q off-line /proc/acpi/ac_adapter/*/state
        if [ $? = 1 ]
        then
        if pidof xscreensaver > /dev/null; then 
            su $user -c "xscreensaver-command -unthrottle"
        fi
        fi
        if [ x$RADEON_LIGHT = xtrue ]; then
        [ -x /usr/sbin/radeontool ] && radeontool light on
        fi
        if [ `pidof xscreensaver` ]; then
        su $user -c "xscreensaver-command -deactivate"
        fi
        su $user -c "xset dpms force on"
    fi
    done
fi
[ -x /etc/acpi/local/lid.sh.post ] && /etc/acpi/local/lid.sh.post

Ez a 7.04es ubuntuban van, a debianon nekem vmivel egyszerűbbre sikeredett, de ez tökéltesen működik.