build: github acik kaynak hazirligi — LICENSE/CI/topluluk dosyalari eklendi, binary'ler takipten cikarildi, README EN, kok dokumanlar docs/'a tasindi

This commit is contained in:
Alhan committed 2026-08-06 05:49:43 +03:00
1 parent cd3f573f57
commit 8972ef7225
35 files changed
+560 -151

No files matched your search

+83 -132
View File
@@ -1,162 +1,113 @@
# imajViewer
Ultra hafif görüntü izleyici. Flutter ile yazıldı — Linux & Windows desteği.
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Build](https://github.com/alhan/imajviewer/actions/workflows/build.yml/badge.svg)](https://github.com/alhan/imajviewer/actions/workflows/build.yml)
[![Release](https://img.shields.io/github/v/release/alhan/imajviewer)](https://github.com/alhan/imajviewer/releases/latest)
## Özellikler
Ultra-lightweight image viewer written in Flutter — Linux & Windows.
- **Dosya formatları:** PNG, JPEG, JFIF, WebP, BMP, GIF, WBMP
- **Pan:** Sol tık + sürükle
- **Zoom:** Fare tekerleği (imleç merkezli, rotate modunda viewport merkezli)
- **Fill/Fit geçişi:** Sol çift tık
- **Contrast ayarı:** Sağ tık + dikey sürükle
- **Saturation ayarı:** Ctrl + Sağ tık + dikey sürükle
- **Brightness ayarı:** Ctrl+Shift + Sağ tık + dikey sürükle
- **Rotate:** Shift + Sağ tık + dikey sürükle (~100px = 90°)
- **Reset (tüm efektler):** Sağ çift tık
- **Gezinme okları:** Sol/sağ alt köşede, mouse resme girince görünür (hover'da kırmızı)
- **Ayarlar (gear):** Title bar'da; klasör sıralaması (zamana/isme göre), yazdırma, kısayollar
- **Yazdırma:** Ayarlar penceresinden resmi yazıcıya gönderir (A4, sığdır)
- Sürükle-bırak ile resim açma
- Pencere boyutu/konumu hatırlama (JSON persistence)
- Varsayılan görüntü izleyici olarak ayarlanabilir
- Yeni pencere öncekinin yanında açılır (cascade — taşarsa alt satır)
- Taskbar gruplama (Linux: `StartupWMClass`, otomatik)
![imajViewer](imajviewer.png)
## Linux Kurulum
## Features
**Flutter SDK gerekmez** — `dist/` dizininde hazır .deb paketi gelir.
- **Formats:** PNG, JPEG, JFIF, WebP, BMP, GIF, WBMP
- **Pan:** Left drag
- **Zoom:** Mouse wheel (cursor-centered; viewport-centered in rotate mode)
- **Fill/Fit toggle:** Double left click
- **Contrast:** Right drag + vertical move
- **Saturation:** Ctrl + Right drag + vertical move
- **Brightness:** Ctrl+Shift + Right drag + vertical move
- **Rotate:** Shift + Right drag + vertical move (~100px = 90°)
- **Reset (all effects):** Double right click
- **Navigation arrows:** bottom corners, visible on hover
- **Settings (gear):** sort by time/name, print, shortcut info
- **Print:** send the image to a printer (A4, fit)
- Drag & drop to open images
- Window size/position memory (JSON persistence)
- Set as default image viewer
- Cascade placement for new windows
- Taskbar grouping (Linux: `StartupWMClass`)
### .deb paketi ile kurulum (Önerilen)
## Install
### Linux (.deb, recommended)
No Flutter SDK needed — grab the latest `.deb` from the
[Releases page](https://github.com/alhan/imajviewer/releases/latest):
```bash
git clone https://git.softmediadesign.com/git_alhan/imajviewer.git
cd imajviewer
sudo dpkg -i dist/imajviewer_1.0.0_amd64.deb
sudo apt-get install -f # eksik bağımlılıklar varsa
sudo dpkg -i imajviewer_*_amd64.deb
sudo apt-get install -f # install missing dependencies, if any
```
### install.sh ile kurulum (kaynaktan/build)
After install, open an image with `xdg-open <file>` or double-click it.
```bash
git clone https://git.softmediadesign.com/git_alhan/imajviewer.git
cd imajviewer
./install.sh
```
### Windows (installer)
Kurulum sonrası `xdg-open <dosya>` ile açabilir veya dosyaya çift tıklayabilirsiniz.
Aynı uygulamanın pencereleri taskbar'da otomatik gruplanır.
Download `imajviewer_setup_*.exe` from the
[Releases page](https://github.com/alhan/imajviewer/releases/latest) and run it.
The installer:
### Kaldırma
- Installs to Program Files
- Adds a Start Menu shortcut (optional desktop shortcut)
- Registers file associations (PNG, JPG, JPEG, WebP, BMP, GIF)
- Supports uninstall (Settings > Apps)
```bash
rm -rf ~/.local/lib/imajviewer ~/.local/bin/imajviewer \
~/.local/share/applications/imajviewer.desktop \
~/.local/share/icons/hicolor/64x64/apps/imajviewer.png
```
### Build from source
## Windows Kurulum
### Seçenek 1 — Inno Setup Installer (Önerilen)
`dist/imajviewer_setup_1.0.0.exe` dosyasını çift tıklayarak kurun. Yönetici yetkisi ister.
Kurulum şunları yapar:
- Program Files altına kurulum
- Başlat menüsü kısayolu
- İsteğe bağlı masaüstü kısayolu
- Kayıt defterine dosya ilişkilendirmeleri (PNG, JPG, JPEG, WebP, BMP, GIF)
- Kaldırma desteği (Ayarlar > Uygulamalar)
### Seçenek 2 — MSIX Paketi
`build\windows\x64\runner\Release\imajviewer.msix` dosyasını PowerShell ile kurun:
```powershell
Add-AppxPackage -Path "build\windows\x64\runner\Release\imajviewer.msix"
```
> **Not:** MSIX imzalı değildir. Kurulum için Windows Developer Mode açık olmalıdır
> (Ayarlar > Geliştiriciler için > Geliştirici Modu).
### Seçenek 3 — Portable (Kendin Derle)
| Gereksinim | Açıklama |
| Requirement | Notes |
|---|---|
| [Flutter SDK](https://docs.flutter.dev/get-started/install/windows) | stable channel |
| Visual Studio 2022 Build Tools | "Desktop development with C++" iş yükü |
| Windows Developer Mode | Ayarlar > Geliştiriciler için > Geliştirici Modu |
```powershell
git clone https://git.softmediadesign.com/git_alhan/imajviewer.git
cd imajviewer
flutter pub get
flutter build windows --release
```
Çıktı: `build\windows\x64\runner\Release\` dizini. `imajviewer.exe` ile birlikte tüm DLL'ler burada — taşınabilir, başka makinelere kopyalanabilir.
### Installer'ı Yeniden Oluşturma
```powershell
flutter pub get
flutter build windows --release
"C:\ProgramData\chocolatey\bin\ISCC.exe" windows\installer.iss
```
Çıktı: `dist\imajviewer_setup_1.0.0.exe`
## Klavye / Fare Kısayolları
| Etkileşim | Eylem |
|---|---|
| Sol tık + sürükle | Pan |
| Fare tekerleği | Zoom (imleç merkezli) |
| Sol çift tık | Fill / Fit geçişi |
| Sağ tık + dikey sürükle | Contrast (0.0 – 2.0) |
| Ctrl + Sağ tık + dikey sürükle | Saturation (0.0 – 2.0) |
| Ctrl+Shift + Sağ tık + dikey sürükle | Brightness (-100 – 100) |
| Shift + Sağ tık + dikey sürükle | Rotate (serbest) |
| Sağ çift tık | Reset (tüm efektler) |
| Sol / Sağ ok | Önceki / sonraki resim |
| Ctrl + Q | Pencereyi kapat |
| Ctrl + Shift + Q | Tüm pencereleri kapat |
## CI / Otomatik Build
Gitea Actions ile Windows build ve Inno Setup installer otomatik oluşturulur:
- **Trigger:** `main` dalına push
- **İş akışı:** `.gitea/workflows/build-windows.yml`
- **Çıktı:** `imajviewer.exe` + tüm DLL'ler, `imajviewer_setup_*.exe`
- **Tag bazlı release:** `v*` tag'i push'lanırsa Gitea Release oluşturulur (`GITEA_TOKEN` gerekli)
## Sistem Gereksinimleri — Donanım Hızlandırma (VM önerisi)
Uygulama yazılımsal render (llvmpipe) altında çalışır, ancak efekt sürüklemesi
büyük görsellerde kare atlayabilir. Sanal makinede akıcı kullanım için:
- **virtio-gpu + VirGL**: QEMU/libvirt'ta `virtio-vga-gl` / `virtio-gpu-gl`
(mesa VirGL yoluyla hızlandırılmış GL). `/dev/dri` görünür hale gelir,
llvmpipe yerine donanım render'ı kullanılır.
- **PCIe Passthrough**: gerçek GPU'nun VM'e bağlanması (en yüksek performans).
## Geliştirme
Flutter SDK gereklidir.
| [Flutter SDK](https://docs.flutter.dev/get-started/install) | stable channel |
| Linux: GTK dev libs | `libgtk-3-dev`, `ninja-build`, `clang`, `cmake` |
| Windows: VS 2022 Build Tools | "Desktop development with C++" workload |
```bash
flutter pub get
flutter build linux # Linux
flutter build windows # Windows
flutter build windows --release # Windows
```
### .deb paketini güncelleme
Linux output: `build/linux/x64/release/bundle/`
Windows output: `build\windows\x64\runner\Release\` (portable: copy the whole
folder including `imajviewer.exe` and all DLLs).
## Keyboard & Mouse Shortcuts
| Interaction | Action |
|---|---|
| Left drag | Pan |
| Mouse wheel | Zoom (cursor-centered) |
| Double left click | Fill / Fit toggle |
| Right drag + vertical | Contrast (0.0 – 2.0) |
| Ctrl + Right drag + vertical | Saturation (0.0 – 2.0) |
| Ctrl+Shift + Right drag + vertical | Brightness (-100 – 100) |
| Shift + Right drag + vertical | Rotate (free) |
| Double right click | Reset (all effects) |
| Left / Right arrow | Previous / next image |
| Ctrl + Q | Close window |
| Ctrl + Shift + Q | Close all windows |
## CI / Releases
GitHub Actions builds Linux `.deb` and Windows installer on every push to
`main`. Pushing a `v*` tag creates a GitHub Release with both installers as
assets.
## Development
```bash
flutter pub get
flutter analyze
flutter test
```
To rebuild the `.deb` locally:
```bash
flutter build linux --release
bash dist/rebuild-deb.sh
```
## Lisans
## License
MIT
[MIT](LICENSE)