|Johannes Wünsche 32a9e18ff6||1 year ago|
|config||1 year ago|
|data||1 year ago|
|src||1 year ago|
|.gitignore||1 year ago|
|COPYING||1 year ago|
|Cargo.lock||1 year ago|
|Cargo.toml||1 year ago|
|README.md||1 year ago|
enkei is a wallpaper tool created to allow displaying dynamic wallpapers based on the specification format used for example in the
Gnome desktop environment.
It is designed to offer a smooth transition between wallpapers and gradual change over long and short periods of time.
For a fast handling
OpenGL to render images and blending them for transitions.
Writing a wallpaper tool is nothing new so there are other projects which are similar.
There are already solutions for animating GIFs, videos, timed, and static wallpapers in Wayland.
But the use cases were quite different from what I wanted or I wasn't happy with their handling of animations, so I started writing
- Show Static Wallpapers
- Show Dynamic Wallpapers
- Scale images to fill and fit
- Filter images after scaling to improve visuals
- Support most common image formats (PNG, JPEG, WEBP, BMP,...)
Under the hood we use image and webp which provide the most common image types.
This tool can generally be used with all compositor implementing the core protocols and the following protocols:
These are most of the time
wlroots based compositors for example:
and many more; check an incomplete list here: https://github.com/solarkraft/awesome-wlroots#compositors
||Filter Methods (Fast, Good, Best, Nearest, Bilinear, Gaussian) [default: Good]|
||Display Mode (Dynamic, Static) [default: Autodetect]|
||Scale (Fill, Fit, None) [default: Fill]|
Prebuilt images are currently only available for Fedora 34/35/rawhide via copr.
Add the copr to your system and install
# dnf copr enable jwuensche/wayland-tools # dnf install enkei
Patches for packaging of any other distribution are welcome, and will be merged gladly.
If no packages are available for your distribution, you want to manually install, or develop on
enkei you can build it yourself locally with the following steps.
You'll need the following dependencies to build this project.
git cargo wayland-devel mesa-libEGL-devel glib2-devel cairo-devel cairo-gobject-devel libwebp-devel
These are the package names on Fedora, for your favorite distribution they might differ.
Building the project
To build the project then clone it and from within the cloned directory:
$ cargo build
Installing from Local Build
You can either install
enkei via cargo, to your
$ cargo install --path .
or to any other arbitrary directory in your
$ cargo build --release $ install -Dm755 "target/release/enkei" "/usr/local/bin/enkei"
Using as a systemd-service
config/enkei.service an example service can be found to run sway as a systemd service.
How to run wayland specific daemons in systemd is well described in the ArchWiki though the article is sway specific this approach can be used in plenitude of scenarios.
Allow setting of wallpapers via IPC
A nice to have would be to send messages to the already running enkei instance to change the wallpaper shown.
ogurihas done something similar seems like a cool feature to have to avoid respawning the application.
Individual wallpapers on different displays
The base functionality for this is already present, as each output is treated individually. But logic and interface is missing to realize this.