1
0
Fork 0
mirror of synced 2024-05-17 19:03:08 +12:00
This commit is contained in:
Rafał Mikrut 2024-02-24 10:49:26 +01:00
parent 562e16cad2
commit 0d4be1600e
8 changed files with 69 additions and 30 deletions

View file

@ -12,7 +12,7 @@ jobs:
linux-cli: linux-cli:
strategy: strategy:
matrix: matrix:
toolchain: [ stable, 1.74.0 ] toolchain: [ stable, 1.75.0 ]
type: [ release ] type: [ release ]
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:

View file

@ -12,7 +12,7 @@ jobs:
linux-krokiet-gui: linux-krokiet-gui:
strategy: strategy:
matrix: matrix:
toolchain: [ stable, 1.74.0 ] toolchain: [ stable, 1.75.0 ]
type: [ release ] type: [ release ]
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
@ -39,7 +39,7 @@ jobs:
linux-krokiet-gui-heif: linux-krokiet-gui-heif:
strategy: strategy:
matrix: matrix:
toolchain: [ stable, 1.74.0 ] toolchain: [ stable, 1.75.0 ]
type: [ release ] type: [ release ]
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
@ -69,7 +69,7 @@ jobs:
linux-gui: linux-gui:
strategy: strategy:
matrix: matrix:
toolchain: [ stable, 1.74.0 ] toolchain: [ stable, 1.75.0 ]
type: [ release ] type: [ release ]
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:

View file

@ -3,7 +3,7 @@ name = "czkawka_cli"
version = "7.0.0" version = "7.0.0"
authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"] authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"]
edition = "2021" edition = "2021"
rust-version = "1.74.0" rust-version = "1.75.0"
description = "CLI frontend of Czkawka" description = "CLI frontend of Czkawka"
license = "MIT" license = "MIT"
homepage = "https://github.com/qarmin/czkawka" homepage = "https://github.com/qarmin/czkawka"

View file

@ -3,7 +3,7 @@ name = "czkawka_core"
version = "7.0.0" version = "7.0.0"
authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"] authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"]
edition = "2021" edition = "2021"
rust-version = "1.74.0" rust-version = "1.75.0"
description = "Core of Czkawka app" description = "Core of Czkawka app"
license = "MIT" license = "MIT"
homepage = "https://github.com/qarmin/czkawka" homepage = "https://github.com/qarmin/czkawka"

View file

@ -3,7 +3,7 @@ name = "czkawka_gui"
version = "7.0.0" version = "7.0.0"
authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"] authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"]
edition = "2021" edition = "2021"
rust-version = "1.74.0" rust-version = "1.75.0"
description = "GTK frontend of Czkawka" description = "GTK frontend of Czkawka"
license = "MIT" license = "MIT"
homepage = "https://github.com/qarmin/czkawka" homepage = "https://github.com/qarmin/czkawka"

View file

@ -1,52 +1,74 @@
# Czkawka GUI # Czkawka GUI
Czkawka GUI is a graphical user interface for Czkawka Core written with GTK 4. 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) ![Screenshot from 2023-11-26 12-43-32](https://github.com/qarmin/czkawka/assets/41945903/722ed490-0be1-4dac-bcfc-182a4d0787dc)
## Requirements ## Requirements
Requirements depend on your platform. Requirements depend on your platform.
Prebuilt binaries are available here - https://github.com/qarmin/czkawka/releases/ Prebuilt binaries are available here - https://github.com/qarmin/czkawka/releases/
### Linux ### Linux
#### Prebuild binaries #### Prebuild binaries
Ubuntu - `sudo apt install libgtk-4 libheif libraw ffmpeg -y`
#### Snap - Ubuntu - `sudo apt install libgtk-4 libheif libraw ffmpeg -y`
none - all needed libraries are bundled in snap [except ffmpeg](https://github.com/snapcrafters/ffmpeg/issues/73) - https://snapcraft.io/czkawka
#### Snap -
none - all needed libraries are bundled in
snap [except ffmpeg](https://github.com/snapcrafters/ffmpeg/issues/73) - https://snapcraft.io/czkawka
#### Flatpak #### 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 ### Mac
``` ```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install gtk4 adwaita-icon-theme ffmpeg librsvg libheif libraw brew install gtk4 adwaita-icon-theme ffmpeg librsvg libheif libraw
``` ```
### Windows ### 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 pacman -S mingw-w64-x86_64-czkawka-gui
``` ```
and you can create a shortcut to `C:\msys64\mingw64\bin\czkawka_gui.exe` and you can create a shortcut to `C:\msys64\mingw64\bin\czkawka_gui.exe`
## Compilation ## 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 ### Requirements
| Program | Minimal version |
|:---------:|:-----------------:| | Program | Minimal version |
| Rust | 1.74.0 | |:-------:|:---------------:|
| GTK | 4.6 | | Rust | 1.75.0 |
| GTK | 4.6 |
### Linux (Ubuntu, but on other OS should work similar) ### Linux (Ubuntu, but on other OS should work similar)
```shell ```shell
sudo apt install libgtk-4-dev libheif-dev libraw-dev -y sudo apt install libgtk-4-dev libheif-dev libraw-dev -y
cargo run --release --bin czkawka_gui cargo run --release --bin czkawka_gui
# Or with support for heif and libraw # Or with support for heif and libraw
cargo run --release --bin czkawka_gui --features "heif,libraw" cargo run --release --bin czkawka_gui --features "heif,libraw"
``` ```
### Mac ### Mac
```shell ```shell
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" /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 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 # Or with support for heif and libraw
cargo run --release --bin czkawka_gui --features "heif,libraw" cargo run --release --bin czkawka_gui --features "heif,libraw"
``` ```
### Windows ### Windows
Currently, there is are no instructions on how to compile the app on Windows natively.</br> Currently, there is are no instructions on how to compile the app on Windows natively.</br>
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)</br> You can check for CI for instructions how to cross-compile the app from linux to windows (uses prebuilt docker
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 image) - [CI Instructions](../.github/workflows/windows.yml)</br>
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 ## Limitations
Not all available features and/or components implemented here, this is the list of 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 - Snap versions does not allow to use the similar videos feature
- Windows version does not support heif and webp files with prebuilt binaries - Windows version does not support heif and webp files with prebuilt binaries
- Prebuilt binaries for mac arm do not exist - 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 : - On Windows, text may appear very small on high resolution displays, a solution is to manually change DPI scaling for
- recommended fix: [#787#issuecomment-1292253437](https://github.com/qarmin/czkawka/issues/787#issuecomment-1292253437) (modify gtk.css), this app, see :
- 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)). - 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 ## License
Code is distributed under MIT license. Code is distributed under MIT license.
Icon was created by [jannuary](https://github.com/jannuary) and licensed CC-BY-4.0. 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" "Gratis to uczciwa cena" - "Free is a fair price"
## Name ## Name
Czkawka is a Polish word which means _hiccup_. 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ź_, 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. for a possible change of the name of the program, and the opinions were extremely mixed.

View file

@ -1,12 +1,13 @@
# Compiling Czkawka from sources # 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)</br> - [Czkawka GUI (GTK frontend)](../czkawka_gui/README.md)</br>
- [Czkawka CLI](../czkawka_cli/README.md)</br> - [Czkawka CLI](../czkawka_cli/README.md)</br>
- [Czkawka Core](../czkawka_core/README.md)</br> - [Czkawka Core](../czkawka_core/README.md)</br>
- [Krokiet GUI (Slint frontend)](../krokiet/README.md)</br> - [Krokiet GUI (Slint frontend)](../krokiet/README.md)</br>
## Requirements ## Requirements
If you only want the terminal version without a GUI, just skip all the packages with `gtk` in their names. 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 | | 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 | | GTK | 4.6 | Only for the `GTK` backend |
#### Debian / Ubuntu #### Debian / Ubuntu

View file

@ -3,7 +3,7 @@ name = "krokiet"
version = "7.0.0" version = "7.0.0"
authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"] authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"]
edition = "2021" edition = "2021"
rust-version = "1.74.0" rust-version = "1.75.0"
description = "Slint frontend of Czkawka Core" description = "Slint frontend of Czkawka Core"
license = "GPL-3.0-only" license = "GPL-3.0-only"
homepage = "https://github.com/qarmin/czkawka" homepage = "https://github.com/qarmin/czkawka"