Swipe SVG graphics comparison with zoom and drag support.
To install precompiled version of lukaj go to latest release page and download archive for your system. Provided binaries are static executables for Windows and Linux.
If you're a Rust programmer, lukaj can be installed with cargo.
It supports two graphics backends which are enabled/disabled with
cargo features.
The use-rsvg feature is available only when installing from source, precompiled binaries
on release page include only default feature set.
| Feature name | SVG library | 2D rendering library | Precompiled binary release |
|---|---|---|---|
use-usvg (default) |
resvg | tiny-skia | yes |
use-rsvg |
librsvg | cairo | no |
Depending on the operating system and selected feature set, lukaj will require additional development libraries.
On Ubuntu Linux (click to expand)
-
When using only default
use-usvgfeature:$ sudo apt-get install libsdl2-dev $ cargo install lukaj
-
When using additional
use-rsvgfeature:$ sudo apt-get install build-essential libcairo2-dev libgdk-pixbuf-2.0-dev \ libglib2.0-dev libpango1.0-dev libsdl2-dev libxml2-dev $ cargo install lukaj --feature user-rsvg
On Windows (using MSYS2) (click to expand)
-
Install MSYS2 and run from it's terminal run:
-
For default
use-usvgfeature:$ pacman -S mingw-w64-x86_64-SDL2
-
For additional
use-rsvgfeature:$ pacman -S mingw-w64-x86_64-gtk4 mingw-w64-x86_64-gettext \ mingw-w64-x86_64-libxml2 mingw-w64-x86_64-pkgconf \ mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2
-
-
Add mingw binaries path (
C:\msys64\mingw64\bin) to systemPath -
Change default rust toolchain to
stable-gnurustup toolchain install stable-gnu rustup default stable-gnu
-
Run cargo install command
-
For default feature only:
$ cargo install lukaj
-
For additional
use-rsvgfeature:$ cargo install lukaj --features use-rsvg
-
For different setups see this GUI development with Rust and GTK4 guide.
On Mac (using homebrew) (click to expand)
brew install rust sdl2 sdl2_ttf
export LIBRARY_PATH="$LIBRARY_PATH:/opt/homebrew/lib"
cargo install lukajTo compare two SVG files run:
$ lukaj [path 1] [path 2]
Lukaj uses following mouse/keyboard controls:
| Button | Action |
|---|---|
| Left Click | Move diff separator |
| Right Click | Move images |
| Scroll | Zoom in and out |
| R | Reset images position |
| Esc | Exit |
Complete lukaj options (click to expand)
$ lukaj --help
Interactive diff tool for SVG images
Usage: lukaj [OPTIONS] [FILES]...
Arguments:
[FILES]... Files to compare
Options:
-s, --scale <VALUE> Sets a scaling factor
--backend <BACKEND> Preferred backend [default: rsvg-with-cairo]
[possible values: rsvg-with-cairo, usvg-with-skia]
-h, --help Print help
-V, --version Print version
Lukaj can be used as git difftool.
To add git diff-svg custom command, copy and paste following sections to .gitconfig file:
[difftool "lukaj"]
cmd = ~/.cargo/bin/lukaj $LOCAL $REMOTE
[alias]
diff-svg = "difftool -t lukaj -y"
