How fairyglade/ly works
Ly is a lightweight terminal display manager: a user chooses an account and desktop session, authenticates, and starts a graphical session. The README also documents configurable Lua behavior, localized UI, animations, and support for multiple init systems. The tree identifies likely implementation areas, but only a language-normalization script was sampled; internal call wiring and several runtime details therefore remain unshown, and the graph avoids asserting those links.
Main entry points: root.zig Terminal UI · main.zig Ly entry point · Environment.zig Session environment · auth.zig Authentication
Components 20
Display manager
- Ly entry point
src/main.zig - Environment
src/Environment.zig - Authentication
src/auth.zig - System and session logs
ly-core/src/LogFile.zig - Init service definitions
res
Terminal interface
- Terminal UI
ly-ui/src/root.zig - UI components
ly-ui/src/components - Keyboard input
ly-ui/src/keyboard.zig - User selection
src/components/UserList.zig - Session selection
src/components/Session.zig
Configuration
- Lua configuration
src/config/Config.zig - Language strings
src/config/Lang.zig - Saved users
src/config/SavedUsers.zig
Sessions and animation
- Session environment
src/Environment.zig - X sessions
- Wayland sessions
- Animations
src/animations
Other components
- User
- Init service
- PAM
Connections 14
- User → Ly entry point: starts Ly
- Init service → Ly entry point: starts
- User → Terminal UI: interacts
- Terminal UI → UI components: renders with
- Keyboard input → Terminal UI: provides input
- User selection → Terminal UI: selects account
- Session selection → Terminal UI: selects session
- Lua configuration → Ly entry point: configures
- Language strings → Terminal UI: localizes
- Authentication → PAM: authenticates via
- Session environment → X sessions: supports
- Session environment → Wayland sessions: supports
- Animations → Terminal UI: animates
- Init service definitions → Init service: configures startup