A modern, visually appealing greeter for LightDM, that allows to create web based themes with HTML, CSS and JavaScript.
Also, check out nody-greeter, a greeter made in Node.js with Electron!
Gruvbox and Dracula themes!
- Create themes with HTML, CSS and JavaScript!
- Should work everywhere.
- JavaScript error handling, allowing to load the default theme.
- Themes could be simple, or very complex.
- Battery and brightness control.
- Tab completion for zsh and bash.
yay -S web-greeterDownload from the latest release and install with apt.
apt install ./web-greeter-VER-DISTRO.deb- Python 3.13 or above
- uv (astral.sh)
- Meson
- Ninja
- tsc (
npm i -g typescript) - base-devel (build-essential)
sudo apt install \
\
python3 \
python3-pip \
meson \
ninja-build \
node-typescript \
build-essential \
\
liblightdm-gobject-dev \
gobject-introspection \
libxcb1-dev \
libx11-dev \
libcairo2-dev \
libgirepository-2.0-devInstall uv (astral.sh) according to its manual.
sudo pacman -Sy \
\
meson \
ninja \
typescript \
base-devel \
\
lightdm \
python3 \
gobject-introspection \
libxcb \
libx11 \
cairoYou can also install web-greeter from the AUR.
git clone --recursive https://github.com/JezerM/web-greeter.git
cd web-greeter
meson build -Dprefix=/usr -Dsysconfdir=/etc
ninja -C build
sudo ninja -C build installThis will build web-greeter with Pyside6 and Nuitka, and then package all the files to be installed.
See latest release.
Use sudo ninja -C build uninstall to uninstall all files.
Documentation is available at web-greeter-page/docs.
You can access the man-pages man web-greeter for some documentation and explanation. Also, you can
explore the provided themes for real use cases.
Additionally, you can install the TypeScript types definitions inside your theme with npm:
npm install nody-greeter-typesacpi is the only tool needed to control the brightness, besides a compatible device.
This functionality is based on acpilight replacement for xbacklight.
udev rules are needed to be applied before using it, check acpilight rules.
Then, lightdm will need to be allowed to change backlight values, to do so add lightdm user
to the video group: sudo usermod -a -G video lightdm
Enable it inside /etc/lightdm/web-greeter.toml
acpi and acpi_listen are the only tools you need (and a battery).
This functionality is based on "bat" widget from "lain" awesome-wm library.
You can enable it inside /etc/lightdm/web-greeter.toml
You can run the greeter from within your desktop session if you add the following line to the desktop
file for your session located in /usr/share/xsessions/: X-LightDM-Allow-Greeter=true.
You have to log out and log back in after adding that line. Then you can run the greeter from command line.
Themes can be opened with a debug console if you set debug_mode as true
inside /etc/lightdm/web-greeter.toml. Or, you could run the web-greeter with
the parameter --debug. I recommend to use the last one, as it is easier and handy.
web-greeter --debugCheck web-greeter --help for more commands.
Note: Do not use
lightdm --test-modeas it is not supported in some desktop sessions.
Before setting web-greeter as your LightDM Greeter, you should make sure it does work also with LightDM:
- Run web-greeter as root with
--no-sandboxflag ("Unable to determine socket to daemon" and "XLib" related errors are expected) - Run
lightdm --test-mode. Although it's not supported, if it does work then it could help to debug lightdm.
LightDM does this when the greeter crashes, so it could mean web-greeter was not installed correctly, or some dependencies were updated/removed after a distro update.
I was not able to reproduce the installation process in Fedora Workstation 43, due to some issues related to Nuitka, which resulted in segmentation faults when running web-greeter. As for now, I will not support web-greeter in Fedora; if anyone is able to successfully build and execute it, let me know!