10

My computer only has a single user that is used for normal log in.

On boot, it would be convenient of the system would log in that user automatically, and then optionally, lock the screen, such as by launching a password protected screen saver.

Suggestions?

7

Set your user for automatic login in System Settings -> User Accounts -> Automatic Login (you will need to press the "unlock" button and enter your password before you can change the automatic login setting).

The command gnome-screensaver-command -l will cause the screen to be immediately locked, which can probably be added to your autostart items.

Using gedit (or other text editor of choice), create /home/USERNAME/.config/autostart/screen_lock.desktop with contents:

[Desktop Entry]
Type=Application
Name=Lock Screensaver
Exec=gnome-screensaver-command -l

And hopefully it will automatically login and then lock the screen.

3
  • 1
    Ubuntu 14.04 does not recognize those desktop entries in my case.. – dmeu Aug 3 '15 at 7:40
  • Checkout how to add a startup script here: – dmeu Aug 3 '15 at 7:52
  • First install gnome-screensaver by this command: sudo apt-get install gnome-screensaver – emamie Jun 4 '19 at 11:15
6

I'm using Ubuntu 18.04.1 LTS with Gnome 3.28.2 and this worked for me. Set a user to auto-login, either via the GUI or by editing /etc/gdm3/custom.conf. On the desktop, click on Show Applications, type in "Start" and you'll see the "Startup Applications Preferences", open it, click on Add, give it whatever Name and Comment you'd like and put the following in the Command input:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

On re-boot, it will auto-login and immediately lock the screen for whatever user you set up in /etc/gdm3/custom.conf.

3
  • 2
    I was skeptical, but it worked like a charm. – James Hirschorn Feb 4 '19 at 23:54
  • 2
    This works and should be the accepted solution – Rmano Aug 5 '19 at 13:20
  • Thanks works for me, and save the answer – Jonathan Rodriguez Mar 24 '20 at 17:04
3

What you ask is almost a normal setup. During installation you get asked to insert a password and can choose to have that user log in automatically. This image shows the checkbox as off (You can not use automatic log in with an encrypted home).

enter image description here

After install you can still set this at the accounts settings:

enter image description here

The screen lock is by default set to ask for a password. Have a look at this topic for more information: How do I disable the screensaver/lock? on where to find it. The setting where you can do this looks like this:

enter image description here

It is about not setting the lock but you just have to set it the other way.

2
  • 1
    With this setup the user will be logged on automatically with their computer unlocked vulnerable to attacks. What OP is asking is how to login and lock the screen automatically at the same time after boot. – denysonique Dec 16 '13 at 20:12
  • @denysonique he said "optionally lock the screen" so this is a user discussion that can not be automated ;) – Rinzwind Dec 16 '13 at 20:18
1

This is an old question but this is the best option:

Set your user for automatic login

echo "AutomaticLoginEnable=True" | sudo tee -a /etc/gdm3/custom.conf
echo "AutomaticLogin=$(whoami)" | sudo tee -a /etc/gdm3/custom.conf

Or change in Settings -> Users -> Automatic Login

Write a script

gnome-screensaver can do the job but we have to make shure its available when the machine runs the code. To get it, create a script with the following:

#!/bin/bash

duration()
{
    echo "$(( SECONDS - start ))"
}

iscrazy()
{
    (( $(duration) > 60 ))
}

state()
{
    /usr/bin/gnome-screensaver-command -q
}

isactive()
{
    ! grep -q "inactive" <<< "$(state)"
}

start=$SECONDS

/usr/bin/gnome-screensaver &

until isactive || iscrazy
do
    /usr/bin/gnome-screensaver-command -l
done

echo "$(state) and it took $(duration) seconds"

This will attempt to lock the screen until it succeeds or spends more time than usual.

Make shure that execution is enabled on file permissions with

chmod +x <pathtoscript>

or checking "Allow executing file as program" by right-clicking and going to Properties -> Permissions

I recommend you run it before the next step

Place it between the startup applications

echo "[Desktop Entry]
Type=Application
Name=Lock Screensaver
Exec=<pathtoscript>" > ~/.config/autostart/screen_lock.desktop

or add manually in "Startup Applications" (gnome-session-properties)

Notes

Works with Ubuntu and has been tested on a Pop! _OS 20.04

You have to install the needed packages as gnome-screensaver

Remember to change <pathtoscript> with the path to the script you created

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.