imajViewer

Ultra hafif görüntü izleyici. Flutter ile yazıldı — Linux & Windows desteği.

Özellikler

  • 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
  • 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)

Linux Kurulum

Flutter SDK gerekmezdist/ dizininde hazır .deb paketi gelir.

.deb paketi ile kurulum (Önerilen)

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

install.sh ile kurulum (kaynaktan/build)

git clone https://git.softmediadesign.com/git_alhan/imajviewer.git
cd imajviewer
./install.sh

Kurulum sonrası xdg-open <dosya> ile açabilir veya dosyaya çift tıklayabilirsiniz. Aynı uygulamanın pencereleri taskbar'da otomatik gruplanır.

Kaldırma

rm -rf ~/.local/lib/imajviewer ~/.local/bin/imajviewer \
      ~/.local/share/applications/imajviewer.desktop \
      ~/.local/share/icons/hicolor/64x64/apps/imajviewer.png

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:

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 ıklama
Flutter SDK 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
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

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)
Ctrl + O Dosya aç
Ctrl + Tab / Ctrl + Shift + Tab Sonraki / önceki resim

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 pub get
flutter build linux    # Linux
flutter build windows  # Windows

.deb paketini güncelleme

flutter build linux --release
bash dist/rebuild-deb.sh

Lisans

MIT

Description
Ultra hafif Linux görüntü izleyici - Flutter
Readme MIT 480 MiB
Languages
Dart 41.9%
C++ 20.5%
PowerShell 15.8%
CMake 14.8%
Shell 3.9%
Other 3.1%