1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
# libphosh-rs
The Rust bindings of [phosh][phosh]
## Development
You will need the following installed:
* Rust
* `xmlstarlet`
* Meson
* All [Phosh][phosh-deps] build dependencies
### Updating the introspection XML
If the upstream libphosh introspection `Phosh-0.gir` XML has changed, then run the following:
```
make Phosh-0.gir
```
The `main` branch of [Phosh][phosh] will be fetched as a Meson subproject, the introspection XML will be regenerated, and the result will be copied to `./Phosh-0.gir`. You should commit the changes to this repo.
### Updating the bindings
If you've updated the introspection XML, or made changes to the `Gir.toml` files, then run:
```
make
```
Note that you should *not* commit the changes that were made to `NM-1.0.gir` or `Phosh-0.gir`.
### Examples
There's two examples demoing the libphosh-rs usage:
- [hello-world.rs](./libphosh/examples/hello-world.rs) has the minimum code to spawn a shell and can be run like
```sh
WLR_BACKENDS=wayland phoc -E target/debug/examples/hello-world
```
- [custom-shell-and-lockscreen.rs](./libphosh/examples/custom-shell-and-lockscreen.rs) shows how to override the shell and lockscreen classes and can be run like
```sh
WLR_BACKENDS=wayland phoc -E target/debug/examples/custom-shell-and-lockscreen
```
### Documentation
API documentation is at <https://guidog.pages.gitlab.gnome.org/libphosh-rs/git/docs/>
[phosh]: https://gitlab.gnome.org/World/Phosh/phosh
[phosh-deps]: https://gitlab.gnome.org/World/Phosh/phosh#dependencies
|