5 releases
0.2.0 | Dec 22, 2023 |
---|---|
0.1.3 | Dec 7, 2023 |
0.1.2 | Dec 5, 2023 |
0.1.1 | Dec 3, 2023 |
0.1.0 | Nov 27, 2023 |
#565 in Images
44 downloads per month
490KB
984 lines
Interactive diff tool for SVG images.
Features
Swipe SVG graphics comparison with zoom and drag support.
Installation
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-usvg
feature:$ sudo apt-get install libsdl2-dev $ cargo install lukaj
-
When using additional
use-rsvg
feature:$ 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-usvg
feature:$ pacman -S mingw-w64-x86_64-SDL2
-
For additional
use-rsvg
feature:$ 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-gnu
rustup toolchain install stable-gnu rustup default stable-gnu
-
Run cargo install command
-
For default feature only:
$ cargo install lukaj
-
For additional
use-rsvg
feature:$ cargo install lukaj --features use-rsvg
-
For different setups see this GUI development with Rust and GTK4 guide.
Usage
To 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
Git integration
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"
Other integrations
Dependencies
~20–33MB
~589K SLoC