2021-12-28 22:09:22 +00:00
|
|
|
<div align="center">
|
|
|
|
|
2021-12-28 22:10:56 +00:00
|
|
|
# Lemurs 🐒
|
2021-12-28 22:09:22 +00:00
|
|
|
A TUI Display/Login Manager written in Rust
|
|
|
|
|
2021-12-28 21:56:14 +00:00
|
|
|
</div>
|
|
|
|
|
2021-12-31 18:48:24 +00:00
|
|
|
![Cover image](./cover.png)
|
|
|
|
|
2022-07-30 17:41:41 +00:00
|
|
|
> Note: the project is installable and working, but there might still be some
|
|
|
|
> limitations.
|
2021-12-28 21:56:14 +00:00
|
|
|
|
2022-07-30 17:41:41 +00:00
|
|
|
A minimal TUI [Display Manager/Login
|
2021-12-28 21:56:14 +00:00
|
|
|
Manager](https://wiki.archlinux.org/title/Display_manager) written in Rust
|
2021-12-28 22:18:22 +00:00
|
|
|
similar to [Ly](https://github.com/nullgemm/ly).
|
|
|
|
|
|
|
|
## Goal
|
|
|
|
|
2021-12-31 19:05:45 +00:00
|
|
|
The goal of this project is to create a small, robust and yet customizable
|
2022-07-30 17:41:41 +00:00
|
|
|
Login Manager which can serve as the front-end to your graphical GNU/Linux.
|
|
|
|
Lemurs uses Linux PAM as its method of authentication.
|
2021-12-28 22:18:22 +00:00
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
2021-12-31 19:02:53 +00:00
|
|
|
The `install.sh` script can be used to compile and setup the display manager on
|
|
|
|
your Unix machine. This will perform multiple steps:
|
|
|
|
|
2022-07-30 17:41:41 +00:00
|
|
|
1. Build the project in release mode (requires Rust's _cargo_)
|
2021-12-31 19:02:53 +00:00
|
|
|
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
|
2022-07-30 17:41:41 +00:00
|
|
|
4. Copy over the _systemd_ service and enables it.
|
2021-12-31 19:05:45 +00:00
|
|
|
|
2021-12-31 19:13:23 +00:00
|
|
|
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.
|
|
|
|
|
2022-07-30 17:45:24 +00:00
|
|
|
Upon rebooting your new `bspwm` should show up within Lemurs.
|
2021-12-31 19:13:23 +00:00
|
|
|
|
2022-01-05 20:07:36 +00:00
|
|
|
## Configuration
|
2022-01-05 18:58:43 +00:00
|
|
|
|
|
|
|
Many parts for the UI can be configured with the `/etc/lemurs/config.toml`
|
2022-07-30 17:41:41 +00:00
|
|
|
file. This file contains all the options and explanations of their purpose.
|
2022-01-05 18:58:43 +00:00
|
|
|
The flag `--config <CONFIG FIlE>` can be used to select another configuration
|
|
|
|
file instead. An example configuration can be found in the `/extra` folder.
|
|
|
|
|
2021-12-31 19:05:45 +00:00
|
|
|
## License
|
|
|
|
|
|
|
|
The project is made available under the MIT and APACHE license. See the
|
|
|
|
`LICENSE-MIT` and `LICENSE-APACHE` files, respectively, for more information.
|
2022-07-30 17:41:41 +00:00
|
|
|
|
|
|
|
## Debugging / Logging
|
|
|
|
|
|
|
|
Lemurs logs a lot of information of it running to a logging file. This is
|
|
|
|
located by default at `/var/log/lemurs.log`, but can be turned of by running
|
|
|
|
with the `--nolog` flag.
|
|
|
|
|
|
|
|
If you want to test your configuration file you can also run `lemurs
|
|
|
|
--preview`. This will run a preview instance of your configuration. This will
|
|
|
|
automatically create a `lemurs.log` in the working directory.
|
|
|
|
|
|
|
|
## Contributions
|
|
|
|
|
|
|
|
Please report any bugs and possible improvements as an issue within this
|
|
|
|
repository. Pull requests are also welcome.
|