Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coastalwhite/lemurs
A customizable TUI display/login manager written in Rust 🐒
https://github.com/coastalwhite/lemurs
linux rust unix wayland window-manager x11
Last synced: 7 days ago
JSON representation
A customizable TUI display/login manager written in Rust 🐒
- Host: GitHub
- URL: https://github.com/coastalwhite/lemurs
- Owner: coastalwhite
- License: apache-2.0
- Created: 2021-12-28T21:57:07.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-24T19:03:38.000Z (5 months ago)
- Last Synced: 2024-11-30T09:46:46.047Z (13 days ago)
- Topics: linux, rust, unix, wayland, window-manager, x11
- Language: Rust
- Homepage:
- Size: 332 KB
- Stars: 765
- Watchers: 5
- Forks: 34
- Open Issues: 57
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
- fucking-Awesome-Linux-Software - ![Open-Source Software - A customizable TUI display/login manager written in Rust. (Display manager / Console)
- Awesome-Linux-Software - ![Open-Source Software - A customizable TUI display/login manager written in Rust. (Display manager / Console)
- awesome-ratatui - lemurs - A customizable TUI login manager for Linux and BSD. (💻 Apps / 🌌 Other)
README
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 [extra](https://archlinux.org/packages/?sort=&q=lemurs&maintainer=&flagged=) repository.
```bash
sudo pacman -S lemurs# Not needed if you don't have a window manager yet
sudo systemctl disable display-manager.servicesudo systemctl enable lemurs.service
```Alternatively, [lemurs-git](https://aur.archlinux.org/packages/lemurs-git) is available in the AUR.
### 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 ` flag. The configuration type can
contain any subset of the available options. All the options and explanations
as to what they do can be found in the
[`extra/config.toml`](./extra/config.toml) file. This file also serves as the
default configuration.Additionally, there is the possibility of variables in the configuration file.
By default, Lemurs searches for a `/etc/lemurs/variables.toml` file, but an
alternative location can be specified using the `--variables
Ctrl + A: Go to the beginning of the focused input field
- Ctrl + E: Go to the end of the focused input field
- Ctrl + L: Clear the focused input field
- Ctrl + U: Clear input field text before the cursor
- Ctrl + K: Clear input field text after the cursor
- Ctrl + D: Same as Delete
- Ctrl + H: Same as Backspace
- Ctrl + B: Same as Left
- Ctrl + F: Same as Right
- Ctrl + P: Same as Up
- Ctrl + N: Same as Down## Platforms
Tested on
- ArchLinux (Vanilla, ArcoLinux)
- VoidLinux
- Ubuntu (make sure to install `build-essential` and `libpam-dev`)
- OpenSUSE (make sure to install `pam` and `pam-devel`)## MSRV Policy
Lemurs has a _Minimum Supported Rust Version_ policy of _N - 2_. This means that
we only use Rust languages features that have been in Rust as of 2 releases.## License
The icon used at the top of the repository is not a logo and taken as an icon
from the [SVGRepo](https://www.svgrepo.com/svg/252871/lemur). It is marked
under CC0 and therefore freely distributable and amendable under a new
license.The project is made available under the MIT and APACHE license. See the
`LICENSE-MIT` and `LICENSE-APACHE` files, respectively, for more information.## Contributions
Please report any bugs and possible improvements as an issue within this
repository. Pull requests are also welcome.[pam]: https://en.wikipedia.org/wiki/Pluggable_authentication_module
[TOML]: https://toml.io/