# Lemurs 🐒
A TUI Display/Login Manager written in Rust
![Cover image](./cover.png)
**WIP: Whilst the project is working and installable, there are still a lot of
bugs and limitations.**
A minimal lightweight TUI [Display Manager/Login
Manager](https://wiki.archlinux.org/title/Display_manager) written in Rust
similar to [Ly](https://github.com/nullgemm/ly).
## Goal
The goal of this project is to create a small, robust and yet customizable
Login Manager which can serve as the front-end to your graphical GNU/Linux
or BSD environment. Lemurs uses Linux PAM as its method of authentication.
## Installation
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. Copy 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 running the installation script you can add your window managers by
creating runnable scripts also known as
[xinitrc](https://wiki.archlinux.org/title/Xinit)s under the `/etc/lemurs/wms`
folders. The name of the script is used as the name within lemurs. For example,
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 `chmod +x
/etc/lemurs/wms/bspwm` command.
Upon rebooting your new *xinitrc* should show up within Lemurs.
## configuration
Many parts for the UI can be configured with the `/etc/lemurs/config.toml`
file. This file contains all the options and explainations of their purpose.
The flag `--config ` can be used to select another configuration
file instead. An example configuration can be found in the `/extra` folder.
## License
The project is made available under the MIT and APACHE license. See the
`LICENSE-MIT` and `LICENSE-APACHE` files, respectively, for more information.