Crates.io | gtk-layer-shell-sys |
lib.rs | gtk-layer-shell-sys |
version | 0.7.1 |
source | src |
created_at | 2020-08-24 02:42:11.069582 |
updated_at | 2024-07-10 20:47:35.43598 |
description | Unsave gir-generated FFI bindings for gtk-layer-shell |
homepage | |
repository | https://github.com/pentamassiv/gtk-layer-shell-gir/tree/main/gtk-layer-shell-sys |
max_upload_size | |
id | 279979 |
size | 23,388 |
These are the unsafe FFI bindings for gtk-layer-shell. They were automatically generated from its .gir file. This crate is GTK3 only. Use gtk4-layer-shell if you need to use it with GTK4.
These are the unsafe bindings. You most likely want to use the safe wrapper. If you are sure you want the unsafe bindings, you can use the features to select the version of gtk-layer-shell. Default currently is v0_6.
Generating the bindings yourself is not necessary to be able to use it. If you want to do it anyways, here are the steps you can follow to generate the bindings yourself.
You need to have Rust, Gtk3 and gtk-layer-shell installed installed. Clone the repository AND the submodules "gir" and "gir-files".
git clone --recurse-submodules -j8 https://github.com/pentamassiv/gtk-layer-shell-gir.git
cd ./gtk-layer-shell-gir
Then you need to install gir.
cd gir
cargo install --path .
cd ..
If you regenerate the binding, because you have a new version of the GtkLayerShell gir file, copy it into the gir files folder. Now you can generate, build and test the bindings.
cd gtk-layer-shell-sys
gir -o . # Regenerate the bindings
cargo build # Build the created bindings
cargo test # Test the created bindings
cd ..
There should not have been any errors. You should now continue and generate the safe wrapper. If you want to learn more about gir, have a look at its repo or its book.
The Rust bindings for GTK3 are no longer maintained and the repo has been archived. If you are starting a new project, you should use GTK4 and thus gtk4-layer-shell right from the start.
This crate is just an unsafe wrapper for the C library so it is feature complete and not actively worked on. There are Github Actions keeping the dependencies up-to-date. If you encounter any problems, feel free to open a PR.
Pull requests are very welcome but please keep the maintenance status in mind.