### Configure Sway Environment
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
Example script to set up the Sway Wayland compositor for Lemurs. This involves creating a script in the wayland directory and making it executable.
```sh
#! /bin/sh
exec sway
```
```bash
sudo chmod 755 /etc/lemurs/wayland/sway
```
--------------------------------
### Configure BSPWM Environment
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
Example script to set up the BSPWM window manager for Lemurs. This involves creating a script in the wms directory and making it executable.
```sh
#! /bin/sh
sxhkd &
exec bspwm
```
```bash
sudo chmod 755 /etc/lemurs/wms/bspwm
```
--------------------------------
### Install Lemurs on Arch Linux
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
Commands to install Lemurs from the Arch Linux extra repository, disable the default display manager, and enable the Lemurs service.
```bash
sudo pacman -S lemurs
# Not needed if you don't have a window manager yet
sudo systemctl disable display-manager.service
sudo systemctl enable lemurs.service
```
--------------------------------
### Lemurs Platform Support
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
Lemurs has been tested on various Linux distributions including ArchLinux (Vanilla, ArcoLinux), VoidLinux, Ubuntu, and OpenSUSE. Specific package installations like `build-essential` and `libpam-dev` may be required for Ubuntu, and `pam` and `pam-devel` for OpenSUSE.
```Markdown
- ArchLinux (Vanilla, ArcoLinux)
- VoidLinux
- Ubuntu (make sure to install `build-essential` and `libpam-dev`)
- OpenSUSE (make sure to install `pam` and `pam-devel`)
```
--------------------------------
### Lemurs Preview Command
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
The `lemurs --preview` command allows users to test the UI generated by their configuration files by running a preview instance. This command automatically creates a `lemurs.log` file in the working directory.
```Shell
lemurs --preview
```
--------------------------------
### Lemurs Configuration with Variables
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
Demonstrates how to use variables in Lemurs configuration files. variables.toml defines variables, and config.toml references them, showing the final interpreted configuration.
```toml
# variables.toml
replacement_char = "+"
show_pw_title = true
password_title = "Password :)"
title_color = "white"
```
```toml
# config.toml
[password_field]
content_replacement_character = "$replacement_char"
[password_field.style]
show_title = "$show_pw_title"
title = "Wow a $password_title"
title_color = "$title_color"
```
```toml
# Interpreted Configuration
[password_field]
content_replacement_character = "+"
[password_field.style]
show_title = true
title = "Wow a Password :)"
title_color = "white"
```
--------------------------------
### Lemurs Project File Structure
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
An overview of the Lemurs project's source files and their purposes. This includes Rust source code organized into modules for CLI arguments, configuration, environment handling, authentication, post-login logic, and TUI components, as well as configuration and extra files.
```Markdown
|- src: Rust Source Code
| |- main.rs
| |- chvt.rs: UNIX calls to change of TTY
| |- cli.rs: CLI argument parsing
| |- config.rs: Configuration file format and options
| |- env_container.rs: Handles resetting and resetting the environment variables
| |- info_caching.rs: Handling cached username and session environment
| |- auth: Interaction with PAM modules and UTMPX
| | |- mod.rs
| | |- pam.rs
| | |- utmpx.rs
| |- post_login: All logic after authentication
| | |- mod.rs
| | |- env_variables.rs: General environment variables settings
| | |- x.rs: Logic concerning Xorg
| |- ui: TUI code
| | |- mod.rs: UI calling logic, separated over 2 threads
| | |- chunks.rs: Division of the TUI screen
| | |- input_field.rs: TUI input field used for username and password
| | |- power_menu.rs: Shutdown and Reboot options UI
| | |- status_message.rs: UI for error and information messages
| | |- switcher.rs: UI for environment switcher
|- extra: Configuration and extra files needed
| |- config.toml: The default configuration file
| |- xsetup.sh: Script used to setup a Xorg session
| |- lemurs.service: The systemd service used to start at boot
| |- lemurs.pam: PAM service configuration
```
--------------------------------
### Lemurs Licensing and Contributions
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
The Lemurs project is licensed under both MIT and APACHE licenses. The icon used is from SVGRepo, marked under CC0. Contributions, including bug reports and feature requests, are welcomed via issues and pull requests.
```Markdown
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.
Please report any bugs and possible improvements as an issue within this
repository. Pull requests are also welcome.
```
--------------------------------
### Lemurs Shell Keybindings
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
Lemurs supports several basic shell keybindings for enhanced text input manipulation within its interface. These bindings mimic common terminal editor shortcuts for cursor movement, text deletion, and clearing input fields.
```Markdown
- 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
```
--------------------------------
### Lemurs Logging Information
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
Lemurs logs detailed information to several files. The main log file tracks control flow, a client log captures stdout/stderr for script debugging, and an Xorg log captures X11 environment details. Logging can be disabled globally using the `--no-log` flag.
```Markdown
- `/var/log/lemurs.log`: This is the main log file that contains information
about the control flow and is the first place you should look.
- `/var/log/lemurs.client.log`: This is the `stdout` and `stderr` of your
environment. This can help you debug your scripts in the `/etc/lemurs/wms` or
`/etc/lemurs/wayland` folder.
- `/var/log/lemurs.xorg.log`: This is the `stdout` and `stderr` of the X server.
This is only used when you run a X11 based environment.
```
--------------------------------
### Lemurs MSRV Policy
Source: https://github.com/coastalwhite/lemurs/blob/main/README.md
Lemurs adheres to a Minimum Supported Rust Version (MSRV) policy of N - 2. This means that only Rust language features available in releases up to two versions prior to the latest stable release are utilized, ensuring broader compatibility.
```Markdown
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.
```
=== COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.