Git Product home page Git Product logo

lightdm-mini-greeter's Introduction

Mini-Greeter

AUR package Codacy Badge

A minimal but highly configurable single-user GTK3 greeter for LightDM.

Inspired by the SLiM Display Manager & LightDM GTK3 Greeter.

Goals

Eventually this is will present a more customizable interface:

  • Randomized Background Wallpapers
  • Configurable language/session info? (lightdm provides this already?)
  • Handle GdkDisplay's monitor-added & monitor-removed signals

Open Feature Requests

Current Status

Right now you can:

  • log in
  • hide the Password: label & customize the text
  • hide the password input's cursor
  • show the user, hostname, & current time
  • set the password masking character
  • set the size of the login window, the font, & every color
  • set & scale a background image
  • use modifiable hotkeys to cycle through sessions or trigger a shutdown, restart, hibernate, or suspend

A screen with a dark background and a single password input box in the center

Install

Arch Linux

Install the lightdm-mini-greeter package from the Arch User Repository:

yay -S lightdm-mini-greeter

Gentoo Linux

Emerge the lightdm-mini-greeter package:

emerge x11-misc/lightdm-mini-greeter

NixOS

Enable & configure the greeter & default session in your configuration.nix:

{
    services.xserver = {
        enable = true;
        displayManager.lightdm.greeters.mini = {
            enable = true;
            user = "your-username";
            extraConfig = ''
                [greeter]
                show-password-label = false
                [greeter-theme]
                background-image = ""
            '';
        };
        # Optionally, set a default session
        windowManager = {
            default = "awesome";
            awesome.enable = true;
        };
    };
}

Then rebuild & switch your configuration with nixos-rebuild switch.

Debian

Debian packages for the latest stable branch are available on the Releases page.

You can use debhelper to build the package yourself:

sudo apt-get install build-essential automake pkg-config fakeroot debhelper \
    liblightdm-gobject-dev libgtk-3-dev
cd lightdm-mini-greeter
fakeroot dh binary
sudo dpkg -i ../lightdm-mini-greeter_*.deb

Note: on Ubuntu, you need liblightdm-gobject-1-dev instead of liblightdm-gobject-dev.

Manual

You will need automake, pkg-config, gtk+, & liblightdm-gobject to build the project.

Grab the source, build the greeter, & install it manually:

./autogen.sh
./configure --datadir /usr/share --bindir /usr/bin --sysconfdir /etc
make
sudo make install

Run sudo make uninstall to remove the greeter.

Configure

Once installed, you should specify lightdm-mini-greeter as your greeter-session in /etc/lightdm/lightdm.conf. If you have multiple Desktop Environments or Window Managers installed, you can specify the default selection by changing the user-session option as well(look in /usr/share/xsessions for possible values).

Modify /etc/lightdm/lightdm-mini-greeter.conf to customize the greeter. At the very least, you will need to set the user. All other settings are optional & can be commented out or removed.

You can test it out using LightDM's test-mode:

lightdm --test-mode -d

Or with dm-tool:

dm-tool add-nested-seat

Note: If you've added a background-image it will appear in this preview, but it may not appear during normal use if the file is not in directory which lightdm has permission to read(like /etc/lightdm/). A symlink into this location won't work.

Keyboard layout

If your keyboard layout is loaded from your shell configuration files (.bashrc for example) then it might not be possible to type certain characters after installing lightdm-mini-greeter. You should consider modifying your Xorg keyboard configuration.

For example for a french keyboard layout (azerty) you should edit/create /etc/X11/xorg.conf.d/00-keyboard.conf with at least the following options:

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbModel" "pc104"
        Option "XkbLayout" "fr"
EndSection

Config file in $HOME

You may wish to include your config file in their your home folder/dotfiles so it is version controlled & easily transferable between systems. This is possible, but on most systems, LightDM will not be able to read the configuration file due to permission errors.

The proper way to handle this is to loosen the permissions on your home directory a bit.

Start off by adding the lightdm user to your user's group:

sudo usermod -aG $(whoami) lightdm

Allow your user group to read your home directory:

chmod g+rx ~

Move the mini-greeter config file:

sudo mv /etc/lightdm/lightdm-mini-greeter.conf ~/.dotfiles/mini-greeter.conf

And then add a symlink pointing to the file in your home directory:

sudo ln -s ~/.dotfiles/mini-greeter.conf /etc/lightdm/lightdm-mini-greeter.conf

And finally log out & restart LightDM:

sudo systemctl restart lightdm

If LightDM fails to start back up, check the greeter's log file(usually at /var/log/lightdm/seat0-greeter.log) for the following line:

Could not load configuration file: Permission denied

If present, your permissions need further adjustment. You can test your permissions by attempting to read the file with sudo:

sudo -u lightdm cat ~/.dotfiles/mini-greeter.conf

Contribute

You can submit feature requests, bug reports, pull requests or patches on either github or redmine.

If you like Mini-Greeter, please consider packaging it for your distribution.

Style

  • Use indentation and braces, 4 spaces - no tabs, no trailing whitespace.
  • Declare pointers like this: char *p1, *p2;, avoid: char* p1;.
  • Function braces should be on their own line.
  • If/else/while/do should always use braces and indentation.
  • Use g_critical for irrecoverable user errors, g_error for programming errors.

When in doubt, check surrounding code.

License

GPL-3

lightdm-mini-greeter's People

Contributors

callmenoodles avatar chrishoage avatar fishcoding avatar gigaturbo avatar josephsurin avatar julianwachholz avatar philj56 avatar prikhi avatar sarg avatar shreve avatar tarkh avatar tosti007 avatar z1ni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

lightdm-mini-greeter's Issues

Keyboard issue ?

Hi !

I'm trying to use the mini-greeter but I can't log in : when I enter my password nothing happens. I'm using an azerty/french keyboard, so I was wondering if it can be the cause of my problem.

Option for font size?

Hello,

Is there an option to change the size of the font? It's more of a niggle for a HiDPI screen than a problem.

I've Forked tried adding the option, but to be honest i'm a little lost. Commit here

I don't know much GTK, but guess that adding the option to the CSS should work? I see an option 'font‑size' in the docs here.

Disable cursor

Would it be possible to add an option to disable/hide the cursor? Seeing as how all that's present is an already focused textbox, it doesn't seem necessary to have it.

Password alignment setting does not get respected

It's always the right alignment on my Manjaro/Cinnamon. I can see from the code the right is the default but seems it's always. Here is an excerpt from my config:

[greeter]
#...
# The text alignment for the password input. Possible values are:
# "left" or "right"
password-alignment = left

Any ideas how can I debug this issue or how it can be fixed?

Display the Time, User, Hostname, & Session

I'm not sure if this would fit in with the minimalism, but I think it might be cool to implement a clock. I would do it myself, but I don't know C well enough to implement this feature.

Crash when entering wrong password twice fast.

To reproduce:

  • enter wrong password
  • while "Incorrect password" message isn't shown enter password second time
  • observe lightdm crash
** Message: 22:14:53.340: Using entered password to authenticate
** Message: 22:14:54.893: Using entered password to authenticate

** (lightdm-mini-greeter:30916): CRITICAL **: 22:14:54.893: lightdm_greeter_respond: assertion 'priv->n_responses_waiting > 0' failed

I can't make it work on my lock screen!

It work's when I start up the computer on my login screen, but not on my lock screen,

I try and follow all the instructions

My system is Archlinux with runit startup based.

The new version is resulting in a core dump for me:

Hey there,
tried out 0.5.0-1 from the AUR (on arch)
and the result was

Process 32728 (lightdm-mini-gr) of user 620 dumped core.
Stack trace of thread 32728:
#0 0x00007ffabc0f8ef5 raise (libc.so.6 + 0x3cef5)
#1 0x00007ffabc0e2862 abort (libc.so.6 + 0x26862)
#2 0x00007ffabc13af38 __libc_message (libc.so.6 + 0x7ef38)
#3 0x00007ffabc142bea malloc_printerr (libc.so.6 + 0x86bea)
#4 0x00007ffabc144470 _int_free (libc.so.6 + 0x88470)
#5 0x00007ffabc147ca8 __libc_free (libc.so.6 + 0x8bca8)
#6 0x00005556819239fc n/a (lightdm-mini-greeter + 0x39fc)
#7 0x000055568192325c n/a (lightdm-mini-greeter + 0x325c)
#8 0x0000555681923065 n/a (lightdm-mini-greeter + 0x3065)
#9 0x00007ffabc0e3b25 __libc_start_main (libc.so.6 + 0x27b25)
#10 0x000055568192313e n/a (lightdm-mini-greeter + 0x313e)

pacman -F libc.so.6
core/glibc 2.30-3 [installed: 2.33-4]
usr/lib/libc.so.6
core/lib32-glibc 2.30-3 [installed: 2.33-4]
usr/lib32/libc.so.6
community/aarch64-linux-gnu-glibc 2.30-1
usr/aarch64-linux-gnu/lib/libc.so.6
community/riscv64-linux-gnu-glibc 2.30-1 (risc-v)
usr/riscv64-linux-gnu/lib/libc.so.6

#-- Compiler and Linker Flags 0.5.0 was compiled with

CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="-march=native -O3 -pipe -fno-plt"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j6"

hope it's a simple thing to fix, (and thanks for the nice greeter :))

Authentication doesn't seem to work

Hi! I've finally updated the package and tried using it again, I'm getting up to the login screen with my config all setup with my username, but upon entering my password and pressing enter, nothing happens. And I'm 99.9999% sure it's the right password. :) I couldn't find anything interesting in the logs either.

Also: How do I change the password input from RTL to LTR text?

Changing the password input field width

Hello!

It would be nice to have the ability to change the width of the password input field itself; currently, only changing the dimension of the space around it is possible. My password is quite long, but only about 5 1/2 dots are currently visible, after which the user gets no typing feedback from the screen at all.

Symlink to configuration

Hey there!

I have some of my system's configuration placed in a dotfiles repository. In order to safe lightdm-mini-greeter's configuration inside these dotfiles I will need to make a symlink from /etc/lightdm/lightdm-mini-greeter.conf to my own desired path. Doing so will result in lightdm-mini-greeter having no valid configuration to work with.

How can I use a symlink for the configuration file or is this a feature that can be added to lightdm-mini-greeter?
Many thanks in advance!

User should be set to generic

Hi, at this line the user is set as your username.

I guess it would be better to have it as a generic one, indicating that this should be changed later.
Better yet would be the case where the script would change this name to the user logged in when compiling/installing the software.

What do you think?

Tks,

Linux Mint Package

I've been trying for about 6 hours to get this set up on Linux Mint to no avail. Maybe I'm just missing something simple, but it would be a lot easier to just use apt-get. Is that a possibility for you? I'm a relatively novice Linux user and trying to figure this out manually is not fun - to say the least.

Not authenticating

I have just installed lightdm-mini-greeter from the master branch. I have already edited the .conf file to use my username, but when I type in my password it does not authenticate. OS is archlinux and DE is xfce4. Any help would be greatly appreciated!

Required packages for Debian

I think README points to wrong package. I don't have the one postfixed with -1.

λ ~/src/lightdm-mini-greeter/ master* cat /etc/issue.net 
Debian GNU/Linux 9
λ ~/src/lightdm-mini-greeter/ master* apt show liblightdm-gobject-dev  
Package: liblightdm-gobject-dev
Version: 1.18.3-1
Priority: optional
Section: libdevel
Source: lightdm
Maintainer: Debian Xfce Maintainers <[email protected]>
Installed-Size: 588 kB
Depends: libdbus-glib-1-dev, liblightdm-gobject-1-0 (= 1.18.3-1), libxklavier-dev
Homepage: https://launchpad.net/lightdm
Tag: devel::library, role::devel-lib
Download-Size: 83.3 kB

vs.

λ ~/src/lightdm-mini-greeter/ master* apt show liblightdm-gobject-1-dev
N: Unable to locate package liblightdm-gobject-1-dev
N: Unable to locate package liblightdm-gobject-1-dev
E: No packages found

Fallback options when omitted in the config file

Many thanks to create this nice greeter.

It would be great if one can omit to explicitly describe some options in /etc/lightdm/lightdm-mini-greeter.conf and in such case default options are used as a fallback. For this users can keep a simpler configuration file.
Sorry if I misunderstand the behavior of loading the config file.

Error message not shown on entering incorrect password

Upon entering an incorrect password, the screen goes blank for a few seconds and the greeter is displayed again instead of showing an error message stating that an incorrect password was entered. Entering the correct password works as expected. Following are the configuration files for lightdm and lightdm-mini-greeter.

lightdm.conf

# LightDM General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
# dbus-service = True if LightDM provides a D-Bus service to control it
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7 # Setting this to a value < 7 implies security issues, see FS#46799
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
logind-check-graphical=true
#log-directory=/var/log/lightdm
run-directory=/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
#backup-logs=true
#dbus-service=true

#
# Seat configuration
#
# Seat configuration is matched against the seat name glob in the section, for example:
# [Seat:*] matches all seats and is applied first.
# [Seat:seat0] matches the seat named "seat0".
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
#
# type = Seat type (local, xremote, unity)
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-backend = X backend to use (mir)
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-config = Config file to pass to X server
# xserver-layout = Layout to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -special-option)
# unity-compositor-timeout = Number of seconds to wait for compositor to start
greeter-session = lightdm-mini-greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-backend=
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
#unity-compositor-command=unity-system-compositor
#unity-compositor-timeout=60
greeter-session = lightdm-mini-greeter
#greeter-hide-users=false
greeter-allow-guest=false
#greeter-show-manual-login=false
#greeter-show-remote-login=true
user-session=xinitrc
#allow-user-switching=true
#allow-guest=true
#guest-session=
session-wrapper=/etc/lightdm/Xsession
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
#autologin-user=
#autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false

#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn.  Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=
#hostname=

#
# VNC Server configuration
#```#
# LightDM General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
# dbus-service = True if LightDM provides a D-Bus service to control it
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7 # Setting this to a value < 7 implies security issues, see FS#46799
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
logind-check-graphical=true
#log-directory=/var/log/lightdm
run-directory=/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
#backup-logs=true
#dbus-service=true

#
# Seat configuration
#
# Seat configuration is matched against the seat name glob in the section, for example:
# [Seat:*] matches all seats and is applied first.
# [Seat:seat0] matches the seat named "seat0".
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
#
# type = Seat type (local, xremote, unity)
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-backend = X backend to use (mir)
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-config = Config file to pass to X server
# xserver-layout = Layout to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -special-option)
# unity-compositor-timeout = Number of seconds to wait for compositor to start
greeter-session = lightdm-mini-greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-backend=
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
#unity-compositor-command=unity-system-compositor
#unity-compositor-timeout=60
greeter-session = lightdm-mini-greeter
#greeter-hide-users=false
greeter-allow-guest=false
#greeter-show-manual-login=false
#greeter-show-remote-login=true
user-session=xinitrc
#allow-user-switching=true
#allow-guest=true
#guest-session=
session-wrapper=/etc/lightdm/Xsession
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
#autologin-user=
#autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false

#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn.  Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=
#hostname=

#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8

lightdm-mini-greeter.conf

#
# To test your configuration out, run: lightdm --test-mode

[greeter]
# The user to login as
user = gnaqvi
# Whether to show the `Password: ` label
show-password-label = false

[greeter-hotkeys]
# The modifier key used to trigger hotkeys. Possible values are:
# "alt", "control" or "meta"
# meta is also known as the "Windows"/"Super" key
mod-key = meta
# Power management shortcuts (single-key, case-sensitive)
shutdown-key = s
restart-key = r
hibernate-key = h
suspend-key = u

[greeter-theme]
# A color from X11's `rgb.txt` file, a quoted hex string(`"#rrggbb"`) or a
# RGB color(`rgb(r,g,b)`) are all acceptable formats.

# The font to use for all text
font = "Fira Sans"
# The font size to use for all text
font-size = 1em
# The default text color
text-color = "#ADB3BA"
# The color of the error text
error-color = "#AF5454"
# The screen's background color
background-color = "#1C2023"
# The password window's background color
window-color = "#393F45"
# The color of the password window's border
border-color = "#C795AE"
# The width of the password window's border.
# A trailing `px` is required.
border-width = 2px
# The pixels of empty space around the password input.
# Do not include a trailing `px`.
layout-space = 0
# The color of the text in the password input.
password-color = "#ADB3BA"
# The background color of the password input.
password-background-color = "#393F45"

Background is not working

Hi
so i set the background path in lightdm-mini-greeter config and it just loaded usual gray when i login.
weird thing is, when i output try in terminal it show the picture as-
screenshot from 2019-01-13 22-09-43

terminal output-

~
❯ lightdm --test-mode -d
[+0.00s] DEBUG: Logging to /home/azrulFTW/.cache/lightdm/log/lightdm.log
[+0.00s] DEBUG: Starting Light Display Manager 1.28.0, UID=1000 PID=11686
[+0.00s] DEBUG: Loading configuration dirs from /usr/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-backup-logs.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-disable-guest.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-minimum-vt.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-session-wrapper.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-user-authority-in-system-dir.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf
[+0.00s] DEBUG: Loading configuration dirs from /usr/local/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /var/lib/flatpak/exports/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /home/azrulFTW/.local/share/flatpak/exports/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /etc/xdg/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration from /etc/xdg/lightdm/lightdm.conf.d/90-greeter-wrapper.conf
[+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf.d/40-io.elementary.greeter.conf
[+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf
[+0.00s] DEBUG: Running in user mode
[+0.00s] DEBUG: Using Xephyr for X servers
[+0.00s] DEBUG: Registered seat module local
[+0.00s] DEBUG: Registered seat module xremote
[+0.00s] DEBUG: Registered seat module unity
[+0.00s] DEBUG: Using D-Bus name org.freedesktop.DisplayManager
[+0.01s] DEBUG: Monitoring logind for seats
[+0.01s] DEBUG: New seat added from logind: seat0
[+0.01s] DEBUG: Seat seat0: Loading properties from config section Seat:*
[+0.01s] DEBUG: Seat seat0: Starting
[+0.01s] DEBUG: Seat seat0: Creating greeter session
[+0.01s] DEBUG: Loading users from org.freedesktop.Accounts
[+0.01s] DEBUG: User /org/freedesktop/Accounts/User1000 added
[+0.02s] DEBUG: Seat seat0: Creating display server of type x
[+0.02s] DEBUG: posix_spawn avoided (fd close requested)
[+0.02s] DEBUG: Seat seat0: Starting local X display
[+0.02s] DEBUG: XServer 1: Logging to /home/azrulFTW/.cache/lightdm/log/x-1.log
[+0.02s] DEBUG: XServer 1: Writing X server authority to /home/azrulFTW/.cache/lightdm/run/root/:1
[+0.31s] DEBUG: XServer 1: Launching X Server
[+0.31s] DEBUG: Launching process 11691: /usr/bin/Xephyr :1 -seat seat0 -auth /home/azrulFTW/.cache/lightdm/run/root/:1 -nolisten tcp
[+0.31s] DEBUG: XServer 1: Waiting for ready signal from X server :1
[+0.31s] DEBUG: Acquired bus name org.freedesktop.DisplayManager
[+0.31s] DEBUG: Registering seat with bus path /org/freedesktop/DisplayManager/Seat0
[+0.31s] DEBUG: posix_spawn avoided (automatic reaping requested) (fd close requested)
/bin/rm: cannot remove '/var/lib/lightdm-data/lightdm': Permission denied
[+3.63s] DEBUG: Got signal 10 from process 11691
[+3.63s] DEBUG: XServer 1: Got signal from X server :1
[+3.63s] DEBUG: XServer 1: Connecting to XServer :1
[+3.63s] DEBUG: Seat seat0: Display server ready, starting session authentication
[+3.63s] DEBUG: Session: Not setting XDG_VTNR
[+3.63s] DEBUG: Session pid=11708: Started with service 'lightdm-greeter', username 'azrulFTW'
[+3.65s] DEBUG: Session pid=11708: Authentication complete with return value 0: Success
[+3.65s] DEBUG: Seat seat0: Session authenticated, running command
[+3.65s] DEBUG: Session pid=11708: Not setting XDG_VTNR
[+3.65s] DEBUG: Session pid=11708: Running command /etc/lightdm/Xgreeter /usr/bin/lightdm-mini-greeter
[+3.65s] DEBUG: Creating shared data directory /var/lib/lightdm-data/azrulFTW
[+3.65s] DEBUG: Session pid=11708: Logging to /home/azrulFTW/.cache/lightdm/log/seat0-greeter.log
[+4.12s] DEBUG: Greeter connected version=1.28.0 api=1 resettable=false
[+4.12s] DEBUG: Greeter start authentication for azrulFTW
[+4.12s] DEBUG: Session: Not setting XDG_VTNR
[+4.12s] DEBUG: Session pid=11724: Started with service 'lightdm', username 'azrulFTW'
[+4.17s] DEBUG: Session pid=11724: Got 1 message(s) from PAM
[+4.17s] DEBUG: Prompt greeter with 1 message(s)
^C[+88.87s] DEBUG: Got signal 2 from process 0
[+88.87s] DEBUG: Caught Interrupt signal, shutting down
[+88.87s] DEBUG: Stopping display manager
[+88.87s] DEBUG: Seat seat0: Stopping
[+88.87s] DEBUG: Seat seat0: Stopping display server
[+88.87s] DEBUG: Sending signal 15 to process 11691
[+88.87s] DEBUG: Seat seat0: Stopping session
[+88.87s] DEBUG: Session pid=11708: Sending SIGTERM
[+88.87s] DEBUG: Seat seat0: Stopping session
[+88.87s] DEBUG: Session pid=11724: Sending SIGTERM
[+88.87s] DEBUG: Session pid=11708: Terminated with signal 2
[+88.87s] DEBUG: Seat seat0: Session stopped
[+88.87s] DEBUG: Session pid=11724: Terminated with signal 2
[+88.87s] DEBUG: Session: Failed during authentication
[+88.87s] DEBUG: Seat seat0: Session stopped
[+88.91s] DEBUG: Process 11691 exited with return value 0
[+88.91s] DEBUG: XServer 1: X server stopped
[+88.91s] DEBUG: XServer 1: Removing X server authority /home/azrulFTW/.cache/lightdm/run/root/:1
[+88.91s] DEBUG: Seat seat0: Display server stopped
[+88.91s] DEBUG: Seat seat0: Stopped
[+88.91s] DEBUG: Display manager stopped
[+88.91s] DEBUG: Stopping daemon
[+88.91s] DEBUG: Exiting with return value 0

~ 1m 29s

Lightdm ver. 1.28.0
OS- fedora29

[Request] Center password entry

Thanks so much for the password radius option! To me, it was a huge improvement visually. The only thing I'd like to see now is the password entry be centered within the box. Currently the only options are left and right.

Have a way to launch an on-screen keyboard.

Currently, there is no documented way to have an on-screen keyboard launch with lightdm-mini-greeter. Having an easy way to do this would make this greeter ideal for touch-enabled devices.

Something like how lightdm-gtk-greeter lets you add the following:
keyboard=onboard

Unable to Change Background Color

The background color is always white no matter what the hex value of background-color. Im able to change other colors so the issue is only with this key.

Promt showing on wrong monitor

I'm not able to get the prompt to show up on my primary monitor, even after following the
recommendation here

Is anyone else able to reproduce this?

Autologin when pam allows

I am not sure how correct my request is, but for example standard lightdm greeter allows you to login without entering your password when some pam module gives you sufficient rights to do so.

So when you have some pam module with 'sufficient' qualifier (or how it is called) and that module gives you permissions without interaction somehow, you can have such button or just automatically log in.

In my case it's pam_usb - on Ubuntu when i plug my USB key (with pamusb.conf configured for my user ofc) in it shows just Log in > button in place of password field.

Hangs on blank screen

When I turn on my compter, once lightdm starts it simply hangs on a blank screen with a blinking underscore for about a minute, after which I can change tty and continue using the computer after logging in and using startx.

Here's the result of lightdm --test-mode -d

[+0.00s] DEBUG: Logging to /var/log/lightdm/lightdm.log
[+0.00s] DEBUG: Starting Light Display Manager 1.30.0, UID=0 PID=1922
[+0.00s] DEBUG: Loading configuration dirs from /usr/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /usr/local/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /etc/xdg/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf
[+0.00s] DEBUG: Using Xephyr for X servers
[+0.00s] DEBUG: Registered seat module local
[+0.00s] DEBUG: Registered seat module xremote
[+0.00s] DEBUG: Using D-Bus name org.freedesktop.DisplayManager
[+0.00s] DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ?gio-vfs?
[+0.00s] DEBUG: Monitoring logind for seats
[+0.01s] DEBUG: New seat added from logind: seat0
[+0.01s] DEBUG: Seat seat0: Loading properties from config section Seat:*
[+0.01s] DEBUG: Seat seat0: Starting
[+0.01s] DEBUG: Seat seat0: Creating greeter session
[+0.01s] DEBUG: Seat seat0: Creating display server of type x
[+0.01s] DEBUG: posix_spawn avoided (fd close requested) 
[+0.01s] DEBUG: Using VT 7
[+0.01s] DEBUG: Seat seat0: Starting local X display on VT 7
[+0.01s] DEBUG: XServer 1: Logging to /var/log/lightdm/x-1.log
[+0.01s] DEBUG: XServer 1: Writing X server authority to /run/lightdm/root/:1
[+0.01s] DEBUG: XServer 1: Launching X Server
[+0.01s] DEBUG: Launching process 1928: /usr/bin/Xephyr :1 -seat seat0 -auth /run/lightdm/root/:1 -nolisten tcp vt7 -novtswitch
[+0.01s] DEBUG: XServer 1: Waiting for ready signal from X server :1
[+0.01s] DEBUG: Acquired bus name org.freedesktop.DisplayManager
[+0.01s] DEBUG: Registering seat with bus path /org/freedesktop/DisplayManager/Seat0
[+0.01s] DEBUG: Loading users from org.freedesktop.Accounts
[+0.01s] DEBUG: User /org/freedesktop/Accounts/User1000 added
[+0.02s] DEBUG: Process 1928 exited with return value 1
[+0.02s] DEBUG: XServer 1: X server stopped
[+0.02s] DEBUG: Releasing VT 7
[+0.02s] DEBUG: XServer 1: Removing X server authority /run/lightdm/root/:1
[+0.02s] DEBUG: Seat seat0: Display server stopped
[+0.02s] DEBUG: Seat seat0: Stopping session
[+0.02s] DEBUG: Seat seat0: Session stopped
[+0.02s] DEBUG: Seat seat0: Stopping display server, no sessions require it
[+0.02s] DEBUG: Seat seat0: Stopping; greeter display server failed to start
[+0.02s] DEBUG: Seat seat0: Stopping
[+0.02s] DEBUG: Seat seat0: Stopped
[+0.02s] DEBUG: Required seat has stopped
[+0.02s] DEBUG: Stopping display manager
[+0.02s] DEBUG: Display manager stopped
[+0.02s] DEBUG: Stopping daemon
[+0.02s] DEBUG: Exiting with return value 1

User Customization

What about the ability to do user customizations like specifying the colors or background image in an optional config file in the home directory (/home/$user/.config/) of the user indicated in the main config.

I do color changing via scripts and would love to be able to easily change the colors of the greeter without the need of superuser privileges.

Ability to set password mask character

Instead of the default large dots it would be nice to be able to set it to an asterisk or some other character using the same font settings for the labels.

Crashing after update to 0.3.1

I upgraded to the latest last night on an Arch install. Lightdm crashes running mini-greeter. All I see is the screen blink like it's starting the greeter and then it drops back to a cursor for a split second before systemd restarts lightdm. In case you need it, I'm running x86_64 on an Intel Core i5-3320M with an Intel i915 GPU (Dell Latitude E6230 laptop). I'm attaching a coredump (had to zip the lz4 to submit to GitHub).

coredump.zip

Background image isn't centered when external monitor connected

Steps

  1. Given an external monitor is connected
  2. Given a background image is defined
  3. Then lock a screen.

Expected

The background image is centered.

Actual

The top left corner of the background image is in a center of a screen. Screenshot:

screenshot

Enviorment:

$ pacman -Q lightdm-mini-greeter 
lightdm-mini-greeter 0.3.2-1
$ pacman -Q lightdm
lightdm 1:1.24.0-3
$ pacman -Q light-locker
light-locker 1.8.0-1

Text colour option for "Password:" and such text

Unless I am mistaken, but surely the default text colour option should style the password-label-text, and the incorrect password.

None of the style options change it for me; is this a bug? or is it a feaure yet to be added?

Build error

I'm getting that on Kali Linux:

src/callbacks.c:55:9: error: too many arguments to function ‘lightdm_greeter_respond’
         lightdm_greeter_respond(app->greeter, password_text, NULL);
         ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/lightdm-gobject-1/lightdm.h:14:0,
                 from src/callbacks.c:3:
/usr/include/lightdm-gobject-1/lightdm/greeter.h:136:6: note: declared here
 void lightdm_greeter_respond (LightDMGreeter *greeter, const gchar *response);
      ^~~~~~~~~~~~~~~~~~~~~~~
Makefile:557: recipe for target 'src/lightdm_mini_greeter-callbacks.o' failed
make[1]: *** [src/lightdm_mini_greeter-callbacks.o] Error 1
make[1]: Leaving directory '/root/i3wm/lightdm-mini-greeter'
Makefile:381: recipe for target 'all' failed
make: *** [all] Error 2

Is either my system broken or the source?

mini-greet misbehaving on laptop wakeup

When I first boot, mini greeter loads fine and looks great - works as intended. However, when I close my laptop lid and open it again everything looks a bit wonky. For some reason my gnome desktop image displays and the login window isn't even close to what it should be. I am using Awesome WM by default. See images below. Any thoughts?

IMG_20190325_235942
IMG_20190326_000115

can't login (password is wrong)

this keeps happening to me every time i try to login using lightdm-mini-greeter i put my user password but it doesn't login, it just keeps saying that the password is wrong even though it's clearly not

(this also happens with lightdm-tiny-greeter)

Add option to change font weight

A recent release fixed the CSS selectors of text labels, which fixed the bolding of the password & error texts. But some people might not want it bolded, so we should add an option to disable this.

Background image not loading

Hello!

My background image is not getting loaded, even though I copied it to /etc/lightdm/ as per #34. Checking the lightdm logs, I couldn't find any reference to a background image either, so I have no idea where the fault may lie. Please let me know if you need any further information!

Configs without background-image set cause silent failure

With the addition of the "background-image" option, the greeter will fail to start if this option is not included. This is really only an issue IMO because previously working configs now cause a broken boot process. In my case, entries in /var/log/lightdm/lightdm.log indicate the greeter failed (with no more information), and /var/log/lightdm/seat0-greeter.log is empty.

This seems like it could be pretty confusing to troubleshoot. I wouldn't have found it if not for pacman dropping the .pacnew file for me to diff against.

Personally, I would expect background-image to be set to null if not found.

background-image not working on multiple monitors

As the title states, background-image seems to be broken (again?) on multiple monitors. If I connect only one monitor, it works fine, otherwise no background image is shown at all, just the background color.

It might be worth mentioning that both of my monitors are 1920x1080, as is the background image, and both screens show the password prompt. The logs state no warnings. I am on the very latest commit.

Unlock fail/blit sometimes on wake after sleep

I usually leave my laptop in sleep mode, or at least locked, and many times I've encountered a problem when unlocking:

I enter the right password, the greeter disappears, then suddenly reappears on fullscreen, forcing me to re-enter the password (that happens non-stop, I can't unlock my computer at this point).

The only solution to get out of this is to pkill the lock greeter from another tty, but I think that this shouldn't happen (hence probably a bug).

I don't know how to diagnose it, but my current setup is the following:

  • Arch linux
  • lightdm greeter
  • i3 desktop environment

The auto-lock-tool is started by i3, with the command

exec_always --no-startup-id xss-lock -- dm-tool lock

Unable to login: `pam_get_uid; no such user`, even though user is set in the config file

Hi!

I'm using the AUR version, I've checked both lightdm-mini-greeter and lightdm-mini-greeter-git packages, on two different Arch installs. Each time I try to login, I get this error message in the logs:

Mar 23 14:18:31 arch553ve systemd[1]: Started Light Display Manager.
Mar 23 14:18:33 arch553ve lightdm[11209]: pam_unix(lightdm-greeter:session): session opened for user lightdm by (uid=0)
Mar 23 14:18:33 arch553ve lightdm[11221]: pam_tally2(lightdm:auth): pam_get_uid; no such user
Mar 23 14:18:40 arch553ve lightdm[11221]: pam_unix(lightdm:auth): check pass; user unknown
Mar 23 14:18:40 arch553ve lightdm[11221]: pam_unix(lightdm:auth): authentication failure; logname= uid=0 euid=0 tty=:0 ruser= rhost=
Mar 23 14:18:40 arch553ve lightdm[11221]: gkr-pam: error looking up user information

I'm sure this is a problem with the greeter, since I can login using the lightdm-gtk-greeter.

I have set the user variable in the greeter config and the user-sesssion variable in the lightdm config.
The greeter is reading the config (I can change the window colors and the background image), but
it looks like something is wrong with the username.

My lightdm version (output from pacman -Q) is
lightdm 1:1.30.0-2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.