krokiet/README.md
Krokiet is a new Czkawka frontend written in Slint.
It aims to provide a more consistent experience across all platforms (Linux, Windows, macOS) compared to the previous GTK 4 frontend.
Prebuilt binaries are available for Windows 10/11, Mac and Ubuntu 22.04(base)/24.04(with additional libraries) - or distros with same/newer glibc/libraries versions.
You can download them from https://github.com/qarmin/czkawka/releases/, which contains recommendations, which variant to use depending on your needs.
Another option is to compile it yourself.
The easiest way is to install newest run and run
cargo install krokiet
which will install, the latest and optimized version of Krokiet.
Compilation with cargo build --release should produce a working binary, that without any additional dependencies should run on user os.
If you have installed new cargo, you can easily compile and install it via cargo install krokiet
By default, only femtovg (OpenGL) and the software renderer are enabled, but you can enable more renderers by compiling the app with additional features.
Most users will want to use the app with a windowing system/compositor, so features starting with winit in the name are
recommended.
For example:
cargo build --release --features "winit_skia_opengl"
cargo build --release --features "winit_software"
To run the app with a different renderer, set the SLINT_BACKEND environment variable(but app must be compiled with the appropriate feature):
SLINT_BACKEND=winit-femtovg ./target/release/krokiet
SLINT_BACKEND=software ./target/release/krokiet
SLINT_BACKEND=skia ./target/release/krokiet
If you use an invalid or non-existing backend, the app will show a warning:
slint winit: unrecognized renderer skia, falling back to FemtoVG
To check which backend is actually used, add the SLINT_DEBUG_PERFORMANCE=refresh_lazy,console,overlay environment variable:
SLINT_DEBUG_PERFORMANCE=refresh_lazy,console,overlay cargo run
You should see output like:
Slint: Build config: debug; Backend: software
By default, the Slint application will automatically scale to match your system settings, but you can also manually set the scaling factor with the SLINT_SCALE_FACTOR environment variable:
SLINT_SCALE_FACTOR=2 cargo run
By default, Czkawka was created with the fluent theme in mind, but Slint also supports other themes, which are not officially supported by this app and may look broken.
SLINT_STYLE=cupertino-light cargo run -- --path .
SLINT_STYLE=cupertino-dark cargo run -- --path .
SLINT_STYLE=material-light cargo run -- --path .
SLINT_STYLE=material-dark cargo run -- --path .
For many, it might seem surprising to abandon the existing GTK 4 frontend of Czkawka especially considering that GTK is one of the most popular GUI frameworks and replace it with a new one based on Slint, which is still relatively unknown.
This decision was driven by several key factors:
The code is licensed under the MIT license, but the entire project is licensed under GPL-3.0 due to Slint license restrictions.
All icons and images are licensed under the CC BY 4.0 license.
Why Krokiet (eng. Croquette)?
Because I like croquettes (the Polish version), the ones with meat and mushrooms wrapped in breadcrumbs... it makes my mouth water.
I also considered other dishes I like, such as pierogi, żurek, pączek, schabowy, or zapiekanka.
This name should be much easier to remember than czkawka or szyszka.