This repo contains the following crates:
- gtk4-layer-shell: Build desktop shell components such as panels, notifications and wallpapers with GTK4. It can be used to anchor your windows to a corner or edge of the output, or stretch them across the entire output
- gtk4-layer-shell-sys: Unsafe bindings used by gtk-layer-shell
- gtk4-session-lock: Build lockscreens with GTK4
- gtk4-session-lock-sys: Unsafe bindings used by gtk-session-lock
The crates are language bindings to the underlying C library gtk4-layer-shell. Feature development is done upstream. The crates in this repo are automatically generated from their .gir files (Gtk4LayerShell, GTK4SessionLock). For details on how to use the crates, have a look at the individual crate's README, which can be found in their respective folders. The crates are GTK4 only.
You need to have gtk4
and gtk4-layer-shell
(the C library) installed on your system to use the crates in this repo. gtk4-layer-shell
version 1.1.0 or higher is needed if you want to use gtk4-session-lock
.
If you want to use gtk4-layer-shell and gtk4-session-lock together in a project, make sure to use the same .so file of gtk4-layer-shell
for both.
If your distribution does not provide a current enough version of gtk4-layer-shell
, you can build it from source. If you did that, you might also have to set the following two environment variables:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/lib
These crates are just wrappers for the C library so the crates in this repo are feature complete and not actively worked on. The C library is actively developed. I try to keep up with them so the crate might get frequent updates and could break things. If you encounter any problems, feel free to open a PR.
Pull requests are very welcome but please keep the maintenance status in mind.