GithubHelp home page GithubHelp logo

coastalwhite / lemurs Goto Github PK

View Code? Open in Web Editor NEW
668.0 4.0 29.0 363 KB

A customizable TUI display/login manager written in Rust ๐Ÿ’

License: Apache License 2.0

Rust 95.77% Shell 3.27% Nix 0.96%
window-manager unix linux x11 rust wayland

lemurs's People

Contributors

antiz96 avatar atropos1789 avatar bits0rcerer avatar coastalwhite avatar danma3x avatar funnyboy-roks avatar luke-else avatar scampi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

lemurs's Issues

Make configuration extendable

A configuration file should extend the default configuration. This should remove the need for all options to be set.

Allow for themes

Add a theme section to the configuration file that sets a number of general colors. Other configuration options should then be able to refer to these keys. At runtime, the configuration value will then get replaced by the color value specified in the theme.

An example user-configuration (config.toml) would be

[theme]
border = "white"
border-active = "orange"
# ...

The default configuration would then include:

# ...

[username_field.style]
border_color = "${theme.border}"
border_color_focused = "${theme.border_focused}"

[password_field.style]
border_color = "${theme.border}"
border_color_focused = "${theme.border_focused}"

The changes to the code would essentially all take place in config.rs.

theme.toml

Alternatively, a user could provide a theme.toml file in the /etc/lemurs directory. This would override any existing [theme] section within the config.toml. However, A warn! log could be thrown when there is both a theme.toml file and a [theme] section. This file can help with portability and easily changing themes through for example symlinks.

The theme file would be a toml file without headers.

border = "white"
border-active = "orange"
# ...

Notes

  • Should the theme color values be able to mention other theme colors? This would create possible circular dependencies.
  • Preparing for #71, it is probably wise to add a namespace to the theme variables (e.g. theme.key or theme::key).

Logout command

Add a logout command. This should probably communicate to the original process to kill the X process.

Tidy up code

As the final step for 0.1, the codebase should be tidied up.

Add a flag to show configuration

Add a -sc or --show-configuration flag which shows the used configuration.

This should just display a large list of all the configuration options and what their values are.

Remember Credentials

Have been using Lemurs for over a few weeks now, appreciate it and plan to not shift back to Ly.

Suggesting a few features.

  • Remember some login credentials
  • Resized boxes

Xmodmap is not triggered for some reason in my own setup

The xmodmap is not properly triggered for some reason. Maybe the X server is not ready yet?

#! /bin/sh
# Executed by startx (run your window manager from here)

# Map Caps Lock to Control
xmodmap $HOME/.config/X11/Xmodmap

# Run window manager
sxhkd &
exec bspwm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.