ayhanyalcinsoy 22ec147a64 Merge branch 'main' into 'main'
refactor: extract ComboBox styling into dedicated module, add location step

See merge request ayhanyalcinsoy/yali-rs!6
2026-06-18 11:32:28 +00:00
2026-06-17 10:16:39 +03:00
2026-05-22 23:35:27 +03:00
2026-06-18 13:19:40 +03:00
2026-06-01 00:32:03 +03:00
2026-06-17 10:08:46 +03:00
2026-06-17 10:15:20 +03:00

YALI (Yet Another Linux Installer) — Rust / egui

Rust ve egui ile yeniden yazılmış Pisi GNU/Linux kurulum aracı. YALI, canlı ortamdan sistemi kurar, paketleri kurar ve temel yapılandırmayı gerçekleştirir. Orijinal Python/Qt sürümünün modern, hızlı ve bakımı kolay bir yeniden yazımıdır.

Özellikler

  • 11 adımlı kurulum sihirbazı: Hoş Geldiniz → Konum → Klavye → Ağ → Disk Bölümleme → Kullanıcılar → Bootloader → Görüntü Yöneticisi → Özet → Kurulum → Bitir
  • İki mod: Grafik arayüz (varsayılan) ve cevap dosyasıyla otomatik kurulum (--auto-install answer.toml)
  • Demo modu: Sistem kontrollerini atlar, kurulumu simüle eder (--demo)
  • Disk bölümleme: Otomatik (GPT/MBR) veya manuel, LVM ve LUKS şifreleme desteği
  • Ağ yapılandırması: WiFi tarama (nmcli), proxy ayarları
  • Önyükleyici: GRUB aygıt/parola/zaman aşımı ayarları, çekirdek parametreleri
  • Kurtarma modu: Chroot, GRUB yeniden kurulumu, Pisi geçmişe dönme
  • OEM modu: Üretici ön kurulumu için ön tanımlı ayarlar
  • Uluslararasılaştırma: Türkçe ve İngilizce (rust-i18n ile TOML locale dosyaları)
  • Markalama sistemi: Çalışma zamanında yüklenebilir branding.toml ile logo, slayt, renk ayarları
  • Tema: Koyu/açık tema, atomik renk yönetimi, özel gradient butonlar
  • Asenkron iş kuyruğu: Tüm kurulum adımları ayrı tokio runtime'ında çalışır, mpsc kanalı ile UI güncellenir
  • Sistem kontrolleri: RAM, disk alanı, internet, UEFI, CPU, NVMe gibi 8 ön kontrol
  • Slayt gösterisi: 9 masaüstü ortamı için özel markalı slaytlar
  • Demo oturum temizliği: Canlı ortam artifact'lerini kaldırır, üretim deposu ekler

Kullanım

# Normal kurulum (root yetkisi gerekir)
sudo cargo run --release

# Demo modu (root gerekmez)
cargo run --release -- --demo

# Otomatik kurulum (cevap dosyası ile)
sudo cargo run --release -- --auto-install answer.toml

Proje Yapısı

├── src/
│   ├── main.rs              # Giriş noktası, eframe App, GUI düzeni
│   ├── installer.rs         # InstallerStep trait'i, GlobalState, WelcomeStep
│   ├── funct.rs             # Paylaşılan UI yardımcıları (form alanları, dil seçici)
│   ├── branding.rs          # Branding.toml yükleyici (logo, slayt, tema, OEM)
│   ├── ui/
│   │   ├── theme.rs         # Renkler, fontlar, Visuals, section_heading, error/warning/success kutuları
│   │   ├── buttons.rs       # Gradient butonlar (primary, secondary, danger, vb.)
│   │   ├── combobox.rs      # ComboBox yardımcıları (show_combo_box, selectable_value)
│   │   ├── combobox_stil.rs # ComboBox görsel sabitleri (weak_bg, border, text renkleri)
│   │   ├── slideshow.rs     # Otomatik ilerleyen slayt gösterisi
│   │   └── error_screen.rs  # Hata ekranı (log görüntüleyici, kopyala, yeniden dene)
│   ├── steps/
│   │   ├── location.rs      # Konum/saat dilimi + tarih/saat
│   │   ├── license.rs       # Lisans sözleşmesi
│   │   ├── keyboard.rs      # Klavye düzeni/varyant seçimi
│   │   ├── network.rs       # Ağ yapılandırması (WiFi, proxy)
│   │   ├── partition.rs     # Disk bölümleme (otomatik + manuel + LVM)
│   │   ├── users.rs         # Kullanıcı hesabı oluşturma
│   │   ├── bootloader.rs    # GRUB yapılandırması
│   │   ├── display_manager.rs # Görüntü yöneticisi ve masaüstü seçimi
│   │   ├── summary.rs       # Kurulum özeti
│   │   ├── execution.rs     # Kurulum yürütme (ilerleme çubuğu, log)
│   │   ├── finish.rs        # Tamamlanma ekranı
│   │   ├── netinstall.rs    # Ek paket grubu seçimi
│   │   └── rescue.rs        # Kurtarma modu (chroot, GRUB, Pisi takeback)
│   ├── jobs/mod.rs           # Asenkron iş kuyruğu ve tüm kurulum işleri
│   └── autoinstall/
│       ├── mod.rs           # Cevap dosyası yükleme ve state uygulama
│       └── checker.rs       # Sistem ön kontrolleri
├── locales/
│   ├── tr.toml              # Türkçe çeviriler
│   └── en.toml              # İngilizce çeviriler
├── assets/
│   ├── icons/               # UI ikonları (YALI_icon_LIGHT.svg, language-icon.svg, vb.)
│   ├── flags/               # Ülke bayrakları (~250 SVG)
│   └── *.png                # Slayt ve logo görselleri
├── branding.toml            # Varsayılan markalama yapılandırması
├── branding_en.toml         # İngilizce markalama
├── branding_tr.toml         # Türkçe markalama
└── answer-example.toml      # Örnek cevap dosyası

Kurulum İş Akışı

  1. Hoş Geldiniz — Dil seçimi, sistem kontrolleri, kurtarma modu
  2. Konum / Zaman — Saat dilimi seçimi (bölge/alan çift ComboBox), GeoIP, NTP veya manuel tarih/saat
  3. Klavye — Düzen/varyant seçimi, arama, canlı önizleme (setxkbmap)
  4. — WiFi tarama, bağlantı, proxy
  5. Disk Bölümleme — Otomatik (rehberli) veya manuel, LVM, LUKS
  6. Kullanıcılar — Hesap oluşturma, parola gücü göstergesi, root parolası
  7. Bootloader — GRUB aygıtı, zaman aşımı, parola, çekirdek parametreleri
  8. Görüntü Yöneticisi — SDDM/LightDM/GDM, masaüstü ortamı, otomatik oturum
  9. Özet — Tüm seçimlerin gözden geçirilmesi
  10. Kurulum — Slayt + ilerleme çubuğu + canlı log
  11. Bitir — Başarılı kurulum, yeniden başlat veya canlı masaüstüne dön

Bağımlılıklar

Bağımlılık Sürüm Amaç
eframe 0.27 (wgpu) egui çatısı, WebGPU çıktısı
egui_extras 0.27 (image, file, svg) Görsel yükleme, dosya diyalogları, SVG
image 0.24 PNG kod çözme
serde / toml 1.0 / 0.8 Branding ve cevap dosyası serileştirme
zbus 4.0 D-Bus iletişimi (COMAR)
tokio 1.0 (full) Asenkron iş kuyruğu
sysinfo 0.30 Sistem bilgisi (RAM, disk, OS)
rust-i18n 3.1 Uluslararasılaştırma
chrono 0.4 Tarih/saat işlemleri

Lisans

GNU General Public License v3.0

Bu proje Pisi GNU/Linux ekibi tarafından geliştirilmektedir.

S
Description
No description provided
Readme GPL-3.0 11 MiB
Yalı Latest
2026-06-15 21:49:01 +00:00
Languages
Rust 98%
Makefile 2%