feat: slide images moved to slides/img/, direct path in TOML, slides_test binary
- Moved 16 slide PNGs from assets/ to slides/img/ - Replaced [icons] mapping section with direct paths in icon field - Added slides_test standalone binary for testing slideshows - Added default-run = "yali-rs" in Cargo.toml to fix cargo run ambiguity - Fixed edit dialog auto-resize and text field wrapping in partition.rs - Updated branding.rs to load external slides from slides/ directory - Removed [slides] section from branding.toml files - Revamped CopyFilesJob with find-based progress tracking (rsync --out-format) - Fixed install progress bar visibility logic - Tweaked auto-install CLI output with sub-progress and current file - Switched language-icon.svg to white fills for dark theme - Minor locale fixes
@@ -2,6 +2,7 @@
|
||||
name = "yali-rs"
|
||||
version = "4.0.0"
|
||||
edition = "2024"
|
||||
default-run = "yali-rs"
|
||||
|
||||
[dependencies]
|
||||
eframe = { version = "0.27", features = ["default", "wgpu"] }
|
||||
@@ -18,5 +19,13 @@ async-trait = "0.1"
|
||||
chrono = "0.4"
|
||||
xkbcommon = "0.9"
|
||||
|
||||
[[bin]]
|
||||
name = "yali-rs"
|
||||
path = "src/main.rs"
|
||||
|
||||
[[bin]]
|
||||
name = "slides_test"
|
||||
path = "src/bin/slides_test.rs"
|
||||
|
||||
[patch.crates-io]
|
||||
# Yerel mudur veya comar-api kütüphaneleri buraya eklenebilir
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
<!-- Generator: Adobe Illustrator 27.7.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Optimized" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 841.8897705 595.2755737" style="enable-background:new 0 0 841.8897705 595.2755737;" xml:space="preserve">
|
||||
<polygon style="fill:#020203;" points="512.5472412,488.2385864 542.3688354,537.3009033 558.0941772,491.724762 "/>
|
||||
<path style="fill:#020203;" d="M277.7966003,213.2223663c-1.1176147-1.0975342,1.4554749,8.9684143,5.0365906,12.5897064
|
||||
<polygon style="fill:#FFFFFF;" points="512.5472412,488.2385864 542.3688354,537.3009033 558.0941772,491.724762 "/>
|
||||
<path style="fill:#FFFFFF;" d="M277.7966003,213.2223663c-1.1176147-1.0975342,1.4554749,8.9684143,5.0365906,12.5897064
|
||||
c6.3496399,6.4062805,11.3096008,7.23172,13.9502563,7.3376465c5.8437805,0.2337646,13.0553894-1.4554596,17.3377991-3.2506104
|
||||
c4.1435852-1.767746,11.404541-5.4748993,14.1529236-10.8822479c0.5825195-1.1559601,2.1731262-3.0972137,1.1742859-7.8927765
|
||||
c-0.7579041-3.6888733-3.1064148-4.980011-5.9698181-4.7754517c-2.8634644,0.1935883-11.5323792,2.5055237-15.7253113,3.7948151
|
||||
c-4.1947021,1.2728424-12.8344116,3.9025269-16.6000366,4.7188416
|
||||
C287.3968811,215.6767426,279.1151123,214.4842987,277.7966003,213.2223663z"/>
|
||||
<path style="fill:#020203;" d="M383.9637451,333.5533752c-1.6582031-0.6026001-35.9649353-14.8140564-40.828064-17.1424255
|
||||
<path style="fill:#FFFFFF;" d="M383.9637451,333.5533752c-1.6582031-0.6026001-35.9649353-14.8140564-40.828064-17.1424255
|
||||
c-3.979248-1.9137573-13.7365417-6.0391541-18.3276062-7.9127808c12.9312439-19.9383545,21.0942688-34.984314,22.1808472-37.276123
|
||||
c2.0106506-4.1929321,15.697876-30.9757843,16.0174561-32.6248322c0.3104858-1.6709595,0.6994324-7.8434601,0.3981323-9.3098907
|
||||
c-0.3013-1.495636-5.3196411,1.3787689-12.1331482,3.6889343c-6.8244629,2.3009491-19.7940674,10.7361145-24.8032837,11.7934723
|
||||
@@ -26,7 +26,7 @@
|
||||
c2.0288696,0.8454895,18.4335022,14.2113342,22.7140503,17.1734619c4.2806396,2.9602051,21.172821,12.3851318,24.832489,13.9483643
|
||||
c3.6596985,1.5832825,17.7249756,8.0681152,18.3166809,5.8730469
|
||||
C388.7592468,347.1237793,385.6236877,334.1834412,383.9637451,333.5533752z"/>
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:#020203;" d="M304.6889954,512.2145996
|
||||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;" d="M304.6889954,512.2145996
|
||||
c3.2871399,2.0087891,6.3916626,3.6523438,9.8614197,5.2958984c6.9394836,3.4697876,14.7920837,7.1221313,22.2794495,9.8614502
|
||||
c10.2266541,3.8349609,20.4532776,6.9395142,30.6799316,9.3135376c5.6611633,1.2783203,11.8701782,2.3740234,17.8966064,3.2871094
|
||||
c0.5478516,0,16.8009033,2.0087891,20.0880432,2.0087891h16.4356689c6.3916321-0.5478516,12.4180603-0.9130859,18.8096924-1.8261719
|
||||
@@ -43,7 +43,7 @@
|
||||
c-12.6006775-4.7481079-25.7492065-10.9571533-38.1672668-19.1749878c-2.1914062-1.4609375-2.3740234-2.921875-2.3740234-4.5654297
|
||||
c0-2.7392883,2.0087891-5.2959595,5.295929-5.2959595C297.7495117,507.4664917,303.5932922,511.6667175,304.6889954,512.2145996z"/>
|
||||
<g>
|
||||
<path style="fill:#020203;" d="M639.8383789,180.4025879l-40.7682495-12.975708V48.3634644
|
||||
<path style="fill:#FFFFFF;" d="M639.8383789,180.4025879l-40.7682495-12.975708V48.3634644
|
||||
c0-3.4697266-2.5567017-5.843811-5.843811-5.843811c-2.5567017,0-84.9176636,28.3059082-91.4918823,30.6799316
|
||||
c-22.3344727,7.4448242-86.798645,29.7334595-86.798645,29.7334595l-0.000061,0.0002441
|
||||
c-1.0336304,0.2964478-2.6376953,0.7871704-4.7411499,1.4482422L252.854248,48.8499756
|
||||
@@ -57,6 +57,6 @@
|
||||
V182.0402222l199.0542603-66.2905273V409.4003296z M587.9303589,55.6682129v108.2130737l-164.4921875-52.3546143
|
||||
L587.9303589,55.6682129z M567.6870728,385.267334l-10.5206299-38.4284668l-60.5161133-18.3422241l-13.0134277,31.3044434
|
||||
l-29.2919922-8.8861084l62.1779785-152.5870361l28.5085449,8.6360474l51.9385376,187.1876831L567.6870728,385.267334z"/>
|
||||
<polygon style="fill:#020203;" points="507.8375244,300.3788452 547.7670288,312.4828491 529.5562744,247.8833618 "/>
|
||||
<polygon style="fill:#FFFFFF;" points="507.8375244,300.3788452 547.7670288,312.4828491 529.5562744,247.8833618 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
@@ -22,315 +22,6 @@ pisi_logo_light = "assets/pisi-logo-light.png"
|
||||
# Kurulum penceresinin başlığı (pencere çubuğu)
|
||||
title = "PiSi Linux Kurulumu"
|
||||
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
# [slides] – Kurulum sırasında gösterilen slaytlar
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
[slides]
|
||||
|
||||
# Slayt geçiş süresi (saniye)
|
||||
interval_secs = 6
|
||||
|
||||
|
||||
# ── Slayt ikonları → görsel dosya yolu eşlemesi ──────────────────
|
||||
# Geliştirici notu: Yeni ikon eklemek için sadece buraya satır ekle.
|
||||
[slides.icons]
|
||||
pisilogo_dark = "assets/pisi-logo-dark.png"
|
||||
pisilogo_light = "assets/pisi-logo-light.png"
|
||||
pisi = "assets/pisi-software-center.png"
|
||||
community = "assets/community.png"
|
||||
pisi_speed = "assets/pisi_speed.png"
|
||||
securety = "assets/securety.png"
|
||||
customization = "assets/customization.png"
|
||||
|
||||
budgie = "assets/budgie.png"
|
||||
budgie_applets = "assets/budgie_applets.png"
|
||||
budgie_raven = "assets/budgie_raven.png"
|
||||
budgie_gtk_theme = "assets/budgie_gtk_theme.png"
|
||||
|
||||
cinnamon = "assets/cinnamon.png"
|
||||
cinnamon_panel = "assets/cinnamon_panel.png"
|
||||
cinnamon_settings = "assets/cinnamon_settings.png"
|
||||
cinnamon_desklets = "assets/cinnamon_desklets.png"
|
||||
|
||||
gnome = "assets/gnome.png"
|
||||
gnome_search = "assets/gnome_search.png"
|
||||
gnome_extensions = "assets/gnome_extensions.png"
|
||||
|
||||
kde = "assets/kde.png"
|
||||
kde_connect = "assets/kde_connect.png"
|
||||
discover = "assets/discover.png"
|
||||
file_manager = "assets/file_manager.png"
|
||||
|
||||
lxde = "assets/lxde.png"
|
||||
lxqt = "assets/lxqt.png"
|
||||
lumina = "assets/lumina.png"
|
||||
|
||||
mate = "assets/mate.png"
|
||||
mate_settings = "assets/mate_settings.png"
|
||||
|
||||
xfce = "assets/xfce.png"
|
||||
xfce_settings = "assets/xfce_settings.png"
|
||||
xfce_panel = "assets/xfce_panel.png"
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# [[slides.items]] – Slayt içerikleri
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
#
|
||||
# Her [[slides.items]] bloğu bir slaytı tanımlar.
|
||||
#
|
||||
# Alanlar:
|
||||
# icon = Görsel için yukarıdaki [slides.icons] anahtarı
|
||||
# title = Slayt başlığı
|
||||
# description = Slayt açıklama metni
|
||||
# desktop = (isteğe bağlı) Yalnızca belirli masaüstünde göster.
|
||||
# Boş bırakılırsa tüm masaüstlerinde gösterilir.
|
||||
# Değerler: "xfce", "kde", "gnome", "mate", "budgie",
|
||||
# "cinnamon", "lxde", "lxqt", "lumina"
|
||||
#
|
||||
# Geliştirici notu:
|
||||
# Yeni bir slayt eklemek veya metni değiştirmek için yalnızca
|
||||
# buraya [[slides.items]] bloğu ekleyin / düzenleyin.
|
||||
# Rust koduna dokunmanıza gerek yoktur.
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
|
||||
# ── Tüm masaüstlerinde gösterilen ortak slaytlar ──────────────────
|
||||
|
||||
[[slides.items]]
|
||||
icon = "pisilogo"
|
||||
title = "Pisi GNU/Linux'a Hoş Geldiniz"
|
||||
description = "Pisi; hız, kararlılık ve kullanım kolaylığını bir araya getiren Türkçe destekli bir GNU/Linux dağıtımıdır."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "pisi"
|
||||
title = "PISI Paket Yöneticisi"
|
||||
description = "Binlerce pakete tek komutla erişin. `pisi install <paket>` ile ihtiyacınız olan her şeyi kolayca kurabilirsiniz."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "community"
|
||||
title = "Topluluk Desteği"
|
||||
description = "forum.pisilinux.org adresindeki aktif topluluğumuz sorularınızı yanıtlamak için hazır. Wiki sayfalarımız da her an erişilebilir."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "pisi_speed"
|
||||
title = "Hız ve Performans"
|
||||
description = "Optimize edilmiş çekirdek ve başlangıç servisleri sayesinde PisiLinux saniyeler içinde açılır ve minimum kaynak kullanır."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "securety"
|
||||
title = "Güvenlik Önce Gelir"
|
||||
description = "Düzenli güvenlik güncellemeleri, AppArmor profilleri ve güvenli varsayılan ayarlarla sisteminizi koruyun."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "customization"
|
||||
title = "Özelleştirme"
|
||||
description = "Masaüstü ortamından tema renklerine, panel düzeninden klavye kısayollarına kadar her şeyi zevkinize göre ayarlayın."
|
||||
|
||||
# ── XFCE ──────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "xfce"
|
||||
title = "PisiLinux XFCE"
|
||||
description = "Hafif, hızlı ve kullanıcı dostu XFCE masaüstü ortamı. Kaynak tüketimi düşük, performansı yüksektir."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "xfce_panel"
|
||||
title = "XFCE Panel"
|
||||
description = "Geleneksel panel düzeni ile görev çubuğu, uygulama menüsü ve sistem tepsisi her zaman elinizin altında."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "file_manager"
|
||||
title = "Thunar Dosya Yöneticisi"
|
||||
description = "Hızlı ve hafif Thunar ile dosya işlemlerinizi kolayca yapın. Ağaç görünümü, sekmeli gezinme ve özelleştirilebilir özellikler sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "xfce_settings"
|
||||
title = "Ayarlar Merkezi"
|
||||
description = "Klasik uygulama menüsüne modern bir alternatif. Whisker Menu ile uygulamaları kolayca bulun, favorilerinizi düzenleyin."
|
||||
|
||||
# ── KDE Plasma ────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "kde"
|
||||
title = "PisiLinux KDE Plasma"
|
||||
description = "Modern, özelleştirilebilir ve güçlü KDE Plasma masaüstü ortamıyla tanışın. Her şey elinizin altında."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "file_manager"
|
||||
title = "Dolphin Dosya Yöneticisi"
|
||||
description = "Sekmeli gezinme, ikili panel ve güçlü arama özelliğiyle Dolphin dosyalarınızı yönetmeyi kolaylaştırır."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "kde_connect"
|
||||
title = "KDE Bağlan"
|
||||
description = "Telefonunuzu bilgisayarınıza bağlayın. Bildirimler, dosya aktarımı ve klipboard paylaşımı KDE Connect ile mümkün."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "discover"
|
||||
title = "Discover Yazılım Merkezi"
|
||||
description = "Discover ile uygulamaları görsel arayüzden kolayca bulun, kurun ve güncelleyin."
|
||||
|
||||
# ── GNOME ─────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "gnome"
|
||||
icon = "gnome"
|
||||
title = "PisiLinux GNOME"
|
||||
description = "Sade ve odaklı GNOME masaüstü ortamı ile dikkat dağıtıcı unsurları azaltın, işinize konsantre olun."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "gnome"
|
||||
icon = "gnome_search"
|
||||
title = "GNOME Arama"
|
||||
description = "Super tuşuna basıp yazmaya başlayın. Uygulama, dosya ve ayarlara anında ulaşın."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "gnome"
|
||||
icon = "gnome_extensions"
|
||||
title = "GNOME Eklentileri"
|
||||
description = "extensions.gnome.org adresinden yüzlerce eklentiyle masaüstünüzü ihtiyaçlarınıza göre şekillendirin."
|
||||
|
||||
# ── MATE ──────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "mate"
|
||||
title = "PisiLinux MATE"
|
||||
description = "Geleneksel masaüstü düzenini sevenler için MATE. GTK+ 3 ile geliştirilmiş, modern ve akıcı bir deneyim sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "file_manager"
|
||||
title = "Caja Dosya Yöneticisi"
|
||||
description = "MATE'in güçlü dosya yöneticisi Caja ile dosya işlemlerinizi kolayca yapın. Çift panel, sekmeli gezinme ve geniş özellikler sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "mate_settings"
|
||||
title = "MATE Ayarları"
|
||||
description = "Görünüm, ekran, klavye ve daha fazlası için kapsamlı ayarlarla MATE masaüstünüzü özelleştirin."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "customization"
|
||||
title = "Zengin Uygulama Paketi"
|
||||
description = "MATE; metin editöründen görüntü görüntüleme yazılımına kadar geniş, iyi entegre edilmiş klasik uygulamalar sunar."
|
||||
|
||||
# ── Budgie ────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie"
|
||||
title = "PisiLinux Budgie"
|
||||
description = "Modern, sade ve şık Budgie masaüstü. GNOME altyapısı üzerine inşa edilmiş, kullanıcı dostudur."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie_applets"
|
||||
title = "Budgie Desktop Applets"
|
||||
description = "Budgie'nin panel appletleri sayesinde hava durumu, sistem izleyici, takvim gibi araçları kolayca ekleyin."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie_raven"
|
||||
title = "Raven Bildirim Merkezi"
|
||||
description = "Raven panelinden ses seviyesi, medya kontrolleri, bildirimler ve hızlı ayarlara erişin."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie_gtk_theme"
|
||||
title = "GTK Tema Desteği"
|
||||
description = "Budgie, GTK temalarını ve GNOME uygulamalarını sorunsuz çalıştırır, görsel bütünlük sağlar."
|
||||
|
||||
# ── Cinnamon ──────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon"
|
||||
title = "PisiLinux Cinnamon"
|
||||
description = "Geleneksel masaüstü deneyimini modern özelliklerle birleştiren Cinnamon, güçlü ve esnek bir ortam sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon_panel"
|
||||
title = "Cinnamon Paneli"
|
||||
description = "Panelinizi applet'ler, başlatıcılar ve sistem göstergeleriyle özelleştirin; klasik ama güçlü bir masaüstü deneyimi yaşayın."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon_settings"
|
||||
title = "Ayarlar Yöneticisi"
|
||||
description = "Cinnamon'un kapsamlı Ayarlar Yöneticisi aracılığıyla masaüstünüzün her yönünü özelleştirin."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon_desklets"
|
||||
title = "Cinnamon Desklets"
|
||||
description = "Masaüstü widget'ları ile notlar, saatler ve sistem bilgileri her zaman görünür kalsın."
|
||||
|
||||
# ── LXQt ──────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxqt"
|
||||
icon = "lxqt"
|
||||
title = "PisiLinux LXQt"
|
||||
description = "Hafif, hızlı ve modern LXQt masaüstü ortamı. Kaynak tüketimi düşük, performansı yüksektir."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxqt"
|
||||
icon = "file_manager"
|
||||
title = "LXQt Panel"
|
||||
description = "Geleneksel panel düzeni ile görev çubuğu, uygulama başlatıcı ve sistem tepsisi her zaman elinizin altında."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxqt"
|
||||
icon = "file_manager"
|
||||
title = "PCManFM-Qt Dosya Yöneticisi"
|
||||
description = "Hafif ve hızlı PCManFM-Qt ile dosya işlemlerini kolayca yönetin. Sekmeli gezinme ve özelleştirilebilir arayüz sunar."
|
||||
|
||||
# ── LXDE ──────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxde"
|
||||
icon = "lxde"
|
||||
title = "PisiLinux LXDE"
|
||||
description = "Efsanevi hafif masaüstü LXDE. Çok düşük kaynak tüketimi ve güvenilir yapısıyla tanınır."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxde"
|
||||
icon = "lxde"
|
||||
title = "Openbox Tabanlı"
|
||||
description = "LXDE, Openbox pencere yöneticisini kullanır. İnce ayarlar ile akıcı bir deneyim sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxde"
|
||||
icon = "file_manager"
|
||||
title = "PCManFM Dosya Yöneticisi"
|
||||
description = "PCManFM, hızlı ve hafif yapısıyla dosya işlemlerinizi kolaylaştırır, ağaç görünümü ve sekme destekler."
|
||||
|
||||
# ── Lumina ────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lumina"
|
||||
icon = "lumina"
|
||||
title = "PisiLinux Lumina"
|
||||
description = "Hafif ve bağımsız Lumina masa üstü. Qt tabanlı, BSD ve Linux sistemlerde düzgün çalışan minimal bir ortam."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lumina"
|
||||
icon = "customization"
|
||||
title = "Tema Özelleştirme"
|
||||
description = "Lumina'nın tema sistemiyle renk şemaları ve arayüz stilini kolayca özelleştirin."
|
||||
|
||||
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
# [theme] – Arayüz renk şeması (Hex)
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -20,304 +20,6 @@ title = "YALI Installation Wizard"
|
||||
# Subtitle displayed in the left sidebar
|
||||
subtitle = "YALI"
|
||||
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
# [slides] – Slides shown during installation
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
[slides]
|
||||
|
||||
# Slide transition duration (seconds)
|
||||
interval_secs = 6
|
||||
|
||||
|
||||
# ── Slide Icons → File Path Mappings ─────────────────────────────
|
||||
[slides.icons]
|
||||
pisilogo = "assets/pisilinux-logo.png"
|
||||
pisi = "assets/pisi-software-center.png"
|
||||
community = "assets/community.png"
|
||||
pisi_speed = "assets/pisi_speed.png"
|
||||
securety = "assets/securety.png"
|
||||
customization = "assets/customization.png"
|
||||
|
||||
# Masaüstü İkonları
|
||||
budgie = "assets/budgie.png"
|
||||
budgie_applets = "assets/budgie_applets.png"
|
||||
budgie_raven = "assets/budgie_raven.png"
|
||||
budgie_gtk_theme = "assets/budgie_gtk_theme.png"
|
||||
|
||||
cinnamon = "assets/cinnamon.png"
|
||||
cinnamon_panel = "assets/cinnamon_panel.png"
|
||||
cinnamon_settings = "assets/cinnamon_settings.png"
|
||||
cinnamon_desklets = "assets/cinnamon_desklets.png"
|
||||
|
||||
gnome = "assets/gnome.png"
|
||||
gnome_search = "assets/gnome_search.png"
|
||||
gnome_extensions = "assets/gnome_extensions.png"
|
||||
|
||||
kde = "assets/kde.png"
|
||||
file_manager = "assets/file_manager.png"
|
||||
kde_connect = "assets/kde_connect.png"
|
||||
discover = "assets/discover.png"
|
||||
|
||||
lxde = "assets/lxde.png"
|
||||
lxde_openbox = "assets/lxde_openbox.png"
|
||||
lxde_lxpanel = "assets/lxde_lxpanel.png"
|
||||
|
||||
lxqt = "assets/lxqt.png"
|
||||
lxqt_panel = "assets/lxqt_panel.png"
|
||||
|
||||
lumina = "assets/lumina.png"
|
||||
lumina_applications = "assets/lumina_applications.png"
|
||||
lumina_theme = "assets/lumina_theme.png"
|
||||
lumina_panel = "assets/lumina_panel.png"
|
||||
|
||||
mate = "assets/mate.png"
|
||||
mate_settings = "assets/mate_settings.png"
|
||||
mate_applications = "assets/mate_applications.png"
|
||||
|
||||
xfce = "assets/xfce.png"
|
||||
xfce_panel = "assets/xfce_panel.png"
|
||||
xfce_settings = "assets/xfce_settings.png"
|
||||
|
||||
|
||||
# ── Common Slides ────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
icon = "pisilogo"
|
||||
title = "Welcome to Pisi GNU/Linux"
|
||||
description = "Pisi is a Turkish-supported GNU/Linux distribution that combines speed, stability, and ease of use."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "pisi"
|
||||
title = "PISI Package Manager"
|
||||
description = "Access thousands of packages with a single command. Install anything you need easily with `pisi install <package>`."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "community"
|
||||
title = "Community Support"
|
||||
description = "Our active community at forum.pisilinux.org is ready to answer your questions. Our wiki pages are always accessible."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "pisi_speed"
|
||||
title = "Speed & Performance"
|
||||
description = "Thanks to an optimized kernel and startup services, PisiLinux boots in seconds and uses minimal resources."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "securety"
|
||||
title = "Security First"
|
||||
description = "Keep your system secure with regular security updates, AppArmor profiles, and secure default settings."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "customization"
|
||||
title = "Customization"
|
||||
description = "Tailor everything to your taste — from the desktop environment and theme colors to panel layout and keyboard shortcuts."
|
||||
|
||||
# ── Budgie ────────────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie"
|
||||
title = "PisiLinux Budgie"
|
||||
description = "A modern, clean, and elegant Budgie desktop. Built on the GNOME stack and user-friendly."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie_applets"
|
||||
title = "Budgie Desktop Applets"
|
||||
description = "Easily add tools like weather, system monitor, and calendar via Budgie's panel applets."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie_raven"
|
||||
title = "Raven Notification Center"
|
||||
description = "Access volume, media controls, notifications, and quick settings from the Raven panel."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie_gtk_theme"
|
||||
title = "GTK Theme Support"
|
||||
description = "Budgie runs GTK themes and GNOME applications seamlessly, ensuring visual consistency."
|
||||
|
||||
# ── Cinnamon ──────────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon"
|
||||
title = "PisiLinux Cinnamon"
|
||||
description = "Cinnamon combines the traditional desktop experience with modern features, offering a powerful and flexible environment."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon_panel"
|
||||
title = "Cinnamon Panel"
|
||||
description = "Customize your panel with applets, launchers, and system indicators for a classic yet powerful desktop."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon_settings"
|
||||
title = "Settings Manager"
|
||||
description = "Fine-tune every aspect of your Cinnamon desktop through the comprehensive Settings Manager."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon_desklets"
|
||||
title = "Cinnamon Desklets"
|
||||
description = "Keep notes, clocks, and system info always visible on your desktop with Cinnamon Desklets."
|
||||
|
||||
# ── GNOME ─────────────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
desktop = "gnome"
|
||||
icon = "gnome"
|
||||
title = "PisiLinux GNOME"
|
||||
description = "Reduce distractions and focus on your work with the clean and focused GNOME desktop environment."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "gnome"
|
||||
icon = "gnome_search"
|
||||
title = "GNOME Search"
|
||||
description = "Press the Super key and start typing. Instantly reach applications, files, and settings."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "gnome"
|
||||
icon = "gnome_extensions"
|
||||
title = "GNOME Extensions"
|
||||
description = "Shape your desktop to your needs with hundreds of extensions from extensions.gnome.org."
|
||||
|
||||
# ── KDE ───────────────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "kde"
|
||||
title = "PisiLinux KDE Plasma"
|
||||
description = "Meet the modern, customizable, and powerful KDE Plasma desktop. Everything is at your fingertips."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "file_manager"
|
||||
title = "Dolphin File Manager"
|
||||
description = "Dolphin makes managing your files easy with tabbed browsing, dual-panel view, and powerful search."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "kde_connect"
|
||||
title = "KDE Connect"
|
||||
description = "Connect your phone to your computer. Notifications, file transfer, and clipboard sharing — all with KDE Connect."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "discover"
|
||||
title = "Discover Software Center"
|
||||
description = "Easily find, install, and update applications from the visual interface with Discover."
|
||||
|
||||
# ── LXQt ──────────────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
desktop = "lxqt"
|
||||
icon = "lxqt"
|
||||
title = "PisiLinux LXQt"
|
||||
description = "A lightweight, fast, and modern LXQt desktop environment. Low resource consumption, high performance."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxqt"
|
||||
icon = "lxqt_panel"
|
||||
title = "LXQt Panel"
|
||||
description = "The traditional panel layout puts the taskbar, application launcher, and system tray always within reach."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxqt"
|
||||
icon = "file_manager"
|
||||
title = "PCManFM-Qt File Manager"
|
||||
description = "Manage files effortlessly with the lightweight and fast PCManFM-Qt. Tabbed navigation and a customizable interface."
|
||||
|
||||
# ── LXDE ──────────────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
desktop = "lxde"
|
||||
icon = "lxde"
|
||||
title = "PisiLinux LXDE"
|
||||
description = "The legendary lightweight LXDE desktop. Known for extremely low resource usage and a reliable build."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxde"
|
||||
icon = "lxde_openbox"
|
||||
title = "Openbox-Based"
|
||||
description = "LXDE uses the Openbox window manager. Fine-tune it for a smooth and responsive experience."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxde"
|
||||
icon = "file_manager"
|
||||
title = "PCManFM File Manager"
|
||||
description = "PCManFM speeds up your file operations with its fast and lightweight build, supporting tree view and tabs."
|
||||
|
||||
# ── Lumina ────────────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
desktop = "lumina"
|
||||
icon = "lumina"
|
||||
title = "PisiLinux Lumina"
|
||||
description = "A lightweight and independent Lumina desktop. Qt-based, designed to run cleanly on BSD and Linux systems."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lumina"
|
||||
icon = "lumina_applications"
|
||||
title = "Application Support"
|
||||
description = "Lumina works well with core utilities and many popular Qt apps, providing a practical everyday experience."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lumina"
|
||||
icon = "lumina_theme"
|
||||
title = "Theme Customization"
|
||||
description = "Easily customize color schemes and interface styles with Lumina's flexible theme system."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lumina"
|
||||
icon = "lumina_panel"
|
||||
title = "Lumina Panel"
|
||||
description = "A clean panel with a taskbar, application launcher, and system tray keeps your desktop organized."
|
||||
|
||||
# ── MATE ──────────────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "mate"
|
||||
title = "PisiLinux MATE"
|
||||
description = "MATE for those who love the traditional desktop layout. Developed with GTK+ 3 for a modern and smooth experience."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "file_manager"
|
||||
title = "Caja File Manager"
|
||||
description = "Manage your files easily with MATE's powerful Caja. Dual panel, tabbed navigation, and rich features."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "mate_settings"
|
||||
title = "MATE Settings"
|
||||
description = "Customize your MATE desktop with comprehensive settings for appearance, display, keyboard, and more."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "mate_applications"
|
||||
title = "Rich Application Suite"
|
||||
description = "MATE comes with a rich set of classic applications — from text editors to image viewers, all well-integrated."
|
||||
|
||||
# ── XFCE ──────────────────────────────────────────────────────────
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "xfce"
|
||||
title = "PisiLinux XFCE"
|
||||
description = "A lightweight, fast, and user-friendly XFCE desktop environment. Low resource consumption, high performance."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "xfce_panel"
|
||||
title = "XFCE Panel"
|
||||
description = "The traditional panel layout puts the taskbar, application menu, and system tray always within reach."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "file_manager"
|
||||
title = "Thunar File Manager"
|
||||
description = "Manage your files easily with the fast and lightweight Thunar. Tree view, tabbed navigation, and customizable features."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "xfce_settings"
|
||||
title = "Whisker Menu"
|
||||
description = "A modern alternative to the classic application menu. Find apps easily and organize your favorites with Whisker Menu."
|
||||
|
||||
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
# [theme] – UI Style & Color Palette
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -30,309 +30,6 @@ subtitle = "YALI"
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
[slides]
|
||||
|
||||
# Slayt geçiş süresi (saniye)
|
||||
interval_secs = 6
|
||||
|
||||
|
||||
# ── Slayt ikonları → görsel dosya yolu eşlemesi ──────────────────
|
||||
# Geliştirici notu: Yeni ikon eklemek için sadece buraya satır ekle.
|
||||
[slides.icons]
|
||||
pisilogo = "assets/pisilinux-logo.png"
|
||||
pisi = "assets/pisi-software-center.png"
|
||||
community = "assets/community.png"
|
||||
pisi_speed = "assets/pisi_speed.png"
|
||||
securety = "assets/securety.png"
|
||||
customization = "assets/customization.png"
|
||||
|
||||
budgie = "assets/budgie.png"
|
||||
budgie_applets = "assets/budgie_applets.png"
|
||||
budgie_raven = "assets/budgie_raven.png"
|
||||
budgie_gtk_theme = "assets/budgie_gtk_theme.png"
|
||||
|
||||
cinnamon = "assets/cinnamon.png"
|
||||
cinnamon_panel = "assets/cinnamon_panel.png"
|
||||
cinnamon_settings = "assets/cinnamon_settings.png"
|
||||
cinnamon_desklets = "assets/cinnamon_desklets.png"
|
||||
|
||||
gnome = "assets/gnome.png"
|
||||
gnome_search = "assets/gnome_search.png"
|
||||
gnome_extensions = "assets/gnome_extensions.png"
|
||||
|
||||
kde = "assets/kde.png"
|
||||
kde_connect = "assets/kde_connect.png"
|
||||
discover = "assets/discover.png"
|
||||
file_manager = "assets/file_manager.png"
|
||||
|
||||
lxde = "assets/lxde.png"
|
||||
lxqt = "assets/lxqt.png"
|
||||
lumina = "assets/lumina.png"
|
||||
|
||||
mate = "assets/mate.png"
|
||||
mate_settings = "assets/mate_settings.png"
|
||||
|
||||
xfce = "assets/xfce.png"
|
||||
xfce_settings = "assets/xfce_settings.png"
|
||||
xfce_panel = "assets/xfce_panel.png"
|
||||
|
||||
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
# [[slides.items]] – Slayt içerikleri
|
||||
# ══════════════════════════════════════════════════════════════════
|
||||
#
|
||||
# Her [[slides.items]] bloğu bir slaytı tanımlar.
|
||||
#
|
||||
# Alanlar:
|
||||
# icon = Görsel için yukarıdaki [slides.icons] anahtarı
|
||||
# title = Slayt başlığı
|
||||
# description = Slayt açıklama metni
|
||||
# desktop = (isteğe bağlı) Yalnızca belirli masaüstünde göster.
|
||||
# Boş bırakılırsa tüm masaüstlerinde gösterilir.
|
||||
# Değerler: "xfce", "kde", "gnome", "mate", "budgie",
|
||||
# "cinnamon", "lxde", "lxqt", "lumina"
|
||||
#
|
||||
# Geliştirici notu:
|
||||
# Yeni bir slayt eklemek veya metni değiştirmek için yalnızca
|
||||
# buraya [[slides.items]] bloğu ekleyin / düzenleyin.
|
||||
# Rust koduna dokunmanıza gerek yoktur.
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
|
||||
# ── Tüm masaüstlerinde gösterilen ortak slaytlar ──────────────────
|
||||
|
||||
[[slides.items]]
|
||||
icon = "pisilogo"
|
||||
title = "Pisi GNU/Linux'a Hoş Geldiniz"
|
||||
description = "Pisi; hız, kararlılık ve kullanım kolaylığını bir araya getiren Türkçe destekli bir GNU/Linux dağıtımıdır."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "pisi"
|
||||
title = "PISI Paket Yöneticisi"
|
||||
description = "Binlerce pakete tek komutla erişin. `pisi install <paket>` ile ihtiyacınız olan her şeyi kolayca kurabilirsiniz."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "community"
|
||||
title = "Topluluk Desteği"
|
||||
description = "forum.pisilinux.org adresindeki aktif topluluğumuz sorularınızı yanıtlamak için hazır. Wiki sayfalarımız da her an erişilebilir."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "pisi_speed"
|
||||
title = "Hız ve Performans"
|
||||
description = "Optimize edilmiş çekirdek ve başlangıç servisleri sayesinde PisiLinux saniyeler içinde açılır ve minimum kaynak kullanır."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "securety"
|
||||
title = "Güvenlik Önce Gelir"
|
||||
description = "Düzenli güvenlik güncellemeleri, AppArmor profilleri ve güvenli varsayılan ayarlarla sisteminizi koruyun."
|
||||
|
||||
[[slides.items]]
|
||||
icon = "customization"
|
||||
title = "Özelleştirme"
|
||||
description = "Masaüstü ortamından tema renklerine, panel düzeninden klavye kısayollarına kadar her şeyi zevkinize göre ayarlayın."
|
||||
|
||||
# ── XFCE ──────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "xfce"
|
||||
title = "PisiLinux XFCE"
|
||||
description = "Hafif, hızlı ve kullanıcı dostu XFCE masaüstü ortamı. Kaynak tüketimi düşük, performansı yüksektir."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "xfce_panel"
|
||||
title = "XFCE Panel"
|
||||
description = "Geleneksel panel düzeni ile görev çubuğu, uygulama menüsü ve sistem tepsisi her zaman elinizin altında."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "file_manager"
|
||||
title = "Thunar Dosya Yöneticisi"
|
||||
description = "Hızlı ve hafif Thunar ile dosya işlemlerinizi kolayca yapın. Ağaç görünümü, sekmeli gezinme ve özelleştirilebilir özellikler sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "xfce"
|
||||
icon = "xfce_settings"
|
||||
title = "Ayarlar Merkezi"
|
||||
description = "Klasik uygulama menüsüne modern bir alternatif. Whisker Menu ile uygulamaları kolayca bulun, favorilerinizi düzenleyin."
|
||||
|
||||
# ── KDE Plasma ────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "kde"
|
||||
title = "PisiLinux KDE Plasma"
|
||||
description = "Modern, özelleştirilebilir ve güçlü KDE Plasma masaüstü ortamıyla tanışın. Her şey elinizin altında."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "file_manager"
|
||||
title = "Dolphin Dosya Yöneticisi"
|
||||
description = "Sekmeli gezinme, ikili panel ve güçlü arama özelliğiyle Dolphin dosyalarınızı yönetmeyi kolaylaştırır."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "kde_connect"
|
||||
title = "KDE Bağlan"
|
||||
description = "Telefonunuzu bilgisayarınıza bağlayın. Bildirimler, dosya aktarımı ve klipboard paylaşımı KDE Connect ile mümkün."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "kde"
|
||||
icon = "discover"
|
||||
title = "Discover Yazılım Merkezi"
|
||||
description = "Discover ile uygulamaları görsel arayüzden kolayca bulun, kurun ve güncelleyin."
|
||||
|
||||
# ── GNOME ─────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "gnome"
|
||||
icon = "gnome"
|
||||
title = "PisiLinux GNOME"
|
||||
description = "Sade ve odaklı GNOME masaüstü ortamı ile dikkat dağıtıcı unsurları azaltın, işinize konsantre olun."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "gnome"
|
||||
icon = "gnome_search"
|
||||
title = "GNOME Arama"
|
||||
description = "Super tuşuna basıp yazmaya başlayın. Uygulama, dosya ve ayarlara anında ulaşın."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "gnome"
|
||||
icon = "gnome_extensions"
|
||||
title = "GNOME Eklentileri"
|
||||
description = "extensions.gnome.org adresinden yüzlerce eklentiyle masaüstünüzü ihtiyaçlarınıza göre şekillendirin."
|
||||
|
||||
# ── MATE ──────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "mate"
|
||||
title = "PisiLinux MATE"
|
||||
description = "Geleneksel masaüstü düzenini sevenler için MATE. GTK+ 3 ile geliştirilmiş, modern ve akıcı bir deneyim sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "file_manager"
|
||||
title = "Caja Dosya Yöneticisi"
|
||||
description = "MATE'in güçlü dosya yöneticisi Caja ile dosya işlemlerinizi kolayca yapın. Çift panel, sekmeli gezinme ve geniş özellikler sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "mate_settings"
|
||||
title = "MATE Ayarları"
|
||||
description = "Görünüm, ekran, klavye ve daha fazlası için kapsamlı ayarlarla MATE masaüstünüzü özelleştirin."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "mate"
|
||||
icon = "customization"
|
||||
title = "Zengin Uygulama Paketi"
|
||||
description = "MATE; metin editöründen görüntü görüntüleme yazılımına kadar geniş, iyi entegre edilmiş klasik uygulamalar sunar."
|
||||
|
||||
# ── Budgie ────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie"
|
||||
title = "PisiLinux Budgie"
|
||||
description = "Modern, sade ve şık Budgie masaüstü. GNOME altyapısı üzerine inşa edilmiş, kullanıcı dostudur."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie_applets"
|
||||
title = "Budgie Desktop Applets"
|
||||
description = "Budgie'nin panel appletleri sayesinde hava durumu, sistem izleyici, takvim gibi araçları kolayca ekleyin."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie_raven"
|
||||
title = "Raven Bildirim Merkezi"
|
||||
description = "Raven panelinden ses seviyesi, medya kontrolleri, bildirimler ve hızlı ayarlara erişin."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "budgie"
|
||||
icon = "budgie_gtk_theme"
|
||||
title = "GTK Tema Desteği"
|
||||
description = "Budgie, GTK temalarını ve GNOME uygulamalarını sorunsuz çalıştırır, görsel bütünlük sağlar."
|
||||
|
||||
# ── Cinnamon ──────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon"
|
||||
title = "PisiLinux Cinnamon"
|
||||
description = "Geleneksel masaüstü deneyimini modern özelliklerle birleştiren Cinnamon, güçlü ve esnek bir ortam sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon_panel"
|
||||
title = "Cinnamon Paneli"
|
||||
description = "Panelinizi applet'ler, başlatıcılar ve sistem göstergeleriyle özelleştirin; klasik ama güçlü bir masaüstü deneyimi yaşayın."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon_settings"
|
||||
title = "Ayarlar Yöneticisi"
|
||||
description = "Cinnamon'un kapsamlı Ayarlar Yöneticisi aracılığıyla masaüstünüzün her yönünü özelleştirin."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "cinnamon_desklets"
|
||||
title = "Cinnamon Desklets"
|
||||
description = "Masaüstü widget'ları ile notlar, saatler ve sistem bilgileri her zaman görünür kalsın."
|
||||
|
||||
# ── LXQt ──────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxqt"
|
||||
icon = "lxqt"
|
||||
title = "PisiLinux LXQt"
|
||||
description = "Hafif, hızlı ve modern LXQt masaüstü ortamı. Kaynak tüketimi düşük, performansı yüksektir."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxqt"
|
||||
icon = "file_manager"
|
||||
title = "LXQt Panel"
|
||||
description = "Geleneksel panel düzeni ile görev çubuğu, uygulama başlatıcı ve sistem tepsisi her zaman elinizin altında."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxqt"
|
||||
icon = "file_manager"
|
||||
title = "PCManFM-Qt Dosya Yöneticisi"
|
||||
description = "Hafif ve hızlı PCManFM-Qt ile dosya işlemlerini kolayca yönetin. Sekmeli gezinme ve özelleştirilebilir arayüz sunar."
|
||||
|
||||
# ── LXDE ──────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxde"
|
||||
icon = "lxde"
|
||||
title = "PisiLinux LXDE"
|
||||
description = "Efsanevi hafif masaüstü LXDE. Çok düşük kaynak tüketimi ve güvenilir yapısıyla tanınır."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxde"
|
||||
icon = "lxde"
|
||||
title = "Openbox Tabanlı"
|
||||
description = "LXDE, Openbox pencere yöneticisini kullanır. İnce ayarlar ile akıcı bir deneyim sunar."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lxde"
|
||||
icon = "file_manager"
|
||||
title = "PCManFM Dosya Yöneticisi"
|
||||
description = "PCManFM, hızlı ve hafif yapısıyla dosya işlemlerinizi kolaylaştırır, ağaç görünümü ve sekme destekler."
|
||||
|
||||
# ── Lumina ────────────────────────────────────────────────────────
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lumina"
|
||||
icon = "lumina"
|
||||
title = "PisiLinux Lumina"
|
||||
description = "Hafif ve bağımsız Lumina masa üstü. Qt tabanlı, BSD ve Linux sistemlerde düzgün çalışan minimal bir ortam."
|
||||
|
||||
[[slides.items]]
|
||||
desktop = "lumina"
|
||||
icon = "customization"
|
||||
title = "Tema Özelleştirme"
|
||||
description = "Lumina'nın tema sistemiyle renk şemaları ve arayüz stilini kolayca özelleştirin."
|
||||
|
||||
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
# [theme] – Arayüz renk şeması (Hex)
|
||||
# ──────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -98,7 +98,7 @@ finish_title = "Installation Complete"
|
||||
# ── Execution (extra) ─────────────────────────────────────
|
||||
install_failed = "Installation failed"
|
||||
install_done = "Installation complete! Click Next to continue."
|
||||
install_current_file = "Current file"
|
||||
install_current_file = "Copy file"
|
||||
retry_install = "Retry"
|
||||
finish_next = "Finish →"
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ finish_title = "Kurulum Tamamlandı"
|
||||
# ── Execution (ek) ────────────────────────────────────────
|
||||
install_failed = "Kurulum başarısız"
|
||||
install_done = "Kurulum tamamlandı! Devam etmek için İleri'ye basın."
|
||||
install_current_file = "İşlemdeki dosya"
|
||||
install_current_file = "Kopyalanan dosya"
|
||||
retry_install = "Yeniden Dene"
|
||||
finish_next = "Tamamlandı →"
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,243 @@
|
||||
# ╔══════════════════════════════════════════════════════════════════╗
|
||||
# ║ Yali-RS — Slide Content (English) ║
|
||||
# ╚══════════════════════════════════════════════════════════════════╝
|
||||
|
||||
# Slide transition duration (seconds)
|
||||
interval_secs = 6
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/pisilinux-logo.png"
|
||||
title = "Welcome to Pisi GNU/Linux"
|
||||
description = "Pisi is a Turkish-supported GNU/Linux distribution that combines speed, stability, and ease of use."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/pisi-software-center.png"
|
||||
title = "PISI Package Manager"
|
||||
description = "Access thousands of packages with a single command. Install anything you need easily with `pisi install <package>`."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/community.png"
|
||||
title = "Community Support"
|
||||
description = "Our active community at forum.pisilinux.org is ready to answer your questions. Our wiki pages are always accessible."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/pisi_speed.png"
|
||||
title = "Speed & Performance"
|
||||
description = "Thanks to an optimized kernel and startup services, PisiLinux boots in seconds and uses minimal resources."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/securety.png"
|
||||
title = "Security First"
|
||||
description = "Keep your system secure with regular security updates, AppArmor profiles, and secure default settings."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/customization.png"
|
||||
title = "Customization"
|
||||
description = "Tailor everything to your taste — from the desktop environment and theme colors to panel layout and keyboard shortcuts."
|
||||
|
||||
# ── Budgie ────────────────────────────────────────────────────────
|
||||
[[items]]
|
||||
desktop = "budgie"
|
||||
icon = "slides/img/budgie.png"
|
||||
title = "PisiLinux Budgie"
|
||||
description = "A modern, clean, and elegant Budgie desktop. Built on the GNOME stack and user-friendly."
|
||||
|
||||
[[items]]
|
||||
desktop = "budgie"
|
||||
icon = "slides/img/budgie_applets.png"
|
||||
title = "Budgie Desktop Applets"
|
||||
description = "Easily add tools like weather, system monitor, and calendar via Budgie's panel applets."
|
||||
|
||||
[[items]]
|
||||
desktop = "budgie"
|
||||
icon = "slides/img/budgie_raven.png"
|
||||
title = "Raven Notification Center"
|
||||
description = "Access volume, media controls, notifications, and quick settings from the Raven panel."
|
||||
|
||||
[[items]]
|
||||
desktop = "budgie"
|
||||
icon = "slides/img/budgie_gtk_theme.png"
|
||||
title = "GTK Theme Support"
|
||||
description = "Budgie runs GTK themes and GNOME applications seamlessly, ensuring visual consistency."
|
||||
|
||||
# ── Cinnamon ──────────────────────────────────────────────────────
|
||||
[[items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "slides/img/cinnamon.png"
|
||||
title = "PisiLinux Cinnamon"
|
||||
description = "Cinnamon combines the traditional desktop experience with modern features, offering a powerful and flexible environment."
|
||||
|
||||
[[items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "slides/img/cinnamon_panel.png"
|
||||
title = "Cinnamon Panel"
|
||||
description = "Customize your panel with applets, launchers, and system indicators for a classic yet powerful desktop."
|
||||
|
||||
[[items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "slides/img/cinnamon_settings.png"
|
||||
title = "Settings Manager"
|
||||
description = "Fine-tune every aspect of your Cinnamon desktop through the comprehensive Settings Manager."
|
||||
|
||||
[[items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "slides/img/cinnamon_desklets.png"
|
||||
title = "Cinnamon Desklets"
|
||||
description = "Keep notes, clocks, and system info always visible on your desktop with Cinnamon Desklets."
|
||||
|
||||
# ── GNOME ─────────────────────────────────────────────────────────
|
||||
[[items]]
|
||||
desktop = "gnome"
|
||||
icon = "slides/img/gnome.png"
|
||||
title = "PisiLinux GNOME"
|
||||
description = "Reduce distractions and focus on your work with the clean and focused GNOME desktop environment."
|
||||
|
||||
[[items]]
|
||||
desktop = "gnome"
|
||||
icon = "slides/img/gnome_search.png"
|
||||
title = "GNOME Search"
|
||||
description = "Press the Super key and start typing. Instantly reach applications, files, and settings."
|
||||
|
||||
[[items]]
|
||||
desktop = "gnome"
|
||||
icon = "slides/img/gnome_extensions.png"
|
||||
title = "GNOME Extensions"
|
||||
description = "Shape your desktop to your needs with hundreds of extensions from extensions.gnome.org."
|
||||
|
||||
# ── KDE ───────────────────────────────────────────────────────────
|
||||
[[items]]
|
||||
desktop = "kde"
|
||||
icon = "slides/img/kde.png"
|
||||
title = "PisiLinux KDE Plasma"
|
||||
description = "Meet the modern, customizable, and powerful KDE Plasma desktop. Everything is at your fingertips."
|
||||
|
||||
[[items]]
|
||||
desktop = "kde"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "Dolphin File Manager"
|
||||
description = "Dolphin makes managing your files easy with tabbed browsing, dual-panel view, and powerful search."
|
||||
|
||||
[[items]]
|
||||
desktop = "kde"
|
||||
icon = "slides/img/kde_connect.png"
|
||||
title = "KDE Connect"
|
||||
description = "Connect your phone to your computer. Notifications, file transfer, and clipboard sharing — all with KDE Connect."
|
||||
|
||||
[[items]]
|
||||
desktop = "kde"
|
||||
icon = "slides/img/discover.png"
|
||||
title = "Discover Software Center"
|
||||
description = "Easily find, install, and update applications from the visual interface with Discover."
|
||||
|
||||
# ── LXQt ──────────────────────────────────────────────────────────
|
||||
[[items]]
|
||||
desktop = "lxqt"
|
||||
icon = "slides/img/lxqt.png"
|
||||
title = "PisiLinux LXQt"
|
||||
description = "A lightweight, fast, and modern LXQt desktop environment. Low resource consumption, high performance."
|
||||
|
||||
[[items]]
|
||||
desktop = "lxqt"
|
||||
icon = "slides/img/lxqt_panel.png"
|
||||
title = "LXQt Panel"
|
||||
description = "The traditional panel layout puts the taskbar, application launcher, and system tray always within reach."
|
||||
|
||||
[[items]]
|
||||
desktop = "lxqt"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "PCManFM-Qt File Manager"
|
||||
description = "Manage files effortlessly with the lightweight and fast PCManFM-Qt. Tabbed navigation and a customizable interface."
|
||||
|
||||
# ── LXDE ──────────────────────────────────────────────────────────
|
||||
[[items]]
|
||||
desktop = "lxde"
|
||||
icon = "slides/img/lxde.png"
|
||||
title = "PisiLinux LXDE"
|
||||
description = "The legendary lightweight LXDE desktop. Known for extremely low resource usage and a reliable build."
|
||||
|
||||
[[items]]
|
||||
desktop = "lxde"
|
||||
icon = "slides/img/lxde_openbox.png"
|
||||
title = "Openbox-Based"
|
||||
description = "LXDE uses the Openbox window manager. Fine-tune it for a smooth and responsive experience."
|
||||
|
||||
[[items]]
|
||||
desktop = "lxde"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "PCManFM File Manager"
|
||||
description = "PCManFM speeds up your file operations with its fast and lightweight build, supporting tree view and tabs."
|
||||
|
||||
# ── Lumina ────────────────────────────────────────────────────────
|
||||
[[items]]
|
||||
desktop = "lumina"
|
||||
icon = "slides/img/lumina.png"
|
||||
title = "PisiLinux Lumina"
|
||||
description = "A lightweight and independent Lumina desktop. Qt-based, designed to run cleanly on BSD and Linux systems."
|
||||
|
||||
[[items]]
|
||||
desktop = "lumina"
|
||||
icon = "slides/img/lumina_applications.png"
|
||||
title = "Application Support"
|
||||
description = "Lumina works well with core utilities and many popular Qt apps, providing a practical everyday experience."
|
||||
|
||||
[[items]]
|
||||
desktop = "lumina"
|
||||
icon = "slides/img/lumina_theme.png"
|
||||
title = "Theme Customization"
|
||||
description = "Easily customize color schemes and interface styles with Lumina's flexible theme system."
|
||||
|
||||
[[items]]
|
||||
desktop = "lumina"
|
||||
icon = "slides/img/lumina_panel.png"
|
||||
title = "Lumina Panel"
|
||||
description = "A clean panel with a taskbar, application launcher, and system tray keeps your desktop organized."
|
||||
|
||||
# ── MATE ──────────────────────────────────────────────────────────
|
||||
[[items]]
|
||||
desktop = "mate"
|
||||
icon = "slides/img/mate.png"
|
||||
title = "PisiLinux MATE"
|
||||
description = "MATE for those who love the traditional desktop layout. Developed with GTK+ 3 for a modern and smooth experience."
|
||||
|
||||
[[items]]
|
||||
desktop = "mate"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "Caja File Manager"
|
||||
description = "Manage your files easily with MATE's powerful Caja. Dual panel, tabbed navigation, and rich features."
|
||||
|
||||
[[items]]
|
||||
desktop = "mate"
|
||||
icon = "slides/img/mate_settings.png"
|
||||
title = "MATE Settings"
|
||||
description = "Customize your MATE desktop with comprehensive settings for appearance, display, keyboard, and more."
|
||||
|
||||
[[items]]
|
||||
desktop = "mate"
|
||||
icon = "slides/img/mate_applications.png"
|
||||
title = "Rich Application Suite"
|
||||
description = "MATE comes with a rich set of classic applications — from text editors to image viewers, all well-integrated."
|
||||
|
||||
# ── XFCE ──────────────────────────────────────────────────────────
|
||||
[[items]]
|
||||
desktop = "xfce"
|
||||
icon = "slides/img/xfce.png"
|
||||
title = "PisiLinux XFCE"
|
||||
description = "A lightweight, fast, and user-friendly XFCE desktop environment. Low resource consumption, high performance."
|
||||
|
||||
[[items]]
|
||||
desktop = "xfce"
|
||||
icon = "slides/img/xfce_panel.png"
|
||||
title = "XFCE Panel"
|
||||
description = "The traditional panel layout puts the taskbar, application menu, and system tray always within reach."
|
||||
|
||||
[[items]]
|
||||
desktop = "xfce"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "Thunar File Manager"
|
||||
description = "Manage your files easily with the fast and lightweight Thunar. Tree view, tabbed navigation, and customizable features."
|
||||
|
||||
[[items]]
|
||||
desktop = "xfce"
|
||||
icon = "slides/img/xfce_settings.png"
|
||||
title = "Whisker Menu"
|
||||
description = "A modern alternative to the classic application menu. Find apps easily and organize your favorites with Whisker Menu."
|
||||
@@ -0,0 +1,240 @@
|
||||
# ╔══════════════════════════════════════════════════════════════════╗
|
||||
# ║ Yali-RS — Slayt İçerikleri (Türkçe) ║
|
||||
# ╚══════════════════════════════════════════════════════════════════╝
|
||||
|
||||
# Slayt geçiş süresi (saniye)
|
||||
interval_secs = 6
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/pisilinux-logo.png"
|
||||
title = "Pisi GNU/Linux'a Hoş Geldiniz"
|
||||
description = "Pisi; hız, kararlılık ve kullanım kolaylığını bir araya getiren Türkçe destekli bir GNU/Linux dağıtımıdır."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/pisi-software-center.png"
|
||||
title = "PISI Paket Yöneticisi"
|
||||
description = "Binlerce pakete tek komutla erişin. `pisi install <paket>` ile ihtiyacınız olan her şeyi kolayca kurabilirsiniz."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/community.png"
|
||||
title = "Topluluk Desteği"
|
||||
description = "forum.pisilinux.org adresindeki aktif topluluğumuz sorularınızı yanıtlamak için hazır. Wiki sayfalarımız da her an erişilebilir."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/pisi_speed.png"
|
||||
title = "Hız ve Performans"
|
||||
description = "Optimize edilmiş çekirdek ve başlangıç servisleri sayesinde PisiLinux saniyeler içinde açılır ve minimum kaynak kullanır."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/securety.png"
|
||||
title = "Güvenlik Önce Gelir"
|
||||
description = "Düzenli güvenlik güncellemeleri, AppArmor profilleri ve güvenli varsayılan ayarlarla sisteminizi koruyun."
|
||||
|
||||
[[items]]
|
||||
icon = "slides/img/customization.png"
|
||||
title = "Özelleştirme"
|
||||
description = "Masaüstü ortamından tema renklerine, panel düzeninden klavye kısayollarına kadar her şeyi zevkinize göre ayarlayın."
|
||||
|
||||
# ── XFCE ──────────────────────────────────────────────────────────
|
||||
|
||||
[[items]]
|
||||
desktop = "xfce"
|
||||
icon = "slides/img/xfce.png"
|
||||
title = "PisiLinux XFCE"
|
||||
description = "Hafif, hızlı ve kullanıcı dostu XFCE masaüstü ortamı. Kaynak tüketimi düşük, performansı yüksektir."
|
||||
|
||||
[[items]]
|
||||
desktop = "xfce"
|
||||
icon = "slides/img/xfce_panel.png"
|
||||
title = "XFCE Panel"
|
||||
description = "Geleneksel panel düzeni ile görev çubuğu, uygulama menüsü ve sistem tepsisi her zaman elinizin altında."
|
||||
|
||||
[[items]]
|
||||
desktop = "xfce"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "Thunar Dosya Yöneticisi"
|
||||
description = "Hızlı ve hafif Thunar ile dosya işlemlerinizi kolayca yapın. Ağaç görünümü, sekmeli gezinme ve özelleştirilebilir özellikler sunar."
|
||||
|
||||
[[items]]
|
||||
desktop = "xfce"
|
||||
icon = "slides/img/xfce_settings.png"
|
||||
title = "Ayarlar Merkezi"
|
||||
description = "Klasik uygulama menüsüne modern bir alternatif. Whisker Menu ile uygulamaları kolayca bulun, favorilerinizi düzenleyin."
|
||||
|
||||
# ── KDE Plasma ────────────────────────────────────────────────────
|
||||
|
||||
[[items]]
|
||||
desktop = "kde"
|
||||
icon = "slides/img/kde.png"
|
||||
title = "PisiLinux KDE Plasma"
|
||||
description = "Modern, özelleştirilebilir ve güçlü KDE Plasma masaüstü ortamıyla tanışın. Her şey elinizin altında."
|
||||
|
||||
[[items]]
|
||||
desktop = "kde"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "Dolphin Dosya Yöneticisi"
|
||||
description = "Sekmeli gezinme, ikili panel ve güçlü arama özelliğiyle Dolphin dosyalarınızı yönetmeyi kolaylaştırır."
|
||||
|
||||
[[items]]
|
||||
desktop = "kde"
|
||||
icon = "slides/img/kde_connect.png"
|
||||
title = "KDE Bağlan"
|
||||
description = "Telefonunuzu bilgisayarınıza bağlayın. Bildirimler, dosya aktarımı ve klipboard paylaşımı KDE Connect ile mümkün."
|
||||
|
||||
[[items]]
|
||||
desktop = "kde"
|
||||
icon = "slides/img/discover.png"
|
||||
title = "Discover Yazılım Merkezi"
|
||||
description = "Discover ile uygulamaları görsel arayüzden kolayca bulun, kurun ve güncelleyin."
|
||||
|
||||
# ── GNOME ─────────────────────────────────────────────────────────
|
||||
|
||||
[[items]]
|
||||
desktop = "gnome"
|
||||
icon = "slides/img/gnome.png"
|
||||
title = "PisiLinux GNOME"
|
||||
description = "Sade ve odaklı GNOME masaüstü ortamı ile dikkat dağıtıcı unsurları azaltın, işinize konsantre olun."
|
||||
|
||||
[[items]]
|
||||
desktop = "gnome"
|
||||
icon = "slides/img/gnome_search.png"
|
||||
title = "GNOME Arama"
|
||||
description = "Super tuşuna basıp yazmaya başlayın. Uygulama, dosya ve ayarlara anında ulaşın."
|
||||
|
||||
[[items]]
|
||||
desktop = "gnome"
|
||||
icon = "slides/img/gnome_extensions.png"
|
||||
title = "GNOME Eklentileri"
|
||||
description = "extensions.gnome.org adresinden yüzlerce eklentiyle masaüstünüzü ihtiyaçlarınıza göre şekillendirin."
|
||||
|
||||
# ── MATE ──────────────────────────────────────────────────────────
|
||||
|
||||
[[items]]
|
||||
desktop = "mate"
|
||||
icon = "slides/img/mate.png"
|
||||
title = "PisiLinux MATE"
|
||||
description = "Geleneksel masaüstü düzenini sevenler için MATE. GTK+ 3 ile geliştirilmiş, modern ve akıcı bir deneyim sunar."
|
||||
|
||||
[[items]]
|
||||
desktop = "mate"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "Caja Dosya Yöneticisi"
|
||||
description = "MATE'in güçlü dosya yöneticisi Caja ile dosya işlemlerinizi kolayca yapın. Çift panel, sekmeli gezinme ve geniş özellikler sunar."
|
||||
|
||||
[[items]]
|
||||
desktop = "mate"
|
||||
icon = "slides/img/mate_settings.png"
|
||||
title = "MATE Ayarları"
|
||||
description = "Görünüm, ekran, klavye ve daha fazlası için kapsamlı ayarlarla MATE masaüstünüzü özelleştirin."
|
||||
|
||||
[[items]]
|
||||
desktop = "mate"
|
||||
icon = "slides/img/customization.png"
|
||||
title = "Zengin Uygulama Paketi"
|
||||
description = "MATE; metin editöründen görüntü görüntüleme yazılımına kadar geniş, iyi entegre edilmiş klasik uygulamalar sunar."
|
||||
|
||||
# ── Budgie ────────────────────────────────────────────────────────
|
||||
|
||||
[[items]]
|
||||
desktop = "budgie"
|
||||
icon = "slides/img/budgie.png"
|
||||
title = "PisiLinux Budgie"
|
||||
description = "Modern, sade ve şık Budgie masaüstü. GNOME altyapısı üzerine inşa edilmiş, kullanıcı dostudur."
|
||||
|
||||
[[items]]
|
||||
desktop = "budgie"
|
||||
icon = "slides/img/budgie_applets.png"
|
||||
title = "Budgie Desktop Applets"
|
||||
description = "Budgie'nin panel appletleri sayesinde hava durumu, sistem izleyici, takvim gibi araçları kolayca ekleyin."
|
||||
|
||||
[[items]]
|
||||
desktop = "budgie"
|
||||
icon = "slides/img/budgie_raven.png"
|
||||
title = "Raven Bildirim Merkezi"
|
||||
description = "Raven panelinden ses seviyesi, medya kontrolleri, bildirimler ve hızlı ayarlara erişin."
|
||||
|
||||
[[items]]
|
||||
desktop = "budgie"
|
||||
icon = "slides/img/budgie_gtk_theme.png"
|
||||
title = "GTK Tema Desteği"
|
||||
description = "Budgie, GTK temalarını ve GNOME uygulamalarını sorunsuz çalıştırır, görsel bütünlük sağlar."
|
||||
|
||||
# ── Cinnamon ──────────────────────────────────────────────────────
|
||||
|
||||
[[items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "slides/img/cinnamon.png"
|
||||
title = "PisiLinux Cinnamon"
|
||||
description = "Geleneksel masaüstü deneyimini modern özelliklerle birleştiren Cinnamon, güçlü ve esnek bir ortam sunar."
|
||||
|
||||
[[items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "slides/img/cinnamon_panel.png"
|
||||
title = "Cinnamon Paneli"
|
||||
description = "Panelinizi applet'ler, başlatıcılar ve sistem göstergeleriyle özelleştirin; klasik ama güçlü bir masaüstü deneyimi yaşayın."
|
||||
|
||||
[[items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "slides/img/cinnamon_settings.png"
|
||||
title = "Ayarlar Yöneticisi"
|
||||
description = "Cinnamon'un kapsamlı Ayarlar Yöneticisi aracılığıyla masaüstünüzün her yönünü özelleştirin."
|
||||
|
||||
[[items]]
|
||||
desktop = "cinnamon"
|
||||
icon = "slides/img/cinnamon_desklets.png"
|
||||
title = "Cinnamon Desklets"
|
||||
description = "Masaüstü widget'ları ile notlar, saatler ve sistem bilgileri her zaman görünür kalsın."
|
||||
|
||||
# ── LXQt ──────────────────────────────────────────────────────────
|
||||
|
||||
[[items]]
|
||||
desktop = "lxqt"
|
||||
icon = "slides/img/lxqt.png"
|
||||
title = "PisiLinux LXQt"
|
||||
description = "Hafif, hızlı ve modern LXQt masaüstü ortamı. Kaynak tüketimi düşük, performansı yüksektir."
|
||||
|
||||
[[items]]
|
||||
desktop = "lxqt"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "LXQt Panel"
|
||||
description = "Geleneksel panel düzeni ile görev çubuğu, uygulama başlatıcı ve sistem tepsisi her zaman elinizin altında."
|
||||
|
||||
[[items]]
|
||||
desktop = "lxqt"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "PCManFM-Qt Dosya Yöneticisi"
|
||||
description = "Hafif ve hızlı PCManFM-Qt ile dosya işlemlerini kolayca yönetin. Sekmeli gezinme ve özelleştirilebilir arayüz sunar."
|
||||
|
||||
# ── LXDE ──────────────────────────────────────────────────────────
|
||||
|
||||
[[items]]
|
||||
desktop = "lxde"
|
||||
icon = "slides/img/lxde.png"
|
||||
title = "PisiLinux LXDE"
|
||||
description = "Efsanevi hafif masaüstü LXDE. Çok düşük kaynak tüketimi ve güvenilir yapısıyla tanınır."
|
||||
|
||||
[[items]]
|
||||
desktop = "lxde"
|
||||
icon = "slides/img/lxde.png"
|
||||
title = "Openbox Tabanlı"
|
||||
description = "LXDE, Openbox pencere yöneticisini kullanır. İnce ayarlar ile akıcı bir deneyim sunar."
|
||||
|
||||
[[items]]
|
||||
desktop = "lxde"
|
||||
icon = "slides/img/file_manager.png"
|
||||
title = "PCManFM Dosya Yöneticisi"
|
||||
description = "PCManFM, hızlı ve hafif yapısıyla dosya işlemlerinizi kolaylaştırır, ağaç görünümü ve sekme destekler."
|
||||
|
||||
# ── Lumina ────────────────────────────────────────────────────────
|
||||
|
||||
[[items]]
|
||||
desktop = "lumina"
|
||||
icon = "slides/img/lumina.png"
|
||||
title = "PisiLinux Lumina"
|
||||
description = "Hafif ve bağımsız Lumina masa üstü. Qt tabanlı, BSD ve Linux sistemlerde düzgün çalışan minimal bir ortam."
|
||||
|
||||
[[items]]
|
||||
desktop = "lumina"
|
||||
icon = "slides/img/customization.png"
|
||||
title = "Tema Özelleştirme"
|
||||
description = "Lumina'nın tema sistemiyle renk şemaları ve arayüz stilini kolayca özelleştirin."
|
||||
@@ -0,0 +1,83 @@
|
||||
//! Slayt gösterisini test etmek için bağımsız GUI binary'si.
|
||||
//!
|
||||
//! Gerçek kurulum ekranındaki slideshow boyutlarında ve konumda görüntüler.
|
||||
//!
|
||||
//! Kullanım:
|
||||
//! cargo run --bin slides_test [desktop] [lang]
|
||||
//!
|
||||
//! desktop: "default" (varsayılan), "kde", "gnome", "xfce", "mate" vb.
|
||||
//! lang: "tr", "en" (varsayılan), "de" vb. — branding_{lang}.toml yüklenir
|
||||
|
||||
use eframe::egui;
|
||||
|
||||
fn main() -> eframe::Result<()> {
|
||||
let args: Vec<String> = std::env::args().collect();
|
||||
let desktop = args.get(1).cloned().unwrap_or_else(|| "default".to_string());
|
||||
let lang = args.get(2).cloned().unwrap_or_else(|| "tr".to_string());
|
||||
|
||||
let options = eframe::NativeOptions {
|
||||
viewport: egui::ViewportBuilder::default()
|
||||
.with_inner_size([1200.0, 900.0])
|
||||
.with_min_inner_size([1080.0, 720.0])
|
||||
.with_title(format!("Slides Test - {} ({})", desktop, lang)),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
eframe::run_native(
|
||||
"Slideshow Test",
|
||||
options,
|
||||
Box::new(move |cc| {
|
||||
egui_extras::install_image_loaders(&cc.egui_ctx);
|
||||
|
||||
let branding = yali_rs::branding::BrandingConfig::load_for_lang(&lang);
|
||||
let icons: std::collections::HashMap<String, String> = branding.slides.icons
|
||||
.iter()
|
||||
.map(|(k, v)| (k.clone(), yali_rs::branding::path_to_file_uri(v)))
|
||||
.collect();
|
||||
|
||||
Box::new(SlidesApp {
|
||||
slideshow: yali_rs::ui::slideshow::Slideshow::new(
|
||||
&desktop,
|
||||
icons,
|
||||
branding.slides.items.clone(),
|
||||
),
|
||||
})
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
struct SlidesApp {
|
||||
slideshow: yali_rs::ui::slideshow::Slideshow,
|
||||
}
|
||||
|
||||
impl eframe::App for SlidesApp {
|
||||
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
|
||||
egui::CentralPanel::default()
|
||||
.frame(egui::Frame::none().fill(yali_rs::ui::theme::c_bg_dark()))
|
||||
.show(ctx, |ui| {
|
||||
let available_w = ui.available_width();
|
||||
let available_h = ui.available_height();
|
||||
let slide_h = (available_h * 0.45).max(280.0);
|
||||
|
||||
ui.allocate_ui(egui::vec2(available_w, slide_h), |ui| {
|
||||
ui.vertical(|ui| {
|
||||
ui.add_space(8.0);
|
||||
yali_rs::ui::theme::section_heading(ui, "Slideshow Test");
|
||||
ui.label(
|
||||
egui::RichText::new("Gerçek kurulum boyutlarında slayt gösterisi")
|
||||
.color(yali_rs::ui::theme::c_text_dim())
|
||||
.size(13.0),
|
||||
);
|
||||
ui.add_space(16.0);
|
||||
|
||||
self.slideshow.show(ui);
|
||||
ui.add_space(10.0);
|
||||
ui.horizontal(|ui| {
|
||||
if ui.small_button("‹").clicked() { self.slideshow.previous(); }
|
||||
if ui.small_button("›").clicked() { self.slideshow.advance(); }
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -161,34 +161,87 @@ impl BrandingConfig {
|
||||
"/usr/share/yali/branding.toml",
|
||||
"branding.toml",
|
||||
];
|
||||
let mut config = BrandingConfig::default();
|
||||
for path in &paths {
|
||||
if let Ok(content) = std::fs::read_to_string(path) {
|
||||
match toml::from_str(&content) {
|
||||
Ok(cfg) => return cfg,
|
||||
Ok(cfg) => { config = cfg; break; }
|
||||
Err(e) => eprintln!("[branding] {}: {}", path, e),
|
||||
}
|
||||
}
|
||||
}
|
||||
BrandingConfig::default()
|
||||
|
||||
// slides/slides.toml varsa onu da yükle (öncelikli)
|
||||
if let Some(content) = std::fs::read_to_string("slides/slides.toml").ok() {
|
||||
if let Ok(slides) = toml::from_str::<SlidesConfig>(&content) {
|
||||
if !slides.icons.is_empty() {
|
||||
config.slides.icons = slides.icons;
|
||||
}
|
||||
if !slides.items.is_empty() {
|
||||
config.slides.items = slides.items;
|
||||
}
|
||||
if slides.interval_secs > 0 {
|
||||
config.slides.interval_secs = slides.interval_secs;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
config
|
||||
}
|
||||
|
||||
/// Belirtilen dile ait `branding_{lang}.toml` dosyasını arar ve yükler.
|
||||
/// Bulunamazsa varsayılan `branding.toml` dosyasına geri döner.
|
||||
/// Yükleme sonrası `slides/slides_{lang}.toml` varsa slides verilerini da buradan alır.
|
||||
pub fn load_for_lang(lang: &str) -> Self {
|
||||
let lang_paths = [
|
||||
format!("/etc/yali/branding_{}.toml", lang),
|
||||
format!("/usr/share/yali/branding_{}.toml", lang),
|
||||
format!("branding_{}.toml", lang),
|
||||
let mut config = {
|
||||
let lang_paths = [
|
||||
format!("/etc/yali/branding_{}.toml", lang),
|
||||
format!("/usr/share/yali/branding_{}.toml", lang),
|
||||
format!("branding_{}.toml", lang),
|
||||
];
|
||||
let mut found = None;
|
||||
for path in &lang_paths {
|
||||
if let Ok(content) = std::fs::read_to_string(path) {
|
||||
match toml::from_str(&content) {
|
||||
Ok(cfg) => { found = Some(cfg); break; }
|
||||
Err(e) => eprintln!("[branding] {}: {}", path, e),
|
||||
}
|
||||
}
|
||||
}
|
||||
found.unwrap_or_else(Self::load)
|
||||
};
|
||||
|
||||
// Harici slides dosyasını dene (slides/slides_{lang}.toml)
|
||||
if let Some(slides) = Self::load_external_slides(lang) {
|
||||
if !slides.icons.is_empty() {
|
||||
config.slides.icons = slides.icons;
|
||||
}
|
||||
if !slides.items.is_empty() {
|
||||
config.slides.items = slides.items;
|
||||
}
|
||||
if slides.interval_secs > 0 {
|
||||
config.slides.interval_secs = slides.interval_secs;
|
||||
}
|
||||
}
|
||||
|
||||
config
|
||||
}
|
||||
|
||||
/// `slides/slides_{lang}.toml` veya `slides/slides.toml` dosyasını yükler.
|
||||
fn load_external_slides(lang: &str) -> Option<SlidesConfig> {
|
||||
let paths = [
|
||||
format!("slides/slides_{}.toml", lang),
|
||||
"slides/slides.toml".to_string(),
|
||||
];
|
||||
for path in &lang_paths {
|
||||
for path in &paths {
|
||||
if let Ok(content) = std::fs::read_to_string(path) {
|
||||
match toml::from_str(&content) {
|
||||
Ok(cfg) => return cfg,
|
||||
Err(e) => eprintln!("[branding] {}: {}", path, e),
|
||||
Ok(cfg) => return Some(cfg),
|
||||
Err(e) => eprintln!("[slides] {}: {}", path, e),
|
||||
}
|
||||
}
|
||||
}
|
||||
Self::load()
|
||||
None
|
||||
}
|
||||
|
||||
/// İkon adına göre dosya yolunu döner.
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
//! UI'nin hemen güncellenmesi sağlanır.
|
||||
|
||||
|
||||
use std::path::Path;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
use std::sync::mpsc;
|
||||
use tokio::io::{AsyncBufReadExt, BufReader};
|
||||
@@ -182,9 +181,40 @@ impl Job for CopyFilesJob {
|
||||
|
||||
let is_root_source = self.source.trim_end_matches('/') == "";
|
||||
|
||||
// ── Önce find ile toplam dosya sayısını bul ──────────
|
||||
let find_path = self.source.trim_end_matches('/');
|
||||
let find_path = if find_path.is_empty() { "/" } else { find_path };
|
||||
let total_files = {
|
||||
let mut cmd = Command::new("find");
|
||||
cmd.arg(find_path).arg("-type").arg("f");
|
||||
if is_root_source {
|
||||
cmd.arg("-xdev");
|
||||
}
|
||||
cmd.stdout(std::process::Stdio::piped());
|
||||
cmd.stderr(std::process::Stdio::null());
|
||||
match cmd.spawn() {
|
||||
Ok(mut c) => {
|
||||
let stdout = c.stdout.take()
|
||||
.ok_or_else(|| "find stdout alınamadı".to_string())?;
|
||||
let r = BufReader::new(stdout);
|
||||
let mut lines = r.lines();
|
||||
let mut n: u64 = 0;
|
||||
while let Ok(Some(_)) = lines.next_line().await {
|
||||
n += 1;
|
||||
}
|
||||
let _ = c.wait().await;
|
||||
// if n > 0 {
|
||||
// ui.log(format!("{} dosya bulundu", n));
|
||||
// }
|
||||
n
|
||||
}
|
||||
Err(_) => 0
|
||||
}
|
||||
};
|
||||
|
||||
let mut args: Vec<String> = vec![
|
||||
"-aAXH".to_string(),
|
||||
"--info=progress2".to_string(),
|
||||
"--out-format=%n".to_string(),
|
||||
"--exclude=/proc/**".to_string(),
|
||||
"--exclude=/sys/**".to_string(),
|
||||
"--exclude=/dev/**".to_string(),
|
||||
@@ -242,19 +272,8 @@ impl Job for CopyFilesJob {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
// rsync çıktısı pipe'a yönlendirilince tam tamponlu (fully buffered) olur,
|
||||
// bu da progress çıktısının gerçek zamanlı gelmemesine yol açar.
|
||||
// stdbuf -eL ile stderr'i satır tamponlu (line-buffered) yapıyoruz.
|
||||
let (program, final_args) = if Path::new("/usr/bin/stdbuf").exists() {
|
||||
let mut a = vec!["-eL".to_string(), "rsync".to_string()];
|
||||
a.extend(args);
|
||||
("stdbuf", a)
|
||||
} else {
|
||||
("rsync", args)
|
||||
};
|
||||
|
||||
let mut child = Command::new(program)
|
||||
.args(&final_args)
|
||||
let mut child = Command::new("rsync")
|
||||
.args(&args)
|
||||
.stdout(std::process::Stdio::piped())
|
||||
.stderr(std::process::Stdio::piped())
|
||||
.spawn()
|
||||
@@ -265,90 +284,38 @@ impl Job for CopyFilesJob {
|
||||
let stderr = child.stderr.take()
|
||||
.ok_or_else(|| "rsync stderr alınamadı".to_string())?;
|
||||
|
||||
// Stderr'i arka planda okuyarak tamponun dolmasını ve rsync'in kilitlenmesini engelliyoruz.
|
||||
let stderr_err_accumulator = std::sync::Arc::new(tokio::sync::Mutex::new(String::new()));
|
||||
let stderr_accumulator_clone = stderr_err_accumulator.clone();
|
||||
// Stderr'i arka planda oku (hata birikimi ve tampon taşmasını engelle)
|
||||
let stderr_buf = std::sync::Arc::new(tokio::sync::Mutex::new(String::new()));
|
||||
let stderr_buf_clone = stderr_buf.clone();
|
||||
tokio::spawn(async move {
|
||||
let reader = BufReader::new(stderr);
|
||||
let mut lines = reader.lines();
|
||||
while let Ok(Some(line)) = lines.next_line().await {
|
||||
let mut accum = stderr_accumulator_clone.lock().await;
|
||||
accum.push_str(&line);
|
||||
accum.push('\n');
|
||||
let r = BufReader::new(stderr);
|
||||
let mut lines = r.lines();
|
||||
while let Ok(Some(l)) = lines.next_line().await {
|
||||
let mut b = stderr_buf_clone.lock().await;
|
||||
b.push_str(&l);
|
||||
b.push('\n');
|
||||
}
|
||||
});
|
||||
|
||||
// Stdout: --out-format=%n ile her satır bir dosya adı
|
||||
let reader = BufReader::new(stdout);
|
||||
let mut lines = reader.lines();
|
||||
let mut file_count: u64 = 0;
|
||||
|
||||
while let Some(line) = lines.next_line().await
|
||||
.map_err(|e| format!("rsync çıktısı okunamadı: {}", e))?
|
||||
{
|
||||
// Pipe'a yönlendirilince rsync satırbaşı (\r) içerebilir.
|
||||
// Önce \r karakterlerini temizle, sonra trim yap.
|
||||
let cleaned: String = line.chars()
|
||||
.filter(|&c| c != '\r')
|
||||
.collect();
|
||||
let trimmed = cleaned.trim().to_string();
|
||||
|
||||
let trimmed = line.trim().to_string();
|
||||
if trimmed.is_empty() {
|
||||
continue;
|
||||
}
|
||||
|
||||
// ── 1) Progress satırı mı? ──────────────────────────
|
||||
// rsync --info=progress2 format (pipe yoluyla):
|
||||
// " 1,024 100% 512.00kB/s 0:00:00 (xfr#5, to-chk=99/105)"
|
||||
// " 3.456M 67% 5.12MB/s 0:00:01 (xfr#17, to-chk=83/105)"
|
||||
// (xfr# ve to-chk= varsa progress satırıdır)
|
||||
if trimmed.contains("xfr#") && trimmed.contains("to-chk=") {
|
||||
// xfr# değerini çıkar
|
||||
let xfr = if let Some(pos) = trimmed.find("xfr#") {
|
||||
let after = &trimmed[pos + 4..];
|
||||
let end = after.find(|c: char| !c.is_ascii_digit()).unwrap_or(after.len());
|
||||
after[..end].parse::<u64>().unwrap_or(0)
|
||||
} else { 0 };
|
||||
file_count += 1;
|
||||
ui.current_file(trimmed);
|
||||
|
||||
// to-chk= içinden total değerini çıkar
|
||||
let total = if let Some(pos) = trimmed.find("to-chk=") {
|
||||
let after = &trimmed[pos + 7..];
|
||||
let slash_pos = after.find('/');
|
||||
if let Some(sp) = slash_pos {
|
||||
let after_slash = &after[sp + 1..];
|
||||
let end = after_slash.find(|c: char| !c.is_ascii_digit()).unwrap_or(after_slash.len());
|
||||
after_slash[..end].parse::<u64>().unwrap_or(1)
|
||||
} else { 1 }
|
||||
} else { 1 };
|
||||
|
||||
if total > 0 {
|
||||
let p = (xfr as f32) / (total as f32);
|
||||
ui.sub_progress(p.min(1.0));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// ── 2) Progress satırının ilk kısmı mı? (sayı + yüzde ile başlayan) ──
|
||||
// rsync pipe çıktısı bazen iki satıra bölünebilir:
|
||||
// " 1,024 100% 512.00kB/s 0:00:00"
|
||||
// " (xfr#5, to-chk=99/105)"
|
||||
// Bu durumda ilk satırda sadece sayı/yüzde/hız bilgisi vardır, atla.
|
||||
{
|
||||
let first = trimmed.chars().next().unwrap_or(' ');
|
||||
if first.is_ascii_digit() || first == ' ' {
|
||||
// Sayı veya boşlukla başlayıp xfr içermiyorsa progress'in devamıdır
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// ── 3) Gerçek dosya adı ──────────────────────────────
|
||||
// rsync --out-format kullanılmadığında dosya adları da stderr'e
|
||||
// göreceli yol olarak yazılır: "etc/passwd", "usr/share/doc/..."
|
||||
// Bunlar genellikle '.' '/' veya harf ile başlar, sayı ile başlamaz.
|
||||
// progress satırı olmadığına göre bu bir dosya adıdır.
|
||||
if trimmed.len() > 3 && !trimmed.starts_with('[') && !trimmed.contains("sending incremental")
|
||||
&& !trimmed.contains("building file list") && !trimmed.contains("done")
|
||||
&& !trimmed.contains("sent ") && !trimmed.contains("total size")
|
||||
{
|
||||
ui.current_file(trimmed);
|
||||
if total_files > 0 {
|
||||
let p = (file_count as f32) / (total_files as f32);
|
||||
ui.sub_progress(p.min(1.0));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,11 +323,11 @@ impl Job for CopyFilesJob {
|
||||
.map_err(|e| format!("rsync beklenemedi: {}", e))?;
|
||||
|
||||
if !status.success() {
|
||||
let stderr_content = stderr_err_accumulator.lock().await.clone();
|
||||
let err = stderr_buf.lock().await.clone();
|
||||
return Err(format!(
|
||||
"rsync çıkış kodu: {:?}. Hata: {}",
|
||||
status.code(),
|
||||
stderr_content.trim()
|
||||
err.trim()
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
pub mod installer;
|
||||
pub mod steps;
|
||||
pub mod jobs;
|
||||
pub mod ui;
|
||||
pub mod autoinstall;
|
||||
pub mod branding;
|
||||
pub mod funct;
|
||||
|
||||
rust_i18n::i18n!("locales");
|
||||
@@ -188,8 +188,14 @@ fn run_auto_install(path: &str, demo_mode: bool) -> eframe::Result<()> {
|
||||
print!("\r {}: [{:50}] {:.0}%", t!("progress"), "=".repeat((p * 50.0) as usize), p * 100.0);
|
||||
let _ = std::io::Write::flush(&mut std::io::stdout());
|
||||
}
|
||||
Ok(InstallMessage::SubProgress(_)) => {}
|
||||
Ok(InstallMessage::CurrentFile(_)) => {}
|
||||
Ok(InstallMessage::SubProgress(p)) => {
|
||||
print!("\r {}: [{:50}] {:.0}% ", t!("progress"), "=".repeat((p * 50.0) as usize), p * 100.0);
|
||||
let _ = std::io::Write::flush(&mut std::io::stdout());
|
||||
}
|
||||
Ok(InstallMessage::CurrentFile(f)) => {
|
||||
print!("\r {}: {} ", t!("install_current_file"), f);
|
||||
let _ = std::io::Write::flush(&mut std::io::stdout());
|
||||
}
|
||||
Ok(InstallMessage::Done) => {
|
||||
println!("\n\n{}: {}", t!("installation_done"), t!("installation_done_description"));
|
||||
break;
|
||||
|
||||
@@ -178,10 +178,6 @@ impl InstallerStep for ExecutionStep {
|
||||
loop {
|
||||
match rx.try_recv() {
|
||||
Ok(InstallMessage::Log(line)) => {
|
||||
if line.starts_with('▶') {
|
||||
state.install_sub_progress = 0.0;
|
||||
state.install_current_file = None;
|
||||
}
|
||||
state.install_log.push(line);
|
||||
}
|
||||
Ok(InstallMessage::Progress(p)) => {
|
||||
@@ -272,7 +268,8 @@ impl InstallerStep for ExecutionStep {
|
||||
|
||||
// İlerleme çubuğu
|
||||
let running = !self.finished
|
||||
&& self.error_screen.is_none();
|
||||
&& self.error_screen.is_none()
|
||||
&& state.install_progress > 0.0;
|
||||
|
||||
egui::Frame::none()
|
||||
.fill(theme::c_bg_widget())
|
||||
@@ -280,25 +277,46 @@ impl InstallerStep for ExecutionStep {
|
||||
.inner_margin(egui::Margin::same(12.0))
|
||||
.show(ui, |ui| {
|
||||
ui.set_width(available_w - 4.0);
|
||||
|
||||
// Yüzde + adım etiketi
|
||||
let step_label = state.install_log.last()
|
||||
.cloned()
|
||||
.unwrap_or_default();
|
||||
ui.horizontal(|ui| {
|
||||
ui.label(
|
||||
egui::RichText::new(
|
||||
format!("{:.0}%", state.install_progress * 100.0)
|
||||
)
|
||||
.strong()
|
||||
.color(theme::c_accent()),
|
||||
ui.label(
|
||||
egui::RichText::new(&step_label)
|
||||
.size(12.0)
|
||||
.color(theme::c_text_dim()),
|
||||
);
|
||||
|
||||
let pct = format!("{:.0}%", state.install_progress * 100.0);
|
||||
let bar = ui.add(
|
||||
egui::ProgressBar::new(state.install_progress)
|
||||
.animate(running)
|
||||
.desired_height(20.0),
|
||||
);
|
||||
ui.painter().text(
|
||||
bar.rect.center(),
|
||||
egui::Align2::CENTER_CENTER,
|
||||
pct,
|
||||
egui::FontId::proportional(14.0),
|
||||
theme::c_text(),
|
||||
);
|
||||
|
||||
if state.install_sub_progress > 0.0 {
|
||||
let sub_pct = format!("{:.0}%", state.install_sub_progress * 100.0);
|
||||
ui.add_space(4.0);
|
||||
let sub_bar = ui.add(
|
||||
egui::ProgressBar::new(state.install_sub_progress)
|
||||
.animate(running)
|
||||
.desired_height(20.0)
|
||||
.fill(theme::c_accent_dim()),
|
||||
);
|
||||
ui.label(
|
||||
egui::RichText::new(&step_label)
|
||||
.size(12.0)
|
||||
.color(theme::c_text_dim()),
|
||||
ui.painter().text(
|
||||
sub_bar.rect.center(),
|
||||
egui::Align2::CENTER_CENTER,
|
||||
sub_pct,
|
||||
egui::FontId::proportional(12.0),
|
||||
theme::c_text(),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
if let Some(ref current_file) = state.install_current_file {
|
||||
ui.add_space(4.0);
|
||||
@@ -308,21 +326,6 @@ impl InstallerStep for ExecutionStep {
|
||||
.color(theme::c_text_dim()),
|
||||
);
|
||||
}
|
||||
|
||||
ui.add_space(4.0);
|
||||
ui.add(
|
||||
egui::ProgressBar::new(state.install_progress)
|
||||
.animate(running)
|
||||
.desired_height(10.0),
|
||||
);
|
||||
|
||||
ui.add_space(4.0);
|
||||
ui.add(
|
||||
egui::ProgressBar::new(state.install_sub_progress)
|
||||
.animate(running)
|
||||
.desired_height(6.0)
|
||||
.fill(theme::c_accent_dim()),
|
||||
);
|
||||
});
|
||||
|
||||
// Durum etiketi
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
use eframe::egui;
|
||||
use rust_i18n::t;
|
||||
use crate::ui::theme;
|
||||
use crate::funct::{form_label, form_input_text};
|
||||
use crate::funct::form_label;
|
||||
// sysinfo::Disks mount point başına bir kayıt döndürür (partition'lar),
|
||||
// ham disk listesi için lsblk kullanıyoruz.
|
||||
|
||||
@@ -503,96 +503,96 @@ impl PartitionStep {
|
||||
partition_bar(ui, plan);
|
||||
ui.add_space(8.0);
|
||||
|
||||
// Bootstrap 5 tarzı tablo
|
||||
// Bootstrap 5 tarzı çizgili tablo
|
||||
let col_widths = [0.40, 0.25, 0.35];
|
||||
let tam_genislik = ui.available_width();
|
||||
let header_color = egui::Color32::from_rgb(33, 37, 41); // dark bg
|
||||
let header_color = egui::Color32::from_rgb(33, 37, 41);
|
||||
let header_text = egui::Color32::WHITE;
|
||||
let _border_stroke = egui::Stroke::new(1.0, crate::ui::theme::c_border());
|
||||
let baslik_yukseklik = 36.0;
|
||||
let satir_yukseklik = 34.0;
|
||||
let headers = [t!("plan_col_part"), t!("plan_col_fs"), t!("plan_col_size")];
|
||||
|
||||
let grid = egui::Grid::new("plan_grid")
|
||||
.num_columns(3)
|
||||
.spacing([0.0, 0.0])
|
||||
.min_col_width(0.0);
|
||||
|
||||
grid.show(ui, |ui| {
|
||||
// ── Başlık satırı ─────────────────────────────────
|
||||
let headers = [t!("plan_col_part"), t!("plan_col_fs"), t!("plan_col_size")];
|
||||
for (j, h) in headers.into_iter().enumerate() {
|
||||
let (rect, _) = ui.allocate_exact_size(
|
||||
egui::vec2(tam_genislik * col_widths[j], 30.0),
|
||||
egui::Sense::hover(),
|
||||
);
|
||||
let child_ui = &mut ui.child_ui(rect, egui::Layout::top_down(egui::Align::LEFT));
|
||||
egui::Frame::none()
|
||||
.fill(header_color)
|
||||
.inner_margin(egui::Margin::symmetric(8.0, 4.0))
|
||||
.show(child_ui, |ui| {
|
||||
ui.label(egui::RichText::new(h)
|
||||
.strong()
|
||||
.color(header_text)
|
||||
.size(13.0));
|
||||
});
|
||||
}
|
||||
ui.end_row();
|
||||
|
||||
// ── Veri satırları ────────────────────────────────
|
||||
struct Satir {
|
||||
part: String,
|
||||
fs: &'static str,
|
||||
size: String,
|
||||
}
|
||||
let mut satirlar = Vec::new();
|
||||
if plan.efi_mb > 0 {
|
||||
satirlar.push(Satir {
|
||||
part: format!("{}1 (EFI)", plan.disk),
|
||||
fs: "FAT32",
|
||||
size: format!("{} MB", plan.efi_mb),
|
||||
});
|
||||
}
|
||||
let swap_part = if plan.efi_mb > 0 { 2 } else { 1 };
|
||||
struct Satir {
|
||||
part: String,
|
||||
fs: &'static str,
|
||||
size: String,
|
||||
}
|
||||
let mut satirlar = Vec::new();
|
||||
if plan.efi_mb > 0 {
|
||||
satirlar.push(Satir {
|
||||
part: format!("{}{} (swap)", plan.disk, swap_part),
|
||||
fs: "swap",
|
||||
size: format!("{} MB", plan.swap_mb),
|
||||
part: format!("{}1 (EFI)", plan.disk),
|
||||
fs: "FAT32",
|
||||
size: format!("{} MB", plan.efi_mb),
|
||||
});
|
||||
let root_part = swap_part + 1;
|
||||
satirlar.push(Satir {
|
||||
part: format!("{}{}{}", plan.disk, root_part, t!("plan_root_suffix")),
|
||||
fs: "ext4",
|
||||
size: format!("{:.1} GB", plan.root_mb as f64 / 1024.0),
|
||||
});
|
||||
|
||||
for (row_idx, satir) in satirlar.iter().enumerate() {
|
||||
let row_bg = if row_idx % 2 == 0 {
|
||||
egui::Color32::from_rgba_unmultiplied(60, 60, 80, 60)
|
||||
} else {
|
||||
egui::Color32::TRANSPARENT
|
||||
};
|
||||
let hucreler: [&str; 3] = [&satir.part, satir.fs, &satir.size];
|
||||
for (j, deger) in hucreler.iter().enumerate() {
|
||||
let (rect, _) = ui.allocate_exact_size(
|
||||
egui::vec2(tam_genislik * col_widths[j], 34.0),
|
||||
egui::Sense::hover(),
|
||||
);
|
||||
let child_ui = &mut ui.child_ui(rect, egui::Layout::top_down(egui::Align::Center));
|
||||
egui::Frame::none()
|
||||
.fill(row_bg)
|
||||
.stroke(egui::Stroke::new(0.0, egui::Color32::TRANSPARENT))
|
||||
.inner_margin(egui::Margin::symmetric(8.0, 4.0))
|
||||
.show(child_ui, |ui| {
|
||||
ui.vertical_centered(|ui| {
|
||||
ui.label(egui::RichText::new(*deger).size(13.0).color(crate::ui::theme::c_text()));
|
||||
});
|
||||
});
|
||||
}
|
||||
// satır alt çizgisi
|
||||
if row_idx < satirlar.len() - 1 {
|
||||
ui.separator();
|
||||
}
|
||||
ui.end_row();
|
||||
}
|
||||
}
|
||||
let swap_part = if plan.efi_mb > 0 { 2 } else { 1 };
|
||||
satirlar.push(Satir {
|
||||
part: format!("{}{} (swap)", plan.disk, swap_part),
|
||||
fs: "swap",
|
||||
size: format!("{} MB", plan.swap_mb),
|
||||
});
|
||||
let root_part = swap_part + 1;
|
||||
satirlar.push(Satir {
|
||||
part: format!("{}{}{}", plan.disk, root_part, t!("plan_root_suffix")),
|
||||
fs: "ext4",
|
||||
size: format!("{:.1} GB", plan.root_mb as f64 / 1024.0),
|
||||
});
|
||||
|
||||
egui::Frame::none()
|
||||
.stroke(egui::Stroke::new(1.0, crate::ui::theme::c_border()))
|
||||
.rounding(egui::Rounding::same(6.0))
|
||||
.show(ui, |ui| {
|
||||
let tam = ui.available_width();
|
||||
|
||||
ui.horizontal(|ui| {
|
||||
ui.set_height(baslik_yukseklik);
|
||||
ui.spacing_mut().item_spacing.x = 0.0;
|
||||
for (j, h) in headers.iter().enumerate() {
|
||||
let w = tam * col_widths[j];
|
||||
let (rect, _) = ui.allocate_exact_size(
|
||||
egui::vec2(w, baslik_yukseklik),
|
||||
egui::Sense::hover(),
|
||||
);
|
||||
let mut cell_ui = ui.child_ui(rect, egui::Layout::top_down(egui::Align::Center));
|
||||
egui::Frame::none()
|
||||
.fill(header_color)
|
||||
.inner_margin(egui::Margin::symmetric(10.0, 6.0))
|
||||
.show(&mut cell_ui, |ui| {
|
||||
ui.vertical_centered(|ui| {
|
||||
ui.label(egui::RichText::new(h.as_ref()).strong().color(header_text).size(14.0));
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
for (row_idx, satir) in satirlar.iter().enumerate() {
|
||||
let row_bg = if row_idx % 2 == 0 {
|
||||
egui::Color32::from_rgba_unmultiplied(60, 60, 80, 40)
|
||||
} else {
|
||||
egui::Color32::TRANSPARENT
|
||||
};
|
||||
let hucreler: [&str; 3] = [&satir.part, satir.fs, &satir.size];
|
||||
ui.horizontal(|ui| {
|
||||
ui.set_height(satir_yukseklik);
|
||||
ui.spacing_mut().item_spacing.x = 0.0;
|
||||
for (j, deger) in hucreler.iter().enumerate() {
|
||||
let w = tam * col_widths[j];
|
||||
let (rect, _) = ui.allocate_exact_size(
|
||||
egui::vec2(w, satir_yukseklik),
|
||||
egui::Sense::hover(),
|
||||
);
|
||||
let mut cell_ui = ui.child_ui(rect, egui::Layout::top_down(egui::Align::Center));
|
||||
egui::Frame::none()
|
||||
.fill(row_bg)
|
||||
.inner_margin(egui::Margin::symmetric(10.0, 4.0))
|
||||
.show(&mut cell_ui, |ui| {
|
||||
ui.vertical_centered(|ui| {
|
||||
ui.label(egui::RichText::new(*deger).size(13.0).color(crate::ui::theme::c_text()));
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
ui.add_space(8.0);
|
||||
ui.label(format!("{}: {}", t!("partition_table_type"), plan.table_type));
|
||||
@@ -749,19 +749,16 @@ impl PartitionStep {
|
||||
let header_text = egui::Color32::WHITE;
|
||||
let _border_stroke = egui::Stroke::new(1.0, crate::ui::theme::c_border());
|
||||
|
||||
let grid = egui::Grid::new("manual_parts_grid")
|
||||
.num_columns(5)
|
||||
.spacing([0.0, 0.0])
|
||||
.min_col_width(0.0);
|
||||
|
||||
grid.show(ui, |ui| {
|
||||
// ── Başlık satırı ─────────────────────────────────
|
||||
let headers: [String; 4] = [
|
||||
t!("mp_device").to_string(),
|
||||
t!("mp_size").to_string(),
|
||||
t!("mp_fstype").to_string(),
|
||||
t!("mp_mountpoint").to_string(),
|
||||
];
|
||||
// ── Başlık satırı ─────────────────────────────────
|
||||
let headers: [String; 4] = [
|
||||
t!("mp_device").to_string(),
|
||||
t!("mp_size").to_string(),
|
||||
t!("mp_fstype").to_string(),
|
||||
t!("mp_mountpoint").to_string(),
|
||||
];
|
||||
ui.horizontal(|ui| {
|
||||
ui.set_height(30.0);
|
||||
ui.spacing_mut().item_spacing.x = 0.0;
|
||||
for (j, h) in headers.into_iter().enumerate() {
|
||||
let (rect, _) = ui.allocate_exact_size(
|
||||
egui::vec2(tam_genislik * col_widths[j], 30.0),
|
||||
@@ -776,88 +773,77 @@ impl PartitionStep {
|
||||
ui.label(egui::RichText::new(h).strong().color(header_text).size(13.0));
|
||||
});
|
||||
}
|
||||
ui.end_row();
|
||||
|
||||
// ── Veri satırları ────────────────────────────────
|
||||
for (row_idx, part) in state.custom_partitions.iter().enumerate() {
|
||||
let is_selected = self.manual.selected_idx == Some(row_idx);
|
||||
let row_bg = if is_selected {
|
||||
egui::Color32::from_rgba_unmultiplied(80, 100, 180, 80)
|
||||
} else if row_idx % 2 == 0 {
|
||||
egui::Color32::from_rgba_unmultiplied(60, 60, 80, 60)
|
||||
} else {
|
||||
egui::Color32::TRANSPARENT
|
||||
};
|
||||
|
||||
let size_str = if part.size_mb == 0 {
|
||||
t!("mp_size_remaining").to_string()
|
||||
} else if part.size_mb >= 1024 {
|
||||
format!("{:.1} GB", part.size_mb as f64 / 1024.0)
|
||||
} else {
|
||||
format!("{} MB", part.size_mb)
|
||||
};
|
||||
|
||||
let mut fstype_label = part.fstype.label().to_string();
|
||||
if part.encrypt {
|
||||
fstype_label = format!("🔐 {}", fstype_label);
|
||||
}
|
||||
|
||||
let hucreler: [(String, bool); 5] = [
|
||||
(part.device.clone(), false),
|
||||
(size_str, false),
|
||||
(fstype_label, false),
|
||||
(part.mountpoint.clone(), false),
|
||||
(String::new(), true), // action column - button
|
||||
];
|
||||
|
||||
for (j, (deger, is_action)) in hucreler.iter().enumerate() {
|
||||
let sense = if *is_action {
|
||||
egui::Sense::click()
|
||||
} else {
|
||||
egui::Sense::click()
|
||||
};
|
||||
let (rect, response) = ui.allocate_exact_size(
|
||||
egui::vec2(tam_genislik * col_widths[j], 34.0),
|
||||
sense,
|
||||
);
|
||||
|
||||
if !*is_action {
|
||||
if response.clicked() {
|
||||
self.manual.selected_idx = Some(row_idx);
|
||||
}
|
||||
response.on_hover_cursor(egui::CursorIcon::PointingHand);
|
||||
}
|
||||
|
||||
let child_ui = &mut ui.child_ui(rect, egui::Layout::top_down(egui::Align::Center));
|
||||
|
||||
if *is_action {
|
||||
egui::Frame::none()
|
||||
.fill(egui::Color32::TRANSPARENT)
|
||||
.inner_margin(egui::Margin::symmetric(8.0, 4.0))
|
||||
.show(child_ui, |ui| {
|
||||
ui.vertical_centered(|ui| {
|
||||
ui.label(egui::RichText::new(deger).size(13.0).color(crate::ui::theme::c_text()));
|
||||
});
|
||||
});
|
||||
} else {
|
||||
egui::Frame::none()
|
||||
.fill(row_bg)
|
||||
.stroke(egui::Stroke::new(0.0, egui::Color32::TRANSPARENT))
|
||||
.inner_margin(egui::Margin::symmetric(8.0, 4.0))
|
||||
.show(child_ui, |ui| {
|
||||
ui.vertical_centered(|ui| {
|
||||
ui.label(egui::RichText::new(deger).size(13.0).color(crate::ui::theme::c_text()));
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
if row_idx < state.custom_partitions.len() - 1 {
|
||||
ui.separator();
|
||||
}
|
||||
ui.end_row();
|
||||
}
|
||||
});
|
||||
|
||||
// ── Veri satırları ────────────────────────────────
|
||||
for (row_idx, part) in state.custom_partitions.iter().enumerate() {
|
||||
let is_selected = self.manual.selected_idx == Some(row_idx);
|
||||
let row_bg = if is_selected {
|
||||
egui::Color32::from_rgba_unmultiplied(80, 100, 180, 80)
|
||||
} else if row_idx % 2 == 0 {
|
||||
egui::Color32::from_rgba_unmultiplied(60, 60, 80, 60)
|
||||
} else {
|
||||
egui::Color32::TRANSPARENT
|
||||
};
|
||||
|
||||
let size_str = if part.size_mb == 0 {
|
||||
t!("mp_size_remaining").to_string()
|
||||
} else if part.size_mb >= 1024 {
|
||||
format!("{:.1} GB", part.size_mb as f64 / 1024.0)
|
||||
} else {
|
||||
format!("{} MB", part.size_mb)
|
||||
};
|
||||
|
||||
let mut fstype_label = part.fstype.label().to_string();
|
||||
if part.encrypt {
|
||||
fstype_label = format!("🔐 {}", fstype_label);
|
||||
}
|
||||
|
||||
// Entire row as a single clickable target (painter-based, no widget nesting)
|
||||
let (row_rect, row_response) = ui.allocate_exact_size(
|
||||
egui::vec2(tam_genislik, 34.0),
|
||||
egui::Sense::click(),
|
||||
);
|
||||
|
||||
if row_response.clicked() {
|
||||
self.manual.selected_idx = Some(row_idx);
|
||||
}
|
||||
row_response.on_hover_cursor(egui::CursorIcon::PointingHand);
|
||||
|
||||
// Paint row background
|
||||
let painter = ui.painter();
|
||||
painter.rect_filled(row_rect, egui::Rounding::ZERO, row_bg);
|
||||
|
||||
// Paint cell texts directly (no child_ui/label widgets that steal clicks)
|
||||
let cell_texts = [
|
||||
part.device.as_str(),
|
||||
size_str.as_str(),
|
||||
fstype_label.as_str(),
|
||||
part.mountpoint.as_str(),
|
||||
"",
|
||||
];
|
||||
let mut x = row_rect.left();
|
||||
for (j, text) in cell_texts.iter().enumerate() {
|
||||
let cell_w = tam_genislik * col_widths[j];
|
||||
let text_rect = egui::Rect::from_min_size(
|
||||
egui::pos2(x + 8.0, row_rect.top() + 4.0),
|
||||
egui::vec2(cell_w - 16.0, 26.0),
|
||||
);
|
||||
painter.text(
|
||||
text_rect.center(),
|
||||
egui::Align2::CENTER_CENTER,
|
||||
*text,
|
||||
egui::FontId::proportional(13.0),
|
||||
crate::ui::theme::c_text(),
|
||||
);
|
||||
x += cell_w;
|
||||
}
|
||||
|
||||
if row_idx < state.custom_partitions.len() - 1 {
|
||||
ui.separator();
|
||||
}
|
||||
}
|
||||
|
||||
// ── Bölümleme Planı (manuel) ──────────────────────────
|
||||
if !state.custom_partitions.is_empty() {
|
||||
ui.add_space(12.0);
|
||||
@@ -965,8 +951,12 @@ impl PartitionStep {
|
||||
egui::Window::new(title)
|
||||
.collapsible(false)
|
||||
.resizable(false)
|
||||
.anchor(egui::Align2::CENTER_CENTER, [0.0, 0.0])
|
||||
.default_size(egui::vec2(420.0, 300.0))
|
||||
//.anchor(egui::Align2::CENTER_CENTER, [0.0, 0.0])
|
||||
.default_pos(ui.ctx().screen_rect().center() - egui::vec2(210.0, 150.0))
|
||||
.show(ui.ctx(), |ui| {
|
||||
ui.set_min_width(420.0);
|
||||
ui.set_max_width(420.0);
|
||||
ui.label(t!("mp_fstype"));
|
||||
let prev_fs = self.manual.add_fstype;
|
||||
let fs_label = FS_OPTIONS.get(self.manual.add_fstype).map(|x| x.0).unwrap_or("?");
|
||||
@@ -988,10 +978,22 @@ impl PartitionStep {
|
||||
ui.add_space(6.0);
|
||||
form_label(ui, &t!("mp_size_hint"));
|
||||
ui.horizontal(|ui| {
|
||||
form_input_text(ui, &mut self.manual.add_size_str);
|
||||
ui.add_sized(
|
||||
[160.0, 32.0], // Genişlik 160.0, Yükseklik 40.0 piksel
|
||||
egui::TextEdit::singleline(&mut self.manual.add_size_str)
|
||||
.text_color(egui::Color32::from_rgb(230, 230, 230))
|
||||
.vertical_align(egui::Align::Center)
|
||||
);
|
||||
// ui.add(egui::TextEdit::singleline(&mut self.manual.add_size_str)
|
||||
// .desired_width(120.0)
|
||||
// .text_color(egui::Color32::from_rgb(230, 230, 230)));
|
||||
let parsed: u64 = self.manual.add_size_str.trim().parse().unwrap_or(0);
|
||||
if parsed > 0 {
|
||||
let gb = parsed as f64 / 1024.0;
|
||||
ui.label(format!("{} MB", format_number_thousands(parsed)));
|
||||
ui.label(egui::RichText::new(format!("(≈ {:.1} GB)", gb))
|
||||
.color(crate::ui::theme::c_text_dim())
|
||||
.size(11.0));
|
||||
} else {
|
||||
ui.label("MB");
|
||||
}
|
||||
@@ -1017,6 +1019,8 @@ impl PartitionStep {
|
||||
}
|
||||
|
||||
ui.add_space(6.0);
|
||||
ui.separator();
|
||||
|
||||
ui.label(t!("mp_mountpoint"));
|
||||
ui.horizontal(|ui| {
|
||||
let current_mp = if self.manual.add_mountpoint.is_empty() {
|
||||
@@ -1029,15 +1033,30 @@ impl PartitionStep {
|
||||
theme::selectable_value(ui, &mut self.manual.add_mountpoint, mp.to_string(), *mp, w);
|
||||
}
|
||||
});
|
||||
form_input_text(ui, &mut self.manual.add_mountpoint);
|
||||
// ui.add(egui::TextEdit::singleline(&mut self.manual.add_mountpoint)
|
||||
// .desired_width(160.0)
|
||||
// .text_color(egui::Color32::from_rgb(230, 230, 230)));
|
||||
ui.add_sized(
|
||||
[160.0, 32.0], // Genişlik 160.0, Yükseklik 40.0 piksel
|
||||
egui::TextEdit::singleline(&mut self.manual.add_mountpoint)
|
||||
.text_color(egui::Color32::from_rgb(230, 230, 230))
|
||||
.vertical_align(egui::Align::Center)
|
||||
);
|
||||
});
|
||||
|
||||
ui.add_space(6.0);
|
||||
ui.label(t!("luks_enable_root"));
|
||||
ui.separator();
|
||||
|
||||
let fstype = FS_OPTIONS.get(self.manual.add_fstype).map(|x| x.1.clone()).unwrap_or(FsType::Ext4);
|
||||
let can_encrypt = matches!(fstype, FsType::Ext4 | FsType::Ext3 | FsType::Btrfs | FsType::Xfs);
|
||||
|
||||
// ui.label(t!("luks_enable_root"));
|
||||
// ui.add_enabled_ui(can_encrypt, |ui| {
|
||||
// ui.checkbox(&mut self.manual.add_encrypt, "");
|
||||
// });
|
||||
ui.add_enabled_ui(can_encrypt, |ui| {
|
||||
ui.checkbox(&mut self.manual.add_encrypt, "");
|
||||
// Checkbox'ı yazısıyla birlikte tek bir bileşen olarak ekliyoruz:
|
||||
ui.checkbox(&mut self.manual.add_encrypt, t!("luks_enable_root"));
|
||||
});
|
||||
if !can_encrypt { self.manual.add_encrypt = false; }
|
||||
|
||||
@@ -1047,18 +1066,27 @@ impl PartitionStep {
|
||||
let pw = &mut self.manual.add_luks_password;
|
||||
ui.horizontal(|ui| {
|
||||
if self.show_luks_password {
|
||||
ui.text_edit_singleline(pw);
|
||||
ui.add_sized(
|
||||
[200.0, 32.0], // Genişlik 200.0, Yükseklik 32.0 piksel
|
||||
egui::TextEdit::singleline(pw)
|
||||
);
|
||||
} else {
|
||||
ui.add(egui::TextEdit::singleline(pw).password(true));
|
||||
}
|
||||
let eye = if self.show_luks_password { "🙈" } else { "👁" };
|
||||
if ui.small_button(eye).clicked() {
|
||||
self.show_luks_password = !self.show_luks_password;
|
||||
ui.add_sized(
|
||||
[200.0, 32.0], // Genişlik 200.0, Yükseklik 32.0 piksel
|
||||
egui::TextEdit::singleline(pw).password(true)
|
||||
.text_color(egui::Color32::from_rgb(230, 230, 230))
|
||||
.vertical_align(egui::Align::Center)
|
||||
);
|
||||
let eye = if self.show_luks_password { "🙈" } else { "👁" };
|
||||
if ui.small_button(eye).clicked() {
|
||||
self.show_luks_password = !self.show_luks_password;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ui.add_space(8.0);
|
||||
ui.separator();
|
||||
ui.horizontal(|ui| {
|
||||
let ok_label = if is_edit { t!("mp_save") } else { t!("mp_add_btn") };
|
||||
if theme::primary_button(ui, &ok_label).clicked() {
|
||||
|
||||
@@ -338,8 +338,15 @@ impl Slideshow {
|
||||
|
||||
let slide = &self.slides[self.current];
|
||||
|
||||
// İkona karşılık gelen URI'yi branding haritasından al
|
||||
let resolved_uri = self.icons.get(slide.icon).cloned();
|
||||
// İkona karşılık gelen URI: önce branding haritasından, yoksa doğrudan dosya yolu olarak dene
|
||||
let resolved_uri = self.icons.get(slide.icon).cloned()
|
||||
.or_else(|| {
|
||||
if slide.icon.contains('/') || slide.icon.contains('\\') {
|
||||
Some(crate::branding::path_to_file_uri(slide.icon))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
});
|
||||
|
||||
egui::Frame::none()
|
||||
.fill(crate::ui::theme::c_bg_widget())
|
||||
|
||||