A LightDM Mock that is written in modern JavaScript and based on cytodev's LightDMMock, the lightdm-webkit2-greeter manual, the LightDM API documentation, and the latest version of Antergos' lightdm-webkit2-greeter source code.
Go to file
EliasSchriefer 512bad6a36 Update readme
...to my style
  ...for consistency
  ...to use ES6 modules (because I want my fork to be that)
2021-08-17 10:08:20 +02:00
src version.minor++; 2017-02-24 14:28:32 +01:00
license.md Update license 2021-08-17 10:04:33 +02:00
readme.md Update readme 2021-08-17 10:08:20 +02:00

LightDMMock

A LightDM Mock that is tightly based on the source C code of Antergos' lightdm-webkit2-greeter. Please note that the deprecation errors are intrusive for a reason.

This is a rewrite in modern JavaScript.

Usage

  1. Clone the repo

    git clone https://git.sfs.ddnss.org/EliasSchriefer/LightDMMock
    
  2. Set the type of your JavaScript to module in your theme that needs mocking

    <script type="module" src="main.js"></script>
    
    <script type="module">
        ...
    </script>
    
  3. Import LightDMMock and create a new instance

    import LightDMMock from "LightDMMock/src/LightDMMock.js";
    
    window.lightdm = new LightDMMock(autofill, timeout, autoGuest);
    

Note

If you plan on using the .face files in the mock you have to include the path to LightDMMock/src. The .face files linked in users.json are absolute links to /home/[username]/.face.

Parameters of LightDMMock()

autofill: boolean

Whether or not the arrays for users, languages, layouts, and sessions need to be filled with mock data. I advise to test both to make your theme less prone to crashing.

timeout: number

Value to use for simulated autologin (this value is in seconds).

autoGuest: boolean

Whether or not to simulate automatic guest login. This will also enable a guest account in lightdm.has_guest_account.


A friendly reminder

The following functions must be provided by the custom greeter, which LightDM will call in the process of authenticating the user. This can be found in the original documentation (man pages) of the webkit-greeter, but I have posted them here for your convenience.

show_prompt(text, type)

This will be called when LightDM needs to prompt the user for some reason, such as asking for a password. The "text" parameter will be the text of the prompt, and the "type" parameter will either be "text" for a visible prompt, or "password" for a prompt that the input should be hidden.

show_message(text, type)

This will be called when LightDM needs to display some info for the user. The "text" parameter will be the text of the message, and the "type" parameter will either be "info" for an information message, or "error" for an error message that LightDM has encountered.

authentication_complete()

This function is called by LightDM when authentication has completed.

autologin_timer_expired()

This function is called by LightDM when an autologin user's login timer has expired. The greeter should reset the authentication process.

License

This project is licensed under the MIT License. You can find a copy of the license here.

Contributions

You are more than welcome to submit issues as well as feature requests or just a 'how-ya-doin' in the issue tracker. Contributing to the project can be done by forking it and submitting a pull request once it's all tested and tidy.