fairyglade/ly: A lightweight TUI (ncurses-like) display manager for Linux and BSD.

li screenshot

Ly is a lightweight TUI (ncurses-like) display manager for Linux and BSD, designed with portability in mind (e.g. it does not require systemd to run).

Join us on Matrix at #ly:envs.net!

Comment:Development takes place on Codeberg with a mirror on GitHub.

dependencies

  • compile-time:
    • zig 0.15.x
    • libc
    • palm
    • xcb (optional, required by default; required for X11 support)
  • Runtime (with default configuration):
    • xorg
    • xorg-xauth
    • shut down
    • brightnessctl

Debian

# apt install build-essential libpam0g-dev libxcb-xkb-dev xauth xserver-xorg brightnessctl

fedora

alert: You may encounter issues with SELinux on Fedora. It is recommended to add a rule for Ly as it does not currently ship one.

# dnf install kernel-devel pam-devel libxcb-devel zig xorg-x11-xauth xorg-x11-server brightnessctl

FreeBSD

# pkg install ca_root_nss libxcb git xorg xauth

Availability

packaging status

Help

Ly has been tested with a variety of desktop environments and window managers, which you can find in the sections below:

welland environment

X11 environment

Logs are defined by /etc/ly/config.ini,

  • session log is located ~/.local/state/ly-session.log As a default.
  • system log is located /var/log/ly.log As a default.

build manually

The process for creating Ly manually is fairly standard:

$ git clone https://codeberg.org/fairyglade/ly.git
$ cd ly
$ zig build

After building, you can (optionally) test Ly in a terminal emulator, although authentication will occur No Work:

$ zig build run

Important: While you can also run Ly as root in a terminal emulator, this is
No Either recommended. If you want to test Ly properly, please enable its service (as described below) and reboot your machine.

The following sections show how to install Ly for a particular init system. Because the process is very similar for all of them, the commands will be detailed only for the first section (which is about SystemD).

Comment: All of the following sections will assume you are using LightDM for convenience.

systemd

Now, you can install Ly on your system:

# zig build installexe -Dinit_system=systemd

Comment: The init_system The parameter is optional and is the default systemd,

Note that you will also need to disable your current display manager. For example, if LightDM is the current display manager, you can execute the following command:

# systemctl disable lightdm.service

Then, similar to the previous command, you need to enable the Ly service:

# systemctl enable ly.service

Important: Because Ly runs in a TTY, you Sure Disable the TTY service that Ly will run on, otherwise bad things will happen. For example, disabling getty Spawning on TTY 2 (the default TTY on which Ly spawns), you need to execute the following command:

# systemctl disable getty@tty2.service

You can change whether TTY Ly will run by editing the corresponding service file for your platform.

openrc

# zig build installexe -Dinit_system=openrc
# rc-update del lightdm
# rc-update add ly
# rc-update del agetty.tty2

Comment: Exclusively on Gentoo, you can also Sure Comment the appropriate line for TTY in /etc/inittab.

run it

# zig build installexe -Dinit_system=runit
# rm /var/service/lightdm
# ln -s /etc/sv/ly /var/service/
# rm /var/service/agetty-tty2

s6

# zig build installexe -Dinit_system=s6
# s6-rc -d change lightdm
# s6-service add default ly-srv
# s6-db-reload
# s6-rc -u change ly-srv

To disable TTY 2, edit /etc/s6/config/tty2.conf and set SPAWN="no",

humbled

# zig build installexe -Dinit_system=dinit
# dinitctl disable lightdm
# dinitctl enable ly

To disable TTY 2, go to /etc/dinit.d/config/console.conf and modify
ACTIVE_CONSOLES,

sysvinit

# zig build installexe -Dinit_system=sysvinit
# update-rc.d lightdm disable
# update-rc.d ly defaults

To disable TTY 2, go to /etc/inittab and comment the line containing tty2,

FreeBSD

# zig build installexe -Dprefix_directory=/usr/local -Dconfig_directory=/usr/local/etc -Dinit_system=freebsd
# sysrc lightdm_enable="NO"

To enable Ly, add the following entry /etc/gettytab,

Ly:\
    :lo=/usr/local/bin/ly_wrapper:\
    :al=root:

Then, modify the command field of ttyv1 terminal entry /etc/ttys
(TTYs start at 0 in FreeBSD):

ttyv1 "/usr/libexec/getty Ly" xterm on secure

to update

You can also install Ly without overriding the current configuration file. it is called to updateTo update, just run:

# zig build installnoconf

Of course, you can still choose the init system of your choice when using this command.

layout

You can find all configurations in /etc/ly/config.iniThe file is fully commented, and contains default values,

Control

Use the up/down arrow keys to change the current field, and the left/right arrow keys to scroll to different fields (be it the information row, desktop environment, or username). The information line is where messages and errors are displayed.

A note on .xinitrc

if your .xinitrc If the file doesn’t work, make sure it’s executable and contains a shebang. This file is considered a shell script! quote from xinitMan page of:

If no specific client program is given on the command line, xinit will look for a file called .xinitrc in the user’s home directory to run as a shell script to start the client program.

A typical shebang for a shell script looks like this:

#!/bin/sh

suggestions

  • The NumLock and CapsLock statuses are printed in the top-right corner.
  • Use the F1 and F2 keys to shutdown and reboot respectively.
  • take a look at yourself .xsession If

Supported Wayland Environments

  • rang
  • cosmic
  • Talking nonsense
  • enlightenment
  • Proverb
  • hyperland
  • KDE
  • labwc
  • pure
  • pantheon
  • sway
  • weston

Supported X11 environments

  • very nice
  • bspwm
  • rang
  • cinnamon
  • dwm
  • enlightenment
  • Proverb
  • KDE
  • leftism
  • lxde
  • partner
  • Max
  • pantheon
  • qwm
  • spectrum
  • windowmaker
  • xfce
  • xmonad

a final note

The name “Lie” is a tribute to the fairy from the game Rayman. Ly was tested by Oxodao, who is truly an amazing person.



<a href

Leave a Comment