GithubHelp home page GithubHelp logo

mateuszstudioscompany / web-greeter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jezerm/web-greeter

0.0 0.0 0.0 14.87 MB

A modern, visually appealing greeter for LightDM.

Home Page: https://jezerm.github.io/web-greeter/

License: GNU General Public License v3.0

CSS 0.27% JavaScript 5.85% Shell 6.62% Python 75.15% Makefile 9.87% Dockerfile 0.65% C 1.60%

web-greeter's Introduction

Web Greeter for LightDM

A modern, visually appealing greeter for LightDM, that allows to create web based themes with HTML, CSS and JavaScript.

This is a try to update the Antergos web-greeter, following what they left.

As this is based on the master release, which does some API changes, actual themes would need to do changes to work correctly.

Checkout nody-greeter, a greeter made in Node.js with Electron! (Actually, faster than Web Greeter)

Gruvbox and Dracula themes!

Features

  • Create themes with HTML, CSS and JavaScript!
  • Should work everywhere.
  • JavaScript error handling, allowing to load the default theme.
  • Themes could be simple, or very complex.
  • Battery and brightness control.
  • Tab completion for zsh and bash.

Available distro packages

Arch

yay -S web-greeter

Ubuntu

Download from the latest release and install with apt.

apt install ./web-greeter-VER.deb

Dependencies

arch ubuntu fedora openSUSE
liblightdm-gobject lightdm liblightdm-gobject-1-dev lightdm-gobject-devel liblightdm-gobject-1-0
pygobject python-gobject python3-gi pygobject3 python3-gobject
pyqt5 python-pyqt5 python3-pyqt5 python3-qt5 python3-qt5
pyqt5-webengine python-pyqt5-webengine python3-pyqt5.qtwebengine python3-qt5-webengine python3-qtwebengine
python-yaml python-ruamel-yaml python3-ruamel.yaml python3-ruamel-yaml python3-ruamel-yaml
python-inotify python-pyinotify python3-pyinotify python3-inotify python3-inotify
qt5-webengine qt5-webengine libqt5webengine5 qt5-qtwebengine libqt5-qtwebengine
gobject-introspection gobject-introspection gobject-introspection gobject-introspection gobject-introspection
libxcb libxcb libxcb1-dev libxcb-devel libxcb
libx11 libx11 libx11-dev libX11-devel libx11

Build dependencies

  • rsync
  • zip
  • make
  • pyrcc5 (Should be installed with above dependencies)
  • base-devel (build-essential)

PIP

  • PyGObject
  • PyQt5
  • PyQtWebEngine
  • ruamel.yaml
  • pyinotify

PIP dependencies are no longer required as long as common dependencies are satisfied. However, you can install PIP dependencies with:

pip install -r requirements.txt

NOTE If using PIP, be sure to install these dependencies as root. Yet, no recommended.

Download & Install

git clone https://github.com/JezerM/web-greeter.git
cd web-greeter
sudo make install

This will build web-greeter in a virtal environment, compile some bindings with gcc and package all the files to be installed.

See latest release.

Uninstall

Use sudo make uninstall to uninstall web-greeter, but preserving web-greeter.yml and themes. Either, use sudo make uninstall_all to remove everting related to web-greeter.

Theme JavaScript API

Antergos documentation is no longer available, although it is accesible through Web Archive. Current and updated documentation is available at gh-pages.

You can access the man-pages man web-greeter for some documentation and explanation. Also, you can explore the provided themes for real use cases.

Aditionally, you can install the TypeScript types definitions inside your theme with npm:

npm install nody-greeter-types

Aditional features

Brightness control

acpi is the only tool needed to control the brightness, besides a compatible device. This functionality is based on acpilight replacement for xbacklight.

udev rules are needed to be applied before using it, check acpilight rules. Then, lightdm will need to be allowed to change backlight values, to do so add lightdm user to video group: sudo usermod -a -G video lightdm

Enable it inside /etc/lightdm/web-greeter.yml

Battery status

acpi and acpi_listen are the only tools you need (and a battery). This functionality is based on "bat" widget from "lain" awesome-wm library.

You can enable it inside /etc/lightdm/web-greeter.yml

Debugging

You can run the greeter from within your desktop session if you add the following line to the desktop file for your session located in /usr/share/xsessions/: X-LightDM-Allow-Greeter=true.

You have to log out and log back in after adding that line. Then you can run the greeter from command line.

Themes can be opened with a debug console if you set debug_mode as true inside /etc/lightdm/web-greeter.yml. Or, you could run the web-greeter with the parameter --debug. I recommend to use the last one, as it is easier and handy.

web-greeter --debug

Check web-greeter --help for more commands.

Note: Do not use lightdm --test-mode as it is not supported.

Troubleshooting

Before setting web-greeter as your LightDM Greeter, you should make sure it does work also with LightDM:

  • Run web-greeter as root with --no-sandbox flag ("Unable to determine socket to daemon" and "XLib" related errors are expected)
  • Run lightdm --test-mode. Although it's not supported, it could help to debug lightdm.

LightDM crashes and tries to recover over and over again

LightDM does this when the greeter crashes, so it could mean web-greeter was not installed correctly, or some dependencies were updated/removed after a distro update.

Import errors

If you see something like this: ImportError: libQt5WebEngineCore.so.5: undefined symbol: _ZNSt12out_of_rangeC1EPKc, version Qt_5, check out this StackOverflow response.

With some PyQt5 import errors like ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets', check out this GitHub response.

web-greeter related import errors:

  • AttributeError: module 'globals' has no attribute 'greeter' means some exception happened inside the Browser constructor, maybe related to LightDM or PyQt5.
  • ModuleNotFoundError: No module named 'resources' could mean path/to/web-greeter-clone/web-greeter/resources.py was not compiled with pyrcc5 in the build/install methods.

web-greeter's People

Contributors

lots0logs avatar jezerm avatar jkw avatar aitbits avatar berlam avatar faidoc avatar karasu avatar tlater avatar sebastiencs avatar samueldr avatar minijackson avatar paescuj avatar mpetitjean avatar cytodev avatar fallingsnow avatar artur9010 avatar litarvan avatar

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.