### 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.