3.5 KiB
LightDMMock
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. Please note that the deprecation errors are intrusive for a reason.
Usage
-
Clone the repo
git clone https://git.sfs.ddnss.org/EliasSchriefer/LightDMMock
-
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>
-
Import
LightDMMock
and create a new instanceimport 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.