forked from SFS/LightDMMock
75 lines
3.5 KiB
Markdown
75 lines
3.5 KiB
Markdown
# LightDMMock
|
|
A LightDM Mock that is written in modern JavaScript and based on [cytodev](https://github.com/cytodev)'s [LightDMMock](https://github.com/cytodev/LightDMMock), the lightdm-webkit2-greeter [manual](https://man.archlinux.org/man/community/lightdm-webkit2-greeter/lightdm-webkit2-greeter.1.en), the [LightDM API documentation](https://people.ubuntu.com/~robert-ancell/lightdm/reference/), and the latest version of [Antergos](https://github.com/Antergos)' lightdm-webkit2-greeter [source code](https://github.com/Antergos/web-greeter). <font style="color:red">Please note that the deprecation errors are intrusive for a reason.</font>
|
|
|
|
## Usage
|
|
1. Clone the repo
|
|
```bash
|
|
git clone https://git.sfs.ddnss.org/EliasSchriefer/LightDMMock
|
|
```
|
|
|
|
2. Set the type of your JavaScript to `module` in your theme that needs mocking
|
|
```html
|
|
<script type="module" src="main.js"></script>
|
|
```
|
|
```html
|
|
<script type="module">
|
|
...
|
|
</script>
|
|
```
|
|
|
|
3. Import `LightDMMock` and create a new instance
|
|
```javascript
|
|
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](https://git.sfs.ddnss.org/EliasSchriefer/LightDMMock/license.md).
|
|
|
|
### Contributions
|
|
You are more than welcome to submit issues as well as feature requests or just a 'how-ya-doin' in the [issue tracker](https://git.sfs.ddnss.org/EliasSchriefer/LightDMMock/issues/new). Contributing to the project can be done by forking it and submitting a pull request once it's all tested and tidy.
|