diff --git a/.github/workflows/linux_cli.yml b/.github/workflows/linux_cli.yml index c2d4844..8bc3bff 100644 --- a/.github/workflows/linux_cli.yml +++ b/.github/workflows/linux_cli.yml @@ -12,7 +12,7 @@ jobs: linux-cli: strategy: matrix: - toolchain: [ stable, 1.74.0 ] + toolchain: [ stable, 1.75.0 ] type: [ release ] runs-on: ubuntu-20.04 steps: diff --git a/.github/workflows/linux_gui.yml b/.github/workflows/linux_gui.yml index 88da0b0..81a3edb 100644 --- a/.github/workflows/linux_gui.yml +++ b/.github/workflows/linux_gui.yml @@ -12,7 +12,7 @@ jobs: linux-krokiet-gui: strategy: matrix: - toolchain: [ stable, 1.74.0 ] + toolchain: [ stable, 1.75.0 ] type: [ release ] runs-on: ubuntu-20.04 steps: @@ -39,7 +39,7 @@ jobs: linux-krokiet-gui-heif: strategy: matrix: - toolchain: [ stable, 1.74.0 ] + toolchain: [ stable, 1.75.0 ] type: [ release ] runs-on: ubuntu-22.04 steps: @@ -69,7 +69,7 @@ jobs: linux-gui: strategy: matrix: - toolchain: [ stable, 1.74.0 ] + toolchain: [ stable, 1.75.0 ] type: [ release ] runs-on: ubuntu-22.04 steps: diff --git a/czkawka_cli/Cargo.toml b/czkawka_cli/Cargo.toml index 8a4735e..4709a75 100644 --- a/czkawka_cli/Cargo.toml +++ b/czkawka_cli/Cargo.toml @@ -3,7 +3,7 @@ name = "czkawka_cli" version = "7.0.0" authors = ["Rafał Mikrut "] edition = "2021" -rust-version = "1.74.0" +rust-version = "1.75.0" description = "CLI frontend of Czkawka" license = "MIT" homepage = "https://github.com/qarmin/czkawka" diff --git a/czkawka_core/Cargo.toml b/czkawka_core/Cargo.toml index 906e6a0..26a26a8 100644 --- a/czkawka_core/Cargo.toml +++ b/czkawka_core/Cargo.toml @@ -3,7 +3,7 @@ name = "czkawka_core" version = "7.0.0" authors = ["Rafał Mikrut "] edition = "2021" -rust-version = "1.74.0" +rust-version = "1.75.0" description = "Core of Czkawka app" license = "MIT" homepage = "https://github.com/qarmin/czkawka" diff --git a/czkawka_gui/Cargo.toml b/czkawka_gui/Cargo.toml index 5bf688c..cb87c2c 100644 --- a/czkawka_gui/Cargo.toml +++ b/czkawka_gui/Cargo.toml @@ -3,7 +3,7 @@ name = "czkawka_gui" version = "7.0.0" authors = ["Rafał Mikrut "] edition = "2021" -rust-version = "1.74.0" +rust-version = "1.75.0" description = "GTK frontend of Czkawka" license = "MIT" homepage = "https://github.com/qarmin/czkawka" diff --git a/czkawka_gui/README.md b/czkawka_gui/README.md index 66f6062..3e8a77b 100644 --- a/czkawka_gui/README.md +++ b/czkawka_gui/README.md @@ -1,52 +1,74 @@ # Czkawka GUI + Czkawka GUI is a graphical user interface for Czkawka Core written with GTK 4. ![Screenshot from 2023-11-26 12-43-32](https://github.com/qarmin/czkawka/assets/41945903/722ed490-0be1-4dac-bcfc-182a4d0787dc) ## Requirements + Requirements depend on your platform. Prebuilt binaries are available here - https://github.com/qarmin/czkawka/releases/ ### Linux + #### Prebuild binaries - Ubuntu - `sudo apt install libgtk-4 libheif libraw ffmpeg -y` -#### Snap - - none - all needed libraries are bundled in snap [except ffmpeg](https://github.com/snapcrafters/ffmpeg/issues/73) - https://snapcraft.io/czkawka + +Ubuntu - `sudo apt install libgtk-4 libheif libraw ffmpeg -y` + +#### Snap - + +none - all needed libraries are bundled in +snap [except ffmpeg](https://github.com/snapcrafters/ffmpeg/issues/73) - https://snapcraft.io/czkawka + #### Flatpak - none - all needed libraries are bundled - https://flathub.org/apps/com.github.qarmin.czkawka + +none - all needed libraries are bundled - https://flathub.org/apps/com.github.qarmin.czkawka + ### Mac + ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install gtk4 adwaita-icon-theme ffmpeg librsvg libheif libraw ``` ### Windows -All needed libraries should be bundled in zip (except ffmpeg which you need download and unpack to location with `czkawka_gui.exe` - https://ffmpeg.org/download.html#build-windows) -You can also install the app via msys2 (webp and heif should work here) - https://www.msys2.org/#installation (czkawka package - https://packages.msys2.org/base/mingw-w64-czkawka) +All needed libraries should be bundled in zip (except ffmpeg which you need download and unpack to location +with `czkawka_gui.exe` - https://ffmpeg.org/download.html#build-windows) + +You can also install the app via msys2 (webp and heif should work here) - https://www.msys2.org/#installation (czkawka +package - https://packages.msys2.org/base/mingw-w64-czkawka) + ``` pacman -S mingw-w64-x86_64-czkawka-gui ``` + and you can create a shortcut to `C:\msys64\mingw64\bin\czkawka_gui.exe` ## Compilation -Compiling the gui is harder than compiling cli or core, because it uses gtk4 which is written in C and also requires a lot build and runtime dependencies. + +Compiling the gui is harder than compiling cli or core, because it uses gtk4 which is written in C and also requires a +lot build and runtime dependencies. ### Requirements -| Program | Minimal version | -|:---------:|:-----------------:| -| Rust | 1.74.0 | -| GTK | 4.6 | + +| Program | Minimal version | +|:-------:|:---------------:| +| Rust | 1.75.0 | +| GTK | 4.6 | ### Linux (Ubuntu, but on other OS should work similar) + ```shell sudo apt install libgtk-4-dev libheif-dev libraw-dev -y cargo run --release --bin czkawka_gui # Or with support for heif and libraw cargo run --release --bin czkawka_gui --features "heif,libraw" ``` + ### Mac + ```shell /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install rustup gtk4 adwaita-icon-theme ffmpeg librsvg libheif libraw pkg-config @@ -55,21 +77,33 @@ cargo run --release --bin czkawka_gui # Or with support for heif and libraw cargo run --release --bin czkawka_gui --features "heif,libraw" ``` + ### Windows + Currently, there is are no instructions on how to compile the app on Windows natively.
-You can check for CI for instructions how to cross-compile the app from linux to windows (uses prebuilt docker image) - [CI Instructions](../.github/workflows/windows.yml)
-There exists a mingw recipe which you can try to convert for your purposes - https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-czkawka/PKGBUILD +You can check for CI for instructions how to cross-compile the app from linux to windows (uses prebuilt docker +image) - [CI Instructions](../.github/workflows/windows.yml)
+There exists a mingw recipe which you can try to convert for your +purposes - https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-czkawka/PKGBUILD ## Limitations + Not all available features and/or components implemented here, this is the list of limitations: + - Snap versions does not allow to use the similar videos feature - Windows version does not support heif and webp files with prebuilt binaries - Prebuilt binaries for mac arm do not exist -- On Windows, text may appear very small on high resolution displays, a solution is to manually change DPI scaling for this app, see : - - recommended fix: [#787#issuecomment-1292253437](https://github.com/qarmin/czkawka/issues/787#issuecomment-1292253437) (modify gtk.css), - - or this workaround: [#867#issuecomment-1416761308](https://github.com/qarmin/czkawka/issues/863#issuecomment-1416761308) (modify windows DPI settings for this app (this works too but the text is a bit blurry)). +- On Windows, text may appear very small on high resolution displays, a solution is to manually change DPI scaling for + this app, see : + - recommended + fix: [#787#issuecomment-1292253437](https://github.com/qarmin/czkawka/issues/787#issuecomment-1292253437) (modify + gtk.css), + - or this + workaround: [#867#issuecomment-1416761308](https://github.com/qarmin/czkawka/issues/863#issuecomment-1416761308) ( + modify windows DPI settings for this app (this works too but the text is a bit blurry)). ## License + Code is distributed under MIT license. Icon was created by [jannuary](https://github.com/jannuary) and licensed CC-BY-4.0. @@ -83,12 +117,16 @@ The program is completely free to use. "Gratis to uczciwa cena" - "Free is a fair price" ## Name + Czkawka is a Polish word which means _hiccup_. -I chose this name because I wanted to hear people speaking other languages pronounce it, so feel free to spell it the way you want. +I chose this name because I wanted to hear people speaking other languages pronounce it, so feel free to spell it the +way you want. This name is not as bad as it seems, because I was also thinking about using words like _żółć_, _gżegżółka_ or _żołądź_, -but I gave up on these ideas because they contained Polish characters, which would cause difficulty in searching for the project. +but I gave up on these ideas because they contained Polish characters, which would cause difficulty in searching for the +project. -At the beginning of the program creation, if the response concerning the name was unanimously negative, I prepared myself +At the beginning of the program creation, if the response concerning the name was unanimously negative, I prepared +myself for a possible change of the name of the program, and the opinions were extremely mixed. diff --git a/instructions/Compilation.md b/instructions/Compilation.md index eaff0c7..119c239 100644 --- a/instructions/Compilation.md +++ b/instructions/Compilation.md @@ -1,12 +1,13 @@ # Compiling Czkawka from sources -This instruction is outdated and will be removed in one of next version, please look at README.md files in each module folder for more up to date instructions. +This instruction is outdated and will be removed in one of next version, please look at README.md files in each module +folder for more up to date instructions. + - [Czkawka GUI (GTK frontend)](../czkawka_gui/README.md)
- [Czkawka CLI](../czkawka_cli/README.md)
- [Czkawka Core](../czkawka_core/README.md)
- [Krokiet GUI (Slint frontend)](../krokiet/README.md)
- ## Requirements If you only want the terminal version without a GUI, just skip all the packages with `gtk` in their names. @@ -19,7 +20,7 @@ New versions of GTK fixes some bugs, so e.g. middle button selection will work o | Program | Min | What for | |---------|--------|--------------------------------------------------------------------------------------| -| Rust | 1.74.0 | The minimum version of rust does not depend on anything, so it can change frequently | +| Rust | 1.75.0 | The minimum version of rust does not depend on anything, so it can change frequently | | GTK | 4.6 | Only for the `GTK` backend | #### Debian / Ubuntu diff --git a/krokiet/Cargo.toml b/krokiet/Cargo.toml index 99015bf..9e63b78 100644 --- a/krokiet/Cargo.toml +++ b/krokiet/Cargo.toml @@ -3,7 +3,7 @@ name = "krokiet" version = "7.0.0" authors = ["Rafał Mikrut "] edition = "2021" -rust-version = "1.74.0" +rust-version = "1.75.0" description = "Slint frontend of Czkawka Core" license = "GPL-3.0-only" homepage = "https://github.com/qarmin/czkawka"