eXtended Login Shell
C Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
etc
include
src
COPYING
Makefile
README

README

xlsh - eXtended Login Shell
(c) 2011 Michał Siejak

A simple login shell with readline functionality and PAM integration.
 * When run stand-alone on a virtual console it can replace standard "login" program.
 * When run in cooperation with X daemon component (xlshd) it can replace XDM/GDM/KDM.

Full documentation can be found here:
 * https://github.com/Nadrin/xlsh/wiki

Features:
 * Small and simple, written entirely in C.
 * Easily hackable because of compact codebase (~1000 source lines).
 * Uses PAM for authorization and session management.
 * Ability to select non-default shell/window manager during logon.
 * Entirely keyboard driven display manager replacement (when used with xlshd)
   without the need for any fat libraries or GUI toolkits.
 * Defaults configured before compilation, some of them can be changed by
   setting few environment variables.
 * Single shell script file (/etc/xlsh/xlshrc) for customizing how
   xlshd launches xlsh.
 * Introduces a concept of "pre-login shell" known from GNU/HURD.
 * Only *three* important commands: 'login', 'reboot' and 'shutdown'.
 * New commands can be easily added (if you need any) by editing xlsh.c
 * Username autocompletion on TAB.
 * Zenburn color scheme by default (when run under X).

The only build dependencies are: make, a decent C compiler, libreadline and libpam.
Configuration options can be edited in include/config.h before compiling.

Runtime dependencies for xlshd are: standard X11 distribution with xterm and
(optionally) xdotool for enforcing terminal window focus on multi-monitor setups.

When using xlsh as "login" replacement remember to tell your getty program to not
ask for username. When using xlshd from inittab specify -f flag so it won't fork
into background.

Example lines from my inittab file:

# xlsh on virtual console #1 (tty1)
c1:2345:respawn:/sbin/agetty -8 -s 38400 -n -l /usr/local/sbin/xlsh tty1 linux
# xlshd starting X server and xterm/xlsh on runlevel 5
x:5:respawn:/usr/local/sbin/xlshd -f

Thanks goes to Mateusz Hromada for testing and providing useful patches. ;-)

Please report any bugs or issues either via github or via mail to:
  <my_firstname@my_lastname.pl>