• Stars
    star
    527
  • Rank 84,091 (Top 2 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created almost 10 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Minimal, Configurable, Single-User GTK3 LightDM Greeter

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

More Repositories

1

pencil

DEPRECATED: Multiplatform GUI Prototyping/Wireframing
JavaScript
1,922
star
2

AcornAccounting

A Django-based Accounting System for Egalitarian Communities
Python
29
star
3

bodyweight-client

An Elm Frontend for a BodyWeight Workout Logging Application.
Elm
26
star
4

modern-compiler-implementation-ml

Tiger Compiler from Modern Compiler Implementation in ML
Standard ML
24
star
5

hledger-stockquotes

Generate an HLedger Journal Containing Daily Stock & Crypto Quotes for your Commodities
Haskell
20
star
6

brick-image

Show Images in Your Brick TUI Using w3mimgdisplay
Haskell
15
star
7

quickbooks-for-communes

A QuickBooks Web UI For Communard-Friendly Forms & Reporting
Haskell
13
star
8

stack-templatizer

Transform a Folder into a Stack Template
Haskell
13
star
9

crypto-portfolio

A CLI Cyrptocurrency Portfolio Tracker
Haskell
12
star
10

dotfiles

zsh, vim, mutt, urxvt, ranger, screen, tridactyl Configuration Files
Vim Script
12
star
11

hIRC

An IRC Client with a Split Connection Daemon & TUI Frontend.
Haskell
11
star
12

libreoffice-binance-api

A Simple LibreOffice Calc Extension for Querying the Binance Public API
Python
11
star
13

decimal

Arbitrary Precision Decimals in Elm
Elm
10
star
14

molokai-powerline-zsh

A Zsh theme based off of molokai, powerline, ys and agnoster
Shell
10
star
15

nixos-config

Persistent USB & VirtualBox NixOS System Configuration Files
Nix
9
star
16

paginate

Fetch, Cache, & Render Paginated API Responses in Elm
Elm
8
star
17

sysadmintools

Acorn's Server, Workstation, & VM Cluster Automation & Documentation
JavaScript
8
star
18

ksp-automation

A Kerbal Space Program Automation TUI & Haskell Library.
Haskell
7
star
19

xmonad-config

A Configuraton File and Molokai Theme for the XMonad Window Manager
Haskell
7
star
20

solana-staking-csvs

Generate CSV Exports of Your Solana Staking Rewards
Haskell
6
star
21

awesome-config

A Configuraton File and Molokai Theme for the Awesome Window Manager
Lua
6
star
22

mezzanine-linkdump

Link Sharing in Mezzanine.
Python
6
star
23

hpack-template

Stack Templates for Generic/CLI Applications and Libraries using Hpack, Tasty, & Github Actions.
Haskell
6
star
24

KittensAutomate

An Automation UI for Kittens Game
Elm
6
star
25

hledger-graphs

Generate Graphs From Your HLedger Journal
Haskell
6
star
26

hkhue

A Daemon & CLI Client for Controlling Philips Hue Lights
Haskell
6
star
27

hs-notifications

A Super Simple Desktop Notification Server Written in Haskell
Haskell
6
star
28

http-tasks

Convenience Functions for Working with HTTP Requests as Tasks.
Elm
5
star
29

hkredmine

A Redmine CLI Client and API Library Written in Haskell.
Haskell
5
star
30

bodyweight-server

A Haskell REST Server for a BodyWeight Workout Log Application.
Haskell
5
star
31

build-run-watch

Library for Writing Scripts To Build, Run, & Watch Projects.
Haskell
5
star
32

wai-middleware-clacks

Add An "X-Clacks-Overhead" Header To Wai Responses.
Haskell
5
star
33

sleepanarchy

The PureScript Frontend & Haskell Backend That Powers the SleepAnarchy.com Blog
Haskell
5
star
34

timerr

A Simple CLI Timer Using DBus Notifications.
Rust
4
star
35

bootstrap-molokai

A Twitter Bootstrap Theme based on the Molokai colorscheme for vim.
CSS
4
star
36

hledger-management-script

A Shakefile for Processing Imports into Journals Entries & Creating Financial Reports with HLedger
Haskell
4
star
37

github-analytics

Aggregate Traffic Graphs for All Your Github Repositories!
Haskell
4
star
38

wordpress-auth

Authenticate Wordpress Cookies & Nonces in Haskell Requests.
Haskell
4
star
39

sitemap-gen

Generate XML Sitemaps & Sitemap Indexes.
Haskell
3
star
40

haskell-book

Exercises from Haskell Programming From First Principles
Haskell
3
star
41

immortal-queue

Build a Queue-Processing Worker Pool using Immortal
Haskell
3
star
42

HKLaunch

A simple CLI application launcher written in Haskell.
Haskell
3
star
43

ca-province-codes

ISO 3166-2:CA Province Codes and Names
Haskell
3
star
44

advent-of-code-2022

Advent of Code 2022 in Haskell
Haskell
3
star
45

halogen-animations

Animate HTML Elements in Halogen.
PureScript
3
star
46

bnb-staking-csvs

Generate CSV Exports of Your BNB Staking Rewards
Haskell
3
star
47

RSSonate

Your Friendly Neighborhood RSS Reader
Elm
3
star
48

advent-of-code-2021

Advent of Code 2021 in Haskell
Haskell
3
star
49

quickbooks-halogen-prototype

A Prototype Purescript UI for our QuickBooks for Communes Project
PureScript
3
star
50

binance-exports

Export Your Binance Trade History to a CSV
Haskell
2
star
51

cloudwatcher

TUI for reviewing error logs from AWS Cloudwatch
Haskell
2
star
52

remote-status

An Elm Library for Tracking the Status of Remote Requests
Elm
2
star
53

bootstrap-gallery

An Elm Library for Rendering a Modal Gallery with Bootstrap v4 & FontAwesome
Elm
2
star
54

nand2tetris

Working Through Nand2Tetris Projects in Haskell
Hack
2
star
55

advent-of-code-2023

Advent of Code 2023 in Haskell
Haskell
2
star
56

rust-book

Working through the official rust book.
Rust
2
star
57

MyBookList

A Library & Wishlist Tracker for your Books.
Haskell
2
star
58

purescript-book

Working Through the Purescript Book
PureScript
2
star
59

seed-pricing-scraper

Scrapes Price Information From Various Seed Companies
Python
2
star
60

mezzanine-dpaste

A Mezzanine app integrating dpaste, a Djano pastebin.
CSS
2
star
61

shopify-to-avatax

Convert Shopify Order Exports into AvaTax Transansaction Imports
Haskell
2
star
62

mx-state-codes

ISO 3166-2:MX State Codes and Names
Haskell
2
star
63

hs-backup

Robust Backup Server for Resumable, Archived Network Backups
Haskell
2
star
64

Start-ASL-Downloader

Download the Free American Sign Language Courses & Videos from StartASL.com
Python
2
star
65

genkouyoushi-generator

Haskell Library, CLI App, & API Server for Generating Genkouyoushi(εŽŸη¨Ώη”¨η΄™) Paper
Haskell
2
star
66

campbx-haskell

Haskell API Bindings for the CampBX Bitcoin Market
Haskell
2
star
67

hls-custom-builds

Build Haskell Language Server with Custom Tooling Versions
Shell
1
star
68

cointracking-imports

A Haskell Library for Generating CSV & XLSX Files for CoinTracking Imports.
Haskell
1
star
69

hylogen-sketches

Playing Around w/ Hylide/Hylogen & Working Through the Book of Shaders
Haskell
1
star
70

crypto-dca-calculator

Generate Price & Amount Tables for Laddered Cryptocurrency Purchases.
Haskell
1
star
71

gemini-exports

Generate CSV Exports of Your Gemini Trades
Haskell
1
star
72

AUR-eddie-ui-git

Shell
1
star