whatisgithub

What is ly?

fairyglade/ly — explained in plain English

Analysis updated 2026-06-24

7,284ZigAudience · ops devopsComplexity · 3/5Setup · moderate

In one sentence

Ly is a minimal text-based login screen for Linux and BSD systems written in Zig. It replaces graphical login managers with a lightweight terminal-style interface that works without systemd.

Mindmap

mindmap
  root((ly))
    What it does
      Text-based login screen
      Session selection
      User authentication
    Tech stack
      Zig language
      PAM authentication
      X11 and Wayland
    Init support
      systemd OpenRC runit
      s6 dinit sysvinit
      FreeBSD rc
    Configuration
      config.ini
      Custom desktop files
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Replace a heavy graphical login manager on a minimal Linux or BSD setup with a lightweight text-based alternative

USE CASE 2

Set up a display manager on a non-systemd system using OpenRC, runit, s6, dinit, or sysvinit

USE CASE 3

Add a custom desktop session to Ly by writing a .desktop file for an unlisted window manager

What is it built with?

ZigPAMXCBX11Wayland

How does it compare?

fairyglade/lyroc-lang/roczigtools/zls
Stars7,2845,6524,789
LanguageZigZigZig
Setup difficultymoderatehardeasy
Complexity3/54/52/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Zig 0.16.x to build from source plus PAM and optionally XCB, distro packages available for common distributions.

So what is it?

Ly is a display manager for Linux and BSD. A display manager is the login screen that appears when your computer boots, where you type your username and password and choose which desktop environment to start. Unlike most display managers, which are graphical applications with buttons and images, Ly uses a minimal text-based interface that looks similar to old-school terminal programs. One of Ly's stated goals is portability: it does not require systemd to run. The README includes installation instructions for six different init systems including systemd, OpenRC, runit, s6, dinit, and sysvinit, as well as FreeBSD. This makes it appealing to users running more minimal Linux setups or BSD systems where systemd is not available. Ly supports both X11 and Wayland desktop sessions, discovering them through standard .desktop files in the usual system directories. If a desktop environment is not showing up in the list, the README explains how to create a custom .desktop file for it. Arrow keys are used to navigate between fields at login, and F1 and F2 trigger shutdown and reboot. Building Ly from source requires Zig 0.16.x (the Zig programming language that Ly is written in), plus system libraries for PAM (authentication) and optionally XCB for X11 support. Packages are available in the repositories of several Linux distributions so you can install it without building from source. Configuration lives in /etc/ly/config.ini, which the README describes as fully commented with default values included. The project's primary development happens on Codeberg, with GitHub serving as a mirror. A Matrix chat room is available for community discussion.

Copy-paste prompts

Prompt 1
Write a custom .desktop file to add my i3wm session to the Ly display manager session list on Arch Linux.
Prompt 2
Show me the /etc/ly/config.ini options I need to set for auto-login as a specific user with a default Wayland session.
Prompt 3
Walk me through enabling Ly as the display manager on Alpine Linux using the OpenRC service steps.
Prompt 4
How do I set up Ly on FreeBSD with the correct rc.conf entry and which packages do I need?

Frequently asked questions

What is ly?

Ly is a minimal text-based login screen for Linux and BSD systems written in Zig. It replaces graphical login managers with a lightweight terminal-style interface that works without systemd.

What language is ly written in?

Mainly Zig. The stack also includes Zig, PAM, XCB.

How hard is ly to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is ly for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.