25

I'm trying out XFCE on Arch Linux, and for some reason the Lock Screen option in the session menu doesn't do anything. Neither does running xflock4 at the command line (it exits 0 with no output).

xfce4-session is running.

Do I need to install a screensaver package or something?

19
Do I need to install a screensaver package or something?

Yes, according to the wiki, you need to choose and install a locker. xflock4 will then activate it.

| improve this answer | |
  • 1
    Actually, gnome-screensaver is installed, and it was working under Gnome. Do I need to activate it somehow? – cjm Nov 19 '13 at 20:25
  • 3
    Ok, the problem seems to be that gnome-screensaver-command exists, but gnome-screensaver is not running. xflock4 runs gnome-screensaver-command --lock, which does nothing but exits 0, so xflock4 thinks it's done. – cjm Nov 19 '13 at 20:42
  • I prefer i3lock as a simple screen locker, which isn't directly supported by xflock4, so I wrote a simple wrapper script as /usr/bin/xscreensaver-command that invokes i3lock. Since xflock4 tries xscreensaver-command before gnome-screensaver-command, that fixes the problem. – cjm Nov 19 '13 at 20:53
  • 4
    slock is even simpler and now comes with a feature: colour! – jasonwryan Nov 19 '13 at 21:02
  • 1
    @jasonwryan: Ugh, just a gimmicky trend. Colour display is no more useful than having over 640k of RAM... – Mark K Cowan Apr 22 '15 at 8:26
7

First install light-locker.

$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l"

or if you don't have the variable yet:

$ xfconf-query -c xfce4-session -p /general/LockCommand -s "light-locker-command -l" --create -t string



Old stuff:

Looks like xflock4 does support external config now. What I did is:

$ xfconf-query -c xfce4-session -p /general/LockCommand -s "dm-tool lock"

Now that command is used for locking. I guess gnome-screen-saver broke on upgrade.

This is for XFCE. If you don't have that property already, you add it by:

$ xfconf-query -c xfce4-session -p /general/LockCommand -s "dm-tool lock" --create -t string

VERY IMPORTANT: you need a screensaver running to securely lock your screen. light-locker is one choice. At the end make sure switching consoles with ctrl+alt+F1 or some other F# does not let you circumvent the lock screen. See:

| improve this answer | |
  • Thanks! I'm a migrating from XFCE4 to BSPWM, now i3lock works great! – nachopro Apr 29 '19 at 0:42
5

Edit /usr/bin/xflock4 and append light-locker-command -l or dm-tool lock to the list.

for lock_cmd in \
"xscreensaver-command -lock" \
"gnome-screensaver-command --lock" \
"light-locker-command -l"\
"dm-tool lock"
| improve this answer | |
  • 1
    This also works for Linux Mint 19, if anyone is looking for that. – Kev Jul 20 '18 at 10:04
  • i was trying to use slock, built from source. slock is used as a fallback locker by default, but if you build from source you need to add /usr/local/bin to the path up top. – Fred Jan 13 at 12:58
1

Case_of's answer was close for me, but dm-tool was already listed in my /usr/local/bin/xflock4. But it tried xscreensaver-command and gnome-screensaver-command first. I moved those to the second for loop, and moved dm-tool up as the only option at first (removing the first for loop):

dm-tool lock >/dev/null 4>&1 && exit

# else run another access locking utility, if installed
for lock_cmd in \
  "xscreensaver-command -lock" \
  "gnome-screensaver-command --lock"
  "xlock -mode blank" \
  "slock"
  do
    set -- $lock_cmd
    if command -v -- $1 >/dev/null 2>&1; then
        $lock_cmd >/dev/null 2>&1 &
    # turn off display backlight:
    xset dpms force off
        exit
    fi
done

I also mapped it to Win+L, to be like Windows.

| improve this answer | |
0

I just (January 2018) tried to get screen locking working under XFCE. I'm a little surprised it didn't work by default. I initially tried to install light-locker and xscreensaver but neither worked.

What worked for me was to install the xlockmore package which provided /usr/bin/xlock which seems to work great. With that command now installed, I was able to configure the xfce session to use it:

xfconf-query -c xfce4-session -p /general/LockCommand -s "xlock"

or if you don't have the variable yet:

xfconf-query -c xfce4-session -p /general/LockCommand -s "xlock" --create -t string

My /usr/bin/xflock4 script already pays attention to that LockCommand setting so there was no need to edit the script once I had the setting applied.

Xlock has a ton of different modes and settings which, by default, it randomizes through. I settled on:

xlock -mode goop -erasedelay 0

To test them use:

xlock -mode ... -nolock
| improve this answer | |
0

/usr/bin/xscreensaver was not running. Fixed by opening xfce4-settings-manager, opening screen saver section, it asked to run xscreensaver daemon, clicked yes and the locking works now.

| improve this answer | |
0

You can also use loginctl to lock the system. in order to lock the screen you can simply do :

loginctl lock-session

You can selectively lock a specific session by providing a session id

loginctl lock-session sid

you can check the documentation for more information

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.