In this post I inform you of a problem I had to face on Debian Linux: How to enable suspension on the LXDE desktop environment as soon as the laptop lid is closed.

In questo post vi informo di un problema che ho dovuto affrontare su Debian Linux: Come abilitare la sospensione dell'ambiente desktop LXDE quando si chiude il coperchio del portatile.

[Debian] Enable laptop suspension on LXDE when lid is closed

Hello world!
Today I 'm going to talk about a problem I had when I started using Debian for the first time.

When I made the Debian basic installation tutorial, I installed only a minimal environment, meaning, the base system and the LXDE desktop environment.
I was trying to enable the option of suspending the laptop's activity as soon as I closed its lid, but I was not able to.
I never had this problem on Ubuntu because even with the minimal install, the default desktop environment included settings programs that allowed you to enable suspension easily (which is not the case of LXDE, in which most things must be done manually).
That's why today, I'll show you what to do, if you want to set the suspension on LXDE manually:

  1. Install pm-utils if you don't have them, do that by invoking a terminal window and type:
    sudo apt-get install pm-utils
    Now, go to the directory "/etc/acpi", here make a file with a name of your choice.
    What you want to do is to open the file, copy and paste the following code into it, and finally save it.
    #!/bin/bash
    
    grep -q open /proc/acpi/button/lid/LID0/state
    
    if [ "$?" -eq 0 ] #Is it opened?
    then
        su your_user -c "xscreensaver-command -lock"
    else
        /usr/sbin/pm-suspend
    fi
    Remember to replace "your_user" with your actual user name and make the file executable.
  2. Now move to the directory "events" (it's inside "/etc/acpi", your current directory at this point).
    Here, make a new file with another name of your choice (you can use the same name you used before, but it's not important for it to be same).
    Open this other file and copy and paste the following lines in it:
    event=button[ /]lid
    action=/etc/acpi/file_you_made
    Remember to replace "file_you_made" with the name of the file you made in the previous step.

Try to close the lid now, the computer should suspend.
In addition, when you open the lid you will see the xscreensaver utility, asking you for a password.

Please notice that in the first step we made a script that checks the state of the lid, if it is closed, the command "pm-suspend" is performed, otherwise the screen lock command is executed.

You may wonder why we had to use 'su your_user -c "xscreensaver-command -lock"' instead of a simple "xscreensaver-command -lock" like logic would suggest.
You see, when computer important events occur (in this case the lid's closure), it's the root user who executes the associated actions.
The problem is that xscreensaver refuses to execute if the user is root (apparently for security reasons).
The only way to make the screen lock properly is to tell root "to become our user" and execute the command.

I hope this tutorial will be useful to people that are starting with Debian, and because that's all for today, see you another time, in another post!

Go back to the top, Share, Look at the comments or Comment yourself!

[Debian] Abilitare la sospensione del portatile su LXDE a coperchio chiuso

Salve mondo!
Oggi parlerò di un problema che ho avuto quando ho iniziato ad usare Debian per la prima volta.

Quando ho fatto il il tutorial sull'installazione base di Debian, avevo installato solo l'ambiente minimo, cioè, il sistema base e l'ambiente desktop LXDE.
Stavo tentando di abilitare l'opzione per sospendere le attività del portatile non appena chiudevo il coperchio, ma non ci sono riuscito.
Non ho mai avuto questo problema su Ubuntu perché anche con l'installazione minima, l'ambiente desktop predefinito includeva programmi di impostazioni che permettevano di abilitare la sospensione facilmente (questo però, non è il caso di LXDE, in cui molte cose vanno fatte manualmente).
Perciò oggi, vi mostrerò cosa fare se volete impostare la sospensione su LXDE manualmente:

  1. Installate pm-utils se non lo avete, fatelo invocando una finestra di terminale e digitate:
    sudo apt-get install pm-utils
    Ora, andate nella cartella "/etc/acpi", qui create un file con un nome a vostra scelta.
    Adesso aprite tale file, copiate ed incollate il seguente codice all'interno di esso e infine salvatelo.
    #!/bin/bash
    
    grep -q open /proc/acpi/button/lid/LID0/state
    
    if [ "$?" -eq 0 ] #È aperto?
    then
        su vostro_utente -c "xscreensaver-command -lock"
    else
        /usr/sbin/pm-suspend
    fi
    Ricordatevi di sostituire "vostro_utente" col vostro vero nome utente e di rendere il file eseguibile.
  2. Ora spostatevi nella cartella "events" (è all'interno di "/etc/acpi", la cartella in cui dovreste trovarvi a questo punto).
    Qui, create un nuovo file con un altro nome a vostra scelta (potete usare lo stesso nome che avete usato prima, tuttavia non è importante che sia lo stesso).
    Aprite quest'altro file e copiate ed incollate le righe seguenti al suo interno:
    event=button[ /]lid
    action=/etc/acpi/file_creato_da_voi
    Ricordatevi di sostituire "file_creato_da_voi" col nome del file che avete creato nel passo precedente.

Ora provate a chiudere il coperchio, il computer dovrebbe effettuare la sospensione.
Oltre a ciò, quando aprite il coperchio vedrete il programma xscreensaver che vi chiede la password.

Vi prego di notare che nel primo passo abbiamo creato uno script che verifica lo stato del coperchio, se è chiuso, viene effettuato il comando "pm-suspend", altrimenti il comando per il blocco dello schermo.

Potreste domandarvi come mai abbiam dovuto usare 'su vostro_utente -c "xscreensaver-command -lock"' invece di un semplice "xscreensaver-command -lock" come logica suggerirebbe.
Vedete, quando accadono gli eventi importanti del computer (in questo caso la chiusura del coperchio), è l'utente root che esegue le azioni associate.
Il problema è che xscreensaver rifiuta di eseguirsi se ad eseguirlo è l'utente root (a quanto pare per ragioni di sicurezza).
L'unico modo per far funzionare il blocco dello schermo è dire a root di "diventare il nostro utente" ed eseguire il comando.

Spero che questo tutorial risulti utile alle persone che stanno iniziando ad usare Debian, e poiché per oggi è tutto, ci si vede un'altra volta, in un altro post!

Torna in cima, Condividi, Guarda i commenti o Commenta tu stesso!