LiDM is a really light UI portion a unix login manager made in C, highly customizable and held together by hopes and prayers 🙏.
LiDM is like any X Display Manager you have seen such as SDDM or GDM but without using X org graphics, instead being a purely text based interface.
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
a32e4a5
:2.830s
: laptop, -O3, -j2, AMD E-450 APU with Radeon(tm) HD Graphics
0.172s
: desktop, -O3, -j12, AMD Ryzen 5 5600G with Radeon Graphics
663427e
:0.085s
: desktop, -O0, AMD Ryzen 5 5600G with Radeon Graphics
0.009s
: desktop, -O0, CC=tcc, AMD Ryzen 5 5600G with Radeon Graphics
TryExec
key.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.
there's also a change.org post.
If a single argument is provided (don't even do --
or standard parsing...), it passes that argument to chvt
on startup, used (at least) by most service files.
On top of pure intuition:
gcc
and mkdir -p
work as expected).login
or su
use internally. Don't worry, it's surely pre-installed.Check the installation guide to use your preferred installation source.
Copy any .ini
file from themes/
(default.ini
will always be updated) to /etc/lidm.ini
and/or configure it to your liking. Also, don't place empty lines (for now). You can also set LIDM_CONF
environment variable to specify a config path.
Configured colors are just gonna be put inside \x1b[...m
, ofc you can add an 'm' to break this and this can f*ck up really bad or even make some nice UI effect possible, you should also be able to embed the \x1b
byte in the config as I won't parse escape codes, I think that the parser is just gonna grab anything in the config file from the space after the =
(yes, I'ma enforce that space, get good taste if you don't like it) until the newline, you can put any abomination in there. But please, keep in mind this might break easily.
The default fg style should disable decorators set up in other elements (cursive, underline... it's just adding 20 to the number btw, so if cursive is 4 (iirc), disabling it is 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.
If you want to contribute check the CONTRIBUTING.md
Summer travelling to visit family with an old laptop that barely supports x86_64, and ly recently added some avx2 instructions I think (invalid op codes), manually building (any previous commit too) didn't work because of something in the build.zig
file, so out of boredom I decided to craft up my own simple display manager on the only language this thing can handle... C (I hate this and reserve the right for the rust rewrite, actually solid).
I spedrun it in roughly 3 days and I'm bad af in C, so this is spaghetti code on another level. I think it doesn't do almost anything unsafe, I mean, I didn't check allocations and it's capable of reallocating memory until your username uses all memory, crashing the system due to a off-by-one error, but pretty consistent otherwise (probably).
The name is just ly but changing "y" with "i", that had a reason but forgot it, (maybe the i in simple), so I remembered this sh*tty laptop with a lid, this thing is also a display manager (dm, ly command is also ly-dm
), so just did lidm due to all that.
chvt
instead of insecurely relying on kbd utils
's command.