Lemurs is a *Terminal User Interface* (TUI) [Display/Login Managers](https://wiki.archlinux.org/title/Display_manager) written in Rust that works on most GNU/Linux and BSD distributions. It can work both *with or without* SystemD. ## Goal This project creates a small, robust and yet customizable Login Manager which can serve as the front-end to your TTY, X11 or Wayland sessions. Lemurs uses [_Pluggable Authentication Modules_][pam] (PAM) as its method of authentication. ## Screenshot ![Cover image](./assets/cover.png) ## Installation [![Packaging status](https://repology.org/badge/vertical-allrepos/lemurs.svg)](https://repology.org/project/lemurs/versions) Installation follows three steps. 1. Compile the codebase 2. Copy all files to correct positions 3. Enable `init` process to run `lemurs` ### Arch Linux Lemurs can be installed from the [AUR](https://aur.archlinux.org/packages/lemurs). This will build the package on your local machine. ```bash paru -S lemurs # paru can be replaced by any other AUR helper # Not needed if you don't have a window manager yet sudo systemctl disable display-manager.service sudo systemctl enable lemurs.service ``` ### Compiling from source The `install.sh` script can be used to compile and setup the display manager on your Unix machine. This will perform multiple steps: 1. Build the project in release mode (requires Rust's _cargo_) 2. Setup the `/etc/lemurs` folder which contains some of the configuration and necessary files such as your selection of window managers. 3. Disables the previous Display Manager 4. Copies over the _systemd_ service and enables it. Although you might first want to set up some window managers (see [Usage](#Usage)), upon rebooting you should now see Lemurs. ## Usage After installation you can add your environments by creating runnable scripts. For your Xorg put your [xinitrc](https://wiki.archlinux.org/title/Xinit) scripts in the `/etc/lemurs/wms` directory. For Wayland, put a script that starts your compositor in the `/etc/lemurs/wayland` directory. For both cases, the name of the runnable script file is the name that is shown in the environment switcher within lemurs. Multiple Xorg and Wayland environments can exist at the same time. ### Example 1: BSPWM For the [bspwm](https://github.com/baskerville/bspwm) window manager, you might add the script `/etc/lemurs/wms/bspwm`. ```bash #! /bin/sh sxhkd & exec bspwm ``` Remember to make this script runnable. This is done with the `sudo chmod 755 /etc/lemurs/wms/bspwm` command. Upon rebooting your new `bspwm` should show up within Lemurs. ### Example 2: Sway For the [sway](https://swaywm.org/) compositor and window manager, you might add the script `/etc/lemurs/wayland/sway`. Ensure that you have sway installed and added yourself to the `seat` group. ```bash #! /bin/sh exec sway ``` Remember to make this script runnable. This is done with the `sudo chmod 755 /etc/lemurs/wayland/sway` command. Upon rebooting your new `sway` should show up within Lemurs. ## Configuration Configuration is done through a [TOML] file. By default, Lemurs searches for a `/etc/lemurs/config.toml` file, but an alternative location can be specified using the `--config