Prevent lightdm from turning off screen when locking session

7,354

Solution 1

As of Ubuntu 20.04 (LTS) Xfce comes with a native screensaver. When I lock the session, the screensaver kicks in. If I lock the session in any way (lock icon click in Whisker, timeout, xflock4 command), the screensaver starts. If I move the mouse or press a mouse/keyboard button, the unlock dialog appears. The monitor stays on all this time.

Solution 2

Ok, you have a few options, depending on what you are looking for exactly:

1. Disable the display timeout/turning off when idle for too long, even to the point of infinity if so desired.

This operation is actually controlled by the screensaver, and can be disabled with sudo xset s [timeout] [cycle] , and to disable screen timeout and cycling (burn-in prevention) you can set it with the following:

sudo xset s 0 0 

and in your case of 1 hour timeout you can set it to

sudo xset s 3600 3600

2. Display slow to turn back on/redisplay login

While theoretically possible for a monitor to take 10 seconds to turn back on (I personally haven't seen a screen do that since CRT TVs from the 80s and I doubt that was intended) I believe that what is actually happening is that while your display is still blank, your system behaves in the same way it does when you have the "screen is locked" white on black text visible.

This in most cases can be circumvented fairly easily, with switching to another terminal tty, let's say CTRL+ALT+F4. After logging in, you can execute

sudo loginctl unlock-session [ID]

or if you don't want to even bother finding the ID of your specific session:

sudo loginctl unlock-sessions

and then just hit CTRL+ALT+F7 and you will already be all logged in and have your x-window-manager ready to go.

Share:
7,354

Related videos on Youtube

Denis Nikolaenko
Author by

Denis Nikolaenko

Updated on September 18, 2022

Comments

  • Denis Nikolaenko
    Denis Nikolaenko over 1 year

    I am running Xubuntu 18.04. When I lock the session, the screen gets turned off instantly. I am using stock lightdm as display manager and lightlocker for locking the session.

    From my viewpoint the following sequence of events happens.

    1. I initiate locking by running xflock4 via keyboard shortcut or clicking "Lock Screen" in the Whisker (Main) menu.
    2. VT8 becomes active, a new lightdm greeter is spawned on this VT terminal and physical screen turns off at the same time.
    3. My usual VT7 terminal gets seized in background with lightlocker which draws "This session is locked" screen.

    If press some button on the keyboard or move the mouse, the screen turns on. If I press Control-Alt-F7, I see lightlocker lock screen in my original session. If I press Control-Alt-F8 I go back to the greeter where I can enter my password. After entering the password, VT7 becomes active and lightlocker white-on-black lock screen is no longer shown. If I later go back to VT8 with Control-Alt-F8, I see a completely black screen with only a blinking cursor (seems to be in text mode).

    If the session timeouts and gets locked automatically, I also end up with the screen turned off. That can happen several times a day.

    I am using an external monitor which is very slow to turn on again. It takes around 10 seconds and that is quite annoying every single time. I would rather keep it on for an hour or more on password dialog before timing it out and turning off automatically.

    Also there is a non-zero chance of getting a system freeze due to buggy Intel (KMS?) drivers when doing VT switch and turning of the screen at almost the same time.

    I skimmed through lightdm and lightdm greeter docs and found no hints on how to prevent that.

    Update 1

    1. I discovered an "Action" applet for the xfce4-panel that can "switch" user sessions without turning off the screen. This essentially locks the session with light-locker and shows greeter on a new VT. After some digging I discovered a command to show greeter, dm-tool switch-to-greeter. I have reassigned keyboard shortcut to lock the screen from xflock4 to dm-tool switch-to-greeter as workaround. But the problem with automatic locking and turning screen still annoys me. What is interesting that dm-tool lock and light-locker-command --lock (xflock4 calls it) behave the same and produce a turned off monitor.
    2. If I uninstall light-locker (with full reboot) and do dm-tool lock, the screen also turns off. So this should not be related to light-locker...

    Update 2

    The question is how to keep screen turned on when locking the session via light-locker on timeout or locking manually with xflock4, not on how to disable timeouts for locking.

    • basin
      basin almost 3 years
      Tried your half-solution with dm-tool switch-to-greeter. Unfortunately, it still allows you to switch back to the active session on VT7 without entering password.
    • basin
      basin almost 3 years
      You previously reassigned the hotkey from xflock4 to a working lock command, but instead you should have configured xflock4 itself: xfconf-query -c xfce4-session -p /general/LockCommand -s "<a-working-lock-command>"
  • Denis Nikolaenko
    Denis Nikolaenko almost 5 years
    1. I do not want to disable automatic locking timeouts (I have updated the question to mention that) 2. The monitor is from 2011 and is really slow to turn on. I can use the session blindly while it is turning on and enter my password, but I would rather keep it turned on for a while after gtk greeter is shown to avoid system freezes.
  • NetIceGear
    NetIceGear almost 5 years
    then sudo xset s 3600 3600 should still lock the session but not turn on the display screensaving features until after 1 hour passes.
  • Denis Nikolaenko
    Denis Nikolaenko almost 5 years
    Sorry, but this does not work for me. I tried xset s 10 600. The screen still turns off as the result of Light Locker sending signal to LightDM. (And I get frequent freezes). I may want to look at the sources for dm-tool and lightdm, especially the codepath for dm-tool lock all the way to the final ioctl/syscall in LightDM itself resulting in turned off screen.
  • NetIceGear
    NetIceGear almost 5 years
    Ok, I think I see what is happening. Try to run light-locker-command -a from the terminal (not as root). I am fairly certain your screen will just go black for a second and then reactivate back to your desktop GUI right away. If so, run xdg-screensaver status (it will likely say enabled ), followed by xdg-screensaver activate (this will more than likely show the same behavior as light-locker-command -a) . Confirm these behaviors just so I know I am on the right track and I will update my original post with the solution.
  • Denis Nikolaenko
    Denis Nikolaenko almost 5 years
    xdg-screensaver status shows enabled before and after the experiments, so light-locker process properly runs inside the session. If I run sleep 1; light-locker-command -a the screen turns off. The same with sleep 1; xdg-screensaver activate. If I then move the mouse, I end up on the VT8 with LightDM GTK Greeter waiting for my password. The resulting behavior is identical to dm-tool lock, xflock4 (it calls light-locker-command --lock): the screen turns off.
  • Denis Nikolaenko
    Denis Nikolaenko almost 5 years
    I assume that Light Locker acts as "screensaver" for X. When timeouts are reached X signals that to Light Locker and it in turn signals to LightDM "to lock". LightDM spawns Greeter on VT8 and turns off the screen at the same time. In case of timeouts, the screen turns off earlier by X server itself (prefer blanking: yes in xset q) and I do not see VT8 switch flickering as with light-locker-command -a and xdg-screensaver activate.