Skip to content

javalsai/lidm

Repository files navigation

GitHub license GitHub branches Latest Release

LiDM

LiDM is a really light unix login manager made in C, highly customizable and held together by hopes and prayers 🙏.

LiDM is like any 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 inside your terminal/TTY.

demo gif

shown as in a featured terminal emulator, actual linux console doesn't support as much color and decorations

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).

Index

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.

stopchatcontrol

there's also a change.org post.

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=<compiler> on the make command.
  • PAM library, used for user authentication, just what login or su use internally. Don't worry, it's surely pre-installed.

Installation

Check the installation guide to use your preferred installation source.

Configuring

Copy any .ini file from themes/ (default.ini will always be updated) to /etc/lidm.ini and/or configure it to your liking. You can also set LIDM_CONF environment variable to specify a config path.

The format attempts to mimic the TOML format. Escape sequences like \x1b are allowed as well as comments and empty lines.

Colors are gonna be put inside \x1b[...m, if you don't know what this is check an ANSI table. Mind that \x1b is the same as \e, \033 and several other representations.

Note

The default fg style should disable decorators set up in other elements (cursive, underline...). It's just adding 20 to the number, so if an underline is 4, disabling it is done with 24.

Tip

If you don't like seeing an element, you can change the fg color of it to be the same as the bg, making it invisible.

Contributing

If you want to contribute check the contribution guide.

Inspiration

This project was started after facing some issues building ly on an ancient laptop, the UI is heavily inspired by it.

For this reason the project's philosophy is to be simple and minimal, such that even prehistoric hardware is capable of running it.

I forgot what exactly the name came from, but it surely was a mix of a few things so:

  • Obviously it's inspired by ly. ly-dm leads to "lydm".
  • Wow make "lydm" simple with a "y" → "i" transformation.
  • Associate it with the "i" in simple and other display managers like LightDM.
  • And the laptop this project started in has a lid.

Contributors

GitHub Contributors

killertofus, deadvey, grialion, cerealexperiments_, antiz96, rmntgx and more...

With their big or small contributions, every commit has helped in its own way and encouraged me to keep putting my soul into this.


🌟 Finally, consider starring this repo or... 🔪

star-history

About

A ✨fully✨ colorful customizable TUI display manager made in C for simplicity.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 7