[](https://github.com/javalsai/lidm/blob/master/LICENSE) [](https://github.com/javalsai/lidm) [](https://github.com/javalsai/lidm/releases) # LiDM LiDM is a really light unix [login manager](https://en.wikipedia.org/wiki/Login_manager) made in C, highly customizable and held together by hopes and prayers 🙏. LiDM is like any [Display Manager](https://en.wikipedia.org/wiki/X_display_manager) you have seen such as SDDM or GDM but without using any X.org graphics at all. Instead being a purely [text based interface](https://en.wikipedia.org/wiki/Text-based_user_interface) inside your terminal/TTY. 
> _however, all colors and strings are fully customizable_ ## Features - Simple as C, you only need a C compiler and standard unix libraries to build this. - Fully customizable, from strings, including action keys, to colors (I hope you know ansi escape codes) - Automatically detects xorg and wayland sessions, plus allowing to launch the default user shell (if enabled in config) - Starts with many init systems (systemd, dinit, runit, openrc and s6). # Table of Contents - [Ideology](#ideology) - [Usage](#usage) - [Arguments](#arguments) - [Program](#program) - [Requirements](#requirements) - [Installation](#installation) - [Configuring](#configuring) - [PAM](#pam) - [Contributing](#contributing) - [Inspiration](#inspiration) - [Contributors](#contributors) # Ideology We all know that the most important thing in a project is the ideology of the author and the movements he wants to support, so [**#stopchatcontrol**](https://stopchatcontrol.eu). [  ](https://stopchatcontrol.eu) > _there's also a [change.org post](https://www.change.org/p/stoppt-die-chatkontrolle-grundrechte-gelten-auch-im-netz)._ # Usage ### Arguments If a single argument is provided (don't even do `--` or standard unix parsing...), it switches to said tty number at startup. Used (at least) by most service files. ### Program Base (mostly intuitive): - Use arrow keys to navigate the inputs and type over any of them to override the default value. - Enter will just attempt to login. - If you are focused on an edited input, horizontal arrow keys will attempt to move across the text just as expected. On top of that: - Using the horizontal arrow keys if the focused input is not in text mode or the movement would overflow the input. It will try to change in such direction the option of session or the user. - Pressing ESC and then horizontal arrows will force to change the option of the focused input even if it's in edit mode. - Editing an option on a user or a shell session will put you in edit mode appending after the original value. # Requirements - Make (Also optional, but does things automatically, make sure `gcc` and `mkdir -p` work as expected). - A compiler like `cc`, `gcc` or `clang`. Make sure to use the desired `CC=shown as in a featured terminal emulator, actual linux console doesn't support as much color and decorations
If you want to add fancy color and font support to your TTYs you can wrap lidm in [`kmscon`](https://wiki.archlinux.org/title/KMSCON). (edit appropriate service files). e.g: ```sh kmscon -l --vt /dev/tty7 --font-name "Cascadia Code" -- /usr/bin/lidm ```