Update humorous roast messages for Linux distribution choices

Updated roast messages in `client/src/data/roasts.ts` to be more engaging and humorous for various Linux distribution selections.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: e522d728-b28a-437f-b576-83935afe7ea0
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: b7fda2a7-c0fe-4495-a5fe-a1457d2baa75
This commit is contained in:
yusufipk
2025-12-17 14:27:56 +00:00
parent 2e230b781a
commit 8fd4ba3456
+204 -176
View File
@@ -22,397 +22,422 @@ const generalRoasts: RoastTemplate[] = [
id: "arch_nvidia", id: "arch_nvidia",
condition: (ctx) => ctx.topDistro === "arch" && ctx.nvidia, condition: (ctx) => ctx.topDistro === "arch" && ctx.nvidia,
messages: [ messages: [
"NVIDIA kartınla Arch seçerek hayatınla kumar oynadın, tebrikler. Her kernel güncellemesinde dua etmeyi unutma.", "Arch ve NVIDIA mı? Siyah ekrana bakarak felsefe yapmak için harika bir kombinasyon. Kernel güncellenirken dua etmeyi unutma.",
"Arch + NVIDIA combo'su seçtin. Ya çok cesursun ya da masokistsin. Her iki durumda da saygı duyuyorum.", "Wayland kullanmaya çalışma, sadece ağlarsın. NVIDIA ve Arch ikilisi senin için bir seçim değil, bir sabır testi.",
"NVIDIA ile Arch? Sana 'nvidia-dkms kurulumu başarısız' mesajını ezberlemeyi tavsiye ederim." "Tebrikler! 'nvidia-dkms kurulumu başarısız' hatasını ezberleyerek hayatının en verimsiz saatlerini geçirmeye hazır ol.",
] ],
}, },
{ {
id: "arch_beginner", id: "arch_beginner",
condition: (ctx) => ctx.topDistro === "arch" && ctx.beginner, condition: (ctx) => ctx.topDistro === "arch" && ctx.beginner,
messages: [ messages: [
"Yeni başlayan biri olarak Arch seçtin. Wiki'yi yastık altında tutmayı unutma.", "Wiki'yi okumadan kurmaya çalışıp forumlarda banlanınca 'Linux çok zormuş' diye ağlama. İzliyoruz...",
"Linux'a yeni başlıyorsun ve Arch istiyorsun. Cesaretine hayranım, ama Ubuntu öneririm desem kızar mısın?", "Daha 'ls' nedir bilmeden Arch seçmek... Cesaretle cehalet arasındaki o ince çizgide dans ediyorsun.",
"Arch seçen bir newbie... Ya süper hızlı öğreneceksin ya da Windows'a geri döneceksin. Ortası yok." "Arch install script'i kullandın değil mi? Seni gidi sahte elitist. 'I use Arch btw' deme hakkını henüz kazanmadın.",
] ],
}, },
{ {
id: "gentoo_anything", id: "gentoo_anything",
condition: (ctx) => ctx.topDistro === "gentoo", condition: (ctx) => ctx.topDistro === "gentoo",
messages: [ messages: [
"Gentoo seçtin. Umarım derleyici optimizasyonları kadar boş zamanın da vardır.", "Firefox derlenirken yeni bir programlama dili öğrenebilirsin. O compile bitince ne yapacaksın? Hiç, sadece boş boş ekrana bakacaksın.",
"Her şeyi derlemek istiyorsun. Elektrik faturasına hazır ol.", "Dünyadaki karbon ayak izinin %10'u senin anlamsız 'LTO' ve 'Graphite' optimizasyon sevdan yüzünden. Elektrik faturası için kredi çek.",
"Gentoo kullanıcısı olacaksın. Artık her sohbette 'ben derledim' diye başlayacaksın.", "Gentoo kullanıcısı: Bilgisayarı bir şeyler yapmak için değil, bir şeyler derlemek için kullanan kişi. İşlemcinin çığlıklarını duyabiliyorum.",
"emerge --sync yazdığında akşam yemeğini ısıtmayı unutma, çünkü bu biraz sürecek." ],
]
}, },
{ {
id: "nixos_any", id: "nixos_any",
condition: (ctx) => ctx.topDistro === "nixos", condition: (ctx) => ctx.topDistro === "nixos",
messages: [ messages: [
"NixOS seçtin. Artık her şeyi configuration.nix'te tanımlayacaksın. Her. Şeyi.", "Bir paket kurmak için 300 satır konfigürasyon yazan o 'farklı' kişi sensin demek. Sosyal hayatın bitti, geçmiş olsun.",
"Nix öğrenme eğrisi dik, ama en azından sistemin her zaman reproducible olacak. Değer mi? Göreceğiz.", "NixOS tarikatına hoş geldin. 'Reproducible builds' diye sayıklarken arkadaş çevrenin yavaş yavaş uzaklaşmasını izle.",
"Declarative configuration istiyorsun. Kodla sistem yönetmeye hoş geldin.", "Sistemin bozulmuyor olabilir ama senin beynin her `.nix` dosyasını düzenlediğinde biraz daha eriyor.",
"NixOS: 'Ama benim makinemde çalışıyordu' cümlesini tarih kitaplarına göndermek için var." ],
]
}, },
{ {
id: "qubes_privacy", id: "qubes_privacy",
condition: (ctx) => ctx.topDistro === "qubes" && ctx.privacy, condition: (ctx) => ctx.topDistro === "qubes" && ctx.privacy,
messages: [ messages: [
"Qubes OS seçtin. Ya bir gazeteci, ya bir aktivist, ya da çok paranoyaksın. Her durumda 32GB RAM al.", "NSA bile senin peşinde değil ama sen 32GB RAM'i sanal makineler arasında paylaştırırken acı çekiyorsun. Kimsin sen, Edward Snowden mı?",
"Her uygulama ayrı VM'de çalışacak. NSA'den bile gizlenebilirsin ama Chrome'u açamayabilirsin.", "Her uygulamayı ayrı bir VM'de açmak... Bir PDF okumak için 5 dakika beklemek tam bir 'güvenlik' dehası işi.",
"Qubes kullanıcısı olacaksın. Artık arkadaşlarına 'compartmentalization' kelimesini açıklamak zorundasın." "Paranoyan o kadar yüksek ki, muhtemelen bu mesajı okurken bile mikrofonunu fiziksel olarak sökmüşsündür.",
] ],
}, },
{ {
id: "tails_privacy", id: "tails_privacy",
condition: (ctx) => ctx.topDistro === "tails", condition: (ctx) => ctx.topDistro === "tails",
messages: [ messages: [
"Tails seçtin. Tor üzerinden her şey. Yavaş ama güvenli. Sabır bir erdem.", "Tor üzerinden 144p video izlemeye çalışırken sabrının sınırlarını test edeceksin. USB'yi çekince sistem siliniyor ama utancın kalıyor.",
"Hiç iz bırakmamak istiyorsun. Tails bunu sağlar ama Netflix izlemek istersen başka plan yap.", "İz bırakmamak güzel de, her açılışta her şeyi baştan kurmak tam bir dijital mazoşizm örneği.",
"Tails kullanıcısı: USB'den boot, Tor ile gez, bilgisayarı kapat, iz yok. Ajan gibisin." "Ajanlık oynamayı bırak da o USB'yi yavaşça yere bırak. Alt tarafı Reddit'te takılacaksın.",
] ],
}, },
{ {
id: "mint_windows", id: "mint_windows",
condition: (ctx) => ctx.topDistro === "mint" && ctx.beginner, condition: (ctx) => ctx.topDistro === "mint" && ctx.beginner,
messages: [ messages: [
"Mint seçtin. Windows'tan kaçıp evini özleyenler için mükemmel tercih.", "Emekli memur distrosuna hoş geldin. Windows 7'yi özlediysen neden direkt onu kurmadın?",
"Linux Mint: 'Windows'tan geçiş yapmak istiyorum ama çok da değişmesin' diyen herkesin tercihi.", "Linux Mint: 'Değişimden korkuyorum ama kendimi hacker gibi hissetmek istiyorum' diyenlerin limanı.",
"Akıllı seçim! Mint seni hayal kırıklığına uğratmaz. Sıkıcı ama güvenilir, tıpkı bir Volvo gibi." "Sıkıcılık bir sanat olsaydı, Mint başyapıt olurdu. Ama en azından çalışıyor, değil mi?",
] ],
}, },
{ {
id: "popos_nvidia_gaming", id: "popos_nvidia_gaming",
condition: (ctx) => ctx.topDistro === "popos" && ctx.nvidia && ctx.gaming, condition: (ctx) => ctx.topDistro === "popos" && ctx.nvidia && ctx.gaming,
messages: [ messages: [
"Pop!_OS + NVIDIA + Gaming. Mükemmel üçlü. System76 seni düşünmüş.", "System76'nın elinden tutmasına ihtiyaç duyan bir oyuncu daha. Kendi sürücünü kuramıyor musun?",
"NVIDIA kartınla oyun oynayacaksın ve Pop!_OS seçtin. Zeki çocuksun.", "Pop!_OS ile 'Ben Linux kullanıyorum' diyorsun ama aslında 'Ben Ubuntu'nun daha iyi renkli halini kullanıyorum' demek istiyorsun.",
"Pop!_OS seni NVIDIA sorunlarından kurtaracak. Artık 'sürücü sorunu' yerine sadece oyna." "Auto-tiling özelliğini açıp 5 dakika sonra kapatacağını hepimiz biliyoruz.",
] ],
}, },
{ {
id: "nobara_gaming", id: "nobara_gaming",
condition: (ctx) => ctx.topDistro === "nobara" && ctx.gaming, condition: (ctx) => ctx.topDistro === "nobara" && ctx.gaming,
messages: [ messages: [
"Nobara seçtin. GloriousEggroll'un eseri. Proton-GE ile birlikte gelir, oyun optimizasyonları hazır.", "GloriousEggroll'un tüm repolarını bilgisayarına indirmişsin. Fedora'yı bozmadan oyun oynamayı beceremeyenler kulübüne hoş geldin.",
"Linux gaming denince Nobara akla gelmeli. İyi seçim, artık git biraz oyun oyna.", "Oyunlarda 3 FPS fazla alacaksın diye her şeyi yamalanmış bir sistem kullanmak... Büyük risk.",
"Nobara: 'Fedora güzel ama gaming için optimize değil' diyenler için yapıldı." "Nobara: 'Fedora çok profesyonel geldi, biraz oyun hamuru ekleyelim' diyenlerin tercihi.",
] ],
}, },
{ {
id: "bazzite_gaming", id: "bazzite_gaming",
condition: (ctx) => ctx.topDistro === "bazzite" && ctx.gaming, condition: (ctx) => ctx.topDistro === "bazzite" && ctx.gaming,
messages: [ messages: [
"Bazzite seçtin. Steam Deck vibes ama masaüstünde. Immutable OS korkutmasın, rollback senin dostun.", "Bilgisayarını oyun konsoluna çevirdin, tebrikler. Artık tarayıcıyı açarken bile 'bu immutable sistemde nasıl çalışıyor' diye düşünebilirsin.",
"SteamOS ama PC için. Bazzite ile konsol deneyimi masaüstüne geldi.", "SteamOS çakması... Şaka şaka, ama Steam Deck'in yoksa neden bu kadar kısıtlı bir hayat yaşıyorsun?",
"Gaming Mode, immutable sistem, otomatik güncellemeler. Bazzite ile oyun makinesi kur ve unut." "Rollback özelliği en büyük dostun olacak, çünkü o güncellemeler elbet bir gün bir şeyi patlatacak.",
] ],
}, },
{ {
id: "garuda_eyecandy", id: "garuda_eyecandy",
condition: (ctx) => ctx.topDistro === "garuda", condition: (ctx) => ctx.topDistro === "garuda",
messages: [ messages: [
"Garuda seçtin. Göz zevkin yerinde, Dr460nized tema ile havali görüneceksin.", "Gözlerin o neon renklerden kanamıyor mu? Bilgisayarın her an bir pavyona dönüşebilir gibi duruyor.",
"Arch tabanlı, oyuna hazır, gösterişli. Garuda ile masaüstün Instagram'a atılabilir.", "O kadar çok görsel efekt var ki, işlemcin sadece masaüstünü çizmek için %20 yükte çalışıyor.",
"Garuda'nın teması o kadar güzel ki bazen sadece masaüstüne bakarsın." "r/unixporn'da 'Look at my rice' diye paylaşım yapıp kimseden upvote alamayan o çocuk sensin işte.",
] ],
}, },
{ {
id: "elementary_mac", id: "elementary_mac",
condition: (ctx) => ctx.topDistro === "elementary", condition: (ctx) => ctx.topDistro === "elementary",
messages: [ messages: [
"elementary OS seçtin. Mac alacak paran yoktu galiba. Şaka şaka, Pantheon gerçekten güzel.", "Mac almaya paran yetmedi mi? Pantheon masaüstüyle Apple fanboyluğunu gizleyemezsin.",
"macOS esintisi istiyorsun ama Apple'a para vermek istemiyorsun. Anladım seni.", "AppCenter'da uygulama kalmadığında Ubuntu repolarına muhtaç kalışın çok dokunaklı.",
"elementary: 'Apple estetiği istiyorum ama özgürlük de istiyorum' diyenler için." "Elementary: 'Özgürlük istiyorum ama sadece Apple'ın izin verdiği kadar' diyenler için.",
] ],
}, },
{ {
id: "zorin_windows", id: "zorin_windows",
condition: (ctx) => ctx.topDistro === "zorin", condition: (ctx) => ctx.topDistro === "zorin",
messages: [ messages: [
"Zorin seçtin. Windows'tan geçiş yapacaklar için biçilmiş kaftan.", "Windows 11 teması kurunca Linux daha mı hızlı hissettiriyor? Kendini kandırma.",
"Windows 11 gibi görünsün ama Linux olsun. Zorin tam bunu yapıyor.", "Zorin OS: 'Babam Linux'a geçtiğimi anlamasın' distrosu.",
"Zorin ile ailenin bile fark etmeyebilir Linux'a geçtiğini." "Pro versiyonuna para verdiysen söyle de hep beraber gülelim.",
] ],
}, },
{ {
id: "deepin_beauty", id: "deepin_beauty",
condition: (ctx) => ctx.topDistro === "deepin", condition: (ctx) => ctx.topDistro === "deepin",
messages: [ messages: [
"deepin seçtin. En güzel masaüstü ortamı ama Çin yapımı. Paranoya seviyen düşük demek.", "Görsellik şahane ama verilerin Pekin üzerinden geçerken biraz yavaşlayabilir. Telemetri ayarlarına baktın mı?",
"DDE gerçekten güzel. Mahremiyet endişen yoksa keyfini çıkar.", "Dünyanın en güzel masaüstü ortamı... Ve muhtemelen dünyanın en çok 'bu ne ara yüklendi' dedirten sistemi.",
"deepin: Görsel şölen isteyenler için. Sadece... telemetri ayarlarını kontrol et." "Privacy (Gizlilik) senin için sadece bir kelime sanırım.",
] ],
}, },
{ {
id: "manjaro_beginner_arch", id: "manjaro_beginner_arch",
condition: (ctx) => ctx.topDistro === "manjaro" && ctx.beginner, condition: (ctx) => ctx.topDistro === "manjaro" && ctx.beginner,
messages: [ messages: [
"Manjaro seçtin. Arch'ın tadını almak istiyorsun ama kurulumla uğraşmak istemiyorsun. Akıllıca.", "Arch'ın tüm zorluklarını alıp, üstüne bir de paketleri geç vererek sistemi bozma yeteneğine sahip tek distro. Başarılar.",
"'I use Arch btw' demek istiyorsun ama gerçek Arch kurmak istemiyorsun. Manjaro işte bu yüzden var.", "SSL sertifikasını yenilemeyi unutan bir distroyu sistemin temeli yapmak... Büyük vizyon.",
"Manjaro: Arch deneyimi, Ubuntu kolaylığı. Win-win." "Manjaro: 'Arch kullanıyorum' demenin en sahte ve en sorunlu yolu.",
] ],
}, },
{ {
id: "ubuntu_mainstream", id: "ubuntu_mainstream",
condition: (ctx) => ctx.topDistro === "ubuntu", condition: (ctx) => ctx.topDistro === "ubuntu",
messages: [ messages: [
"Ubuntu seçtin. Klasik, güvenilir, sıkıcı. Tıpkı Toyota Corolla gibi.", "Canonical'ın reklam panosu olmaya gönüllü olmuşsun. Snap paketlerinin açılmasını beklerken bir kahve iç, hatta bir yemek ye.",
"Herkesin ilk Linux'u genelde Ubuntu olur. Nostaljik.", "Linux dünyasının Starbucks'ı. Güvenli, sıkıcı ve her yer Snap hatası dolu.",
"Ubuntu: 'Just works' felsefesi. Snap konusunda fikrin neyse artık..." "Debian'ın makyajlanmış ve hantallaştırılmış hali. Neden kendine bunu yapıyorsun?",
] ],
}, },
{ {
id: "fedora_dev", id: "fedora_dev",
condition: (ctx) => ctx.topDistro === "fedora", condition: (ctx) => ctx.topDistro === "fedora",
messages: [ messages: [
"Fedora seçtin. Red Hat'in test alanına hoş geldin. En azından GNOME'un son hali senin.", "Red Hat'in ücretsiz beta testçisi olduğun için teşekkürler. IBM seninle gurur duyuyor (ama para vermeyecek).",
"Developer'lar Fedora sever. SELinux seni korur, DNF seni yavaşlatır.", "DNF paket yöneticisi o kadar yavaş ki, paket inerken yeni bir programlama dili öğrenebilirsin.",
"Fedora: Bleeding edge ama stabil. Paradoks gibi ama çalışıyor." "Bleeding edge değil, 'her an bir şeyler kopabilir ama GNOME sürümüm güncel' distrosu.",
] ],
}, },
{ {
id: "debian_server", id: "debian_server",
condition: (ctx) => ctx.topDistro === "debian", condition: (ctx) => ctx.topDistro === "debian",
messages: [ messages: [
"Debian seçtin. Paketler 2 yıl eski ama 'rock solid'. Sunucu gibi düşün, masaüstü gibi kullan.", "Paketler o kadar eski ki, kernel içinde dinozor fosili bulabilirsin. Ama stabil değil mi? Taş gibi (ve tarih öncesi gibi).",
"Stable branch seçersen yazılımlar vintage olur. Testing seçersen... adı üstünde.", "Müzede mi yaşıyorsun yoksa sadece 2021 model yazılımları mı seviyorsun?",
"Debian: Her şeyin başladığı yer. Saygıyla." "Debian Stable: 'Çalışıyorsa dokunma' felsefesinin vücut bulmuş ve yaşlanmış hali. Sıkıcılığın zirvesi.",
] ],
}, },
{ {
id: "cachyos_performance", id: "cachyos_performance",
condition: (ctx) => ctx.topDistro === "cachyos", condition: (ctx) => ctx.topDistro === "cachyos",
messages: [ messages: [
"CachyOS seçtin. Performans takıntılı Arch kullanıcısı için birebir.", "V3/V4 optimizasyonları sayesinde tarayıcın 0.0001 saniye daha hızlı açılacak. Tüm o kurulum eziyetine değdi mi?",
"Optimize edilmiş kernel, scheduler tweaks... CachyOS ile her milisaniye önemli.", "İşlemcinin her döngüsünü (cycle) hesaplıyorsun ama vaktini bu distroyu kurarak harcadın. Büyük çelişki.",
"CachyOS: 'Arch iyi ama daha hızlı olabilir' diyenler için." "CachyOS: 'Arch yetmedi, ben daha çok kernel parametresi karıştırmak istiyorum' diyenlerin mekanı.",
] ],
}, },
{ {
id: "void_independent", id: "void_independent",
condition: (ctx) => ctx.topDistro === "void", condition: (ctx) => ctx.topDistro === "void",
messages: [ messages: [
"Void Linux seçtin. runit, xbps, bağımsızlık. Kendi yolunu çizen biriymiş gibi duruyorsun.", "Runit o kadar hızlı ki ne olduğunu anlamadan masaüstündesin. Ama sonra 'ben neden bunu kullanıyorum' diye düşünmeye çok vaktin kalıyor.",
"Ne Arch, ne Debian. Void tamamen bağımsız. Hipster Linux kullanıcısı vibes.", "Glibc mi Musl mı? Bu soruyu sorarken bile ne kadar yalnız olduğunu fark ediyor musun?",
"Void: Minimalizm ve bağımsızlık isteyenler için. xbps-install hızlı ve temiz." "Ne Arch kadar popüler, ne Debian kadar stabil. Tam bir 'ben farklıyım' distrosu.",
] ],
}, },
{ {
id: "artix_systemd_hate", id: "artix_systemd_hate",
condition: (ctx) => ctx.topDistro === "artix" && ctx.systemdHate, condition: (ctx) => ctx.topDistro === "artix" && ctx.systemdHate,
messages: [ messages: [
"Artix seçtin. 'Systemd'den nefret ediyorum ama Arch istiyorum' diyenlerin mabedi.", "Lennart Poettering rüyalarına giriyor değil mi? Systemd'den kaçarken hayattan da kaçmışsın.",
"OpenRC, runit, s6... Init sistemi seçimi senin. Özgürlük bu işte.", "Init sistemin OpenRC olabilir ama hayatındaki 'init' hala çok yavaş çalışıyor.",
"Systemd olmadan Arch. Lennart Poettering bu mesajı beğenmedi." "Sırf systemd yok diye Arch repolarının yarısını kullanamamak... Gerçek bir özgürlük savaşçısı!",
] ],
}, },
{ {
id: "devuan_systemd_hate", id: "devuan_systemd_hate",
condition: (ctx) => ctx.topDistro === "devuan" && ctx.systemdHate, condition: (ctx) => ctx.topDistro === "devuan" && ctx.systemdHate,
messages: [ messages: [
"Devuan seçtin. Debian sevsem ama systemd istemesem... İşte Devuan.", "Debian'ı fork'layacak kadar ne yaşattı bu systemd sana? Init savaşları 2014'te bitti, sen hala siperdesin.",
"Debian ama systemd olmadan. Init freedom forever!", "Devuan: 'Eskiden her şey daha güzeldi' diyen Linux dedelerinin buluşma noktası.",
"Devuan: 'Veteran Init Wars' gazileri için." "Sistemin systemd içermiyor olabilir ama muhtemelen güncel hiçbir şeyi de içermiyor.",
] ],
}, },
{ {
id: "kali_hacker", id: "kali_hacker",
condition: (ctx) => ctx.topDistro === "kali", condition: (ctx) => ctx.topDistro === "kali",
messages: [ messages: [
"Kali seçtin. 600+ hacking tool'u ile artık hackersin. Ya da öyle olduğunu sanıyorsun.", "Instagram şifresi kırmayı öğrenince haber ver, o zamana kadar o 'hacker' logolu wallpaper'ını sessizce değiştir.",
"Kali günlük kullanım için değil ama sen bilirsin. Root olarak takılmayı seviyorsan...", "Kali'yi ana işletim sistemi olarak mı kurdun? Diskine yazık, egona daha da yazık. Root olarak gezerken sistemi patlatma da...",
"Kali: 'Mr. Robot izledim, hacker olacam' starter pack." "Terminali yeşil yapınca Mr. Robot olmuyorsun, sadece komik görünüyorsun.",
] ],
}, },
{ {
id: "parrot_security", id: "parrot_security",
condition: (ctx) => ctx.topDistro === "parrot", condition: (ctx) => ctx.topDistro === "parrot",
messages: [ messages: [
"Parrot seçtin. Kali'nin günlük kullanılabilir versiyonu. Akıllı tercih.", "Kali'den daha 'akıllıyım' diyorsun ama hala pentest araçlarını sadece 'neofetch'te havalı dursun diye tutuyorsun.",
"Güvenlik araçları + günlük kullanım. Parrot ikisini birleştiriyor.", "Sandbox özelliği güzel de, sen zaten tehlikeli bir şey yapmıyorsun ki?",
"Parrot: 'Kali istiyorum ama normal de kullanayım' diyenler için." "Parrot: 'Hacker olayım ama sistemim de güzel görünsün' diyenlerin orta yol sevdası.",
] ],
}, },
{ {
id: "antix_old_hw", id: "antix_old_hw",
condition: (ctx) => ctx.topDistro === "antix" && ctx.oldHardware, condition: (ctx) => ctx.topDistro === "antix" && ctx.oldHardware,
messages: [ messages: [
"antiX seçtin. 256MB RAM ile çalışır. Eski laptopu kurtardın.", "O bilgisayarı çöpe atmanın vakti gelmişti ama sen antiX ile ona işkence etmeye devam ediyorsun. Bırak huzur içinde uyusun.",
"Dede bilgisayar mı kurtarılacak? antiX işte tam bu iş için var.", "256MB RAM ile Firefox açmaya çalışmak... Senin sabrın peygamberlerde yok.",
"antiX: 'Bu bilgisayar çöp' demeden önce bir şans ver." "Sistemin o kadar hafif ki, bir üflesek silinecek gibi duruyor.",
] ],
}, },
{ {
id: "puppy_portable", id: "puppy_portable",
condition: (ctx) => ctx.topDistro === "puppy", condition: (ctx) => ctx.topDistro === "puppy",
messages: [ messages: [
"Puppy Linux seçtin. USB'den boot, RAM'de çalış, iz bırakma. Minimalizmin zirvesi.", "RAM'de çalışan bir işletim sistemi... Bilgisayarı kapatınca her şeyin gitmesi tam bir 'disposable' hayat tarzı.",
"300MB RAM yeterli. Puppy ile antika bilgisayarlar bile uçar.", "Masaüstü ikonların 2003 yılından kalma gibi duruyor. Retro sevdanın da bir sınırı olmalı.",
"Puppy: Taşınabilir Linux isteyenler için cep dostu." "Puppy Linux: 'Bilgisayarım o kadar kötü ki sadece bu çalışıyor' demenin kibarcası.",
] ],
}, },
{ {
id: "alpine_minimal", id: "alpine_minimal",
condition: (ctx) => ctx.topDistro === "alpine", condition: (ctx) => ctx.topDistro === "alpine",
messages: [ messages: [
"Alpine seçtin. Docker image'ların bunun üstüne kurulu zaten. Masaüstü de olurmuş.", "Docker container'ından çıkıp masaüstüne gelmişsin. Musl libc yüzünden hiçbir şeyin çalışmadığında görüşürüz.",
"musl libc, minimal, güvenli. Container'ların kralı masaüstüne geldi.", "Minimalizm değil bu, bu bildiğin çıplaklık. Paket yöneticisi (apk) bile sana gülüyor olabilir.",
"Alpine: 'Her şey çok şişkin' diyenler için diyet Linux." "Alpine: 'Ben o kadar hardcore kullanıcıyım ki man sayfalarını bile yüklemiyorum' havası.",
] ],
}, },
{ {
id: "opensuse_enterprise", id: "opensuse_enterprise",
condition: (ctx) => ctx.topDistro === "opensuse", condition: (ctx) => ctx.topDistro === "opensuse",
messages: [ messages: [
"openSUSE seçtin. YaST ile her şeyi GUI'den yönet. Enterprise kalitesi, bedava.", "YaST denilen o hantal kontrol paneline mahkum olmuşsun. Alman mühendisliği mi dedin? Bence sadece karmaşa.",
"Tumbleweed rolling ama stabil. Btrfs snapshot'ları hayat kurtarır.", "Tumbleweed kullanıp 'ben de rolling release kullanıyorum' diyorsun ama aslında bir bukalemun tarafından yönetiliyorsun.",
"openSUSE: Almanya mühendisliği, Linux tarzı." "Btrfs snapshot'ları sayesinde sistemini kurtarabilirsin ama o yeşil renkli kabustan kaçamazsın.",
] ],
}, },
{ {
id: "endeavouros_arch_light", id: "endeavouros_arch_light",
condition: (ctx) => ctx.topDistro === "endeavouros", condition: (ctx) => ctx.topDistro === "endeavouros",
messages: [ messages: [
"EndeavourOS seçtin. Terminal-centric Arch experience. GUI installer var ama ruh hala minimal.", "Arch kurmaya üşendiğin için bu mor renkli Ubuntu çakmasına sığınmışsın. Terminal odaklıymış... Tabi yersen.",
"Arch'ın ruhu, kolay kurulum. EndeavourOS ile 'I use Arch btw' hakkını kazandın.", "EndeavourOS: 'Ben Arch kullanıyorum' yalanını söyleyebilmek için GUI installer kullananların sığınağı.",
"EndeavourOS: Arch puristlerin 'bu da Arch sayılır' dediği dağıtım." "Gerçek bir Arch kullanıcısı sana her zaman 'sahte' muamelesi yapacak, buna alışsan iyi olur.",
] ],
}, },
{ {
id: "kdeneon_kde", id: "kdeneon_kde",
condition: (ctx) => ctx.topDistro === "kdeneon" && ctx.likedDEs.includes("kde"), condition: (ctx) =>
ctx.topDistro === "kdeneon" && ctx.likedDEs.includes("kde"),
messages: [ messages: [
"KDE neon seçtin. En taze Plasma her zaman seninle. KDE fanboy detected.", "KDE Plasma'nın her gün çıkan yeni bug'larını ilk elden test etmek büyük bir fedakarlık. Teşekkürler beta tester.",
"KDE'nin kendi dağıtımı. Her yeni Plasma özelliği ilk sana gelir.", "Sistem o kadar güncel ki, daha geliştiricilerin bile görmediği crash raporlarını sen görüyorsun.",
"KDE neon: 'Plasma'nın son versiyonunu HEMEN istiyorum' diyenler için." "KDE neon: 'Stabilite umurumda değil, bana en yeni widget'ları verin' diyenlerin distrosu.",
] ],
}, },
{ {
id: "lubuntu_light", id: "lubuntu_light",
condition: (ctx) => ctx.topDistro === "lubuntu" && ctx.lowRam, condition: (ctx) => ctx.topDistro === "lubuntu" && ctx.lowRam,
messages: [ messages: [
"Lubuntu seçtin. LXQt ile hafiflik, Ubuntu ile güvenlik. İyi denge.", "LXQt kullanırken estetik algını nerede bıraktın? Sistem hafif ama ruhun ağırlaşmış.",
"1GB RAM yeterli. Lubuntu eski makineleri kurtarır.", "Ubuntu'nun fakir ama gururlu kardeşi. RAM kullanımı düşük, kullanıcı memnuniyeti daha da düşük.",
"Lubuntu: Ubuntu'nun en hafif lezzeti." "Lubuntu: 'Eski bilgisayarımı canlandıracağım' derken kendini 2010 yılında hapsedenlerin tercihi.",
] ],
}, },
{ {
id: "xubuntu_balanced", id: "xubuntu_balanced",
condition: (ctx) => ctx.topDistro === "xubuntu", condition: (ctx) => ctx.topDistro === "xubuntu",
messages: [ messages: [
"Xubuntu seçtin. Xfce + Ubuntu = Dengeli, güvenilir, biraz nostaljik.", "Xfce ve Ubuntu... Sıkıcılığın ve statükonun kalesi. Ne bir eksik ne bir fazla, tam bir gri alan.",
"Ne çok hafif ne çok ağır. Xubuntu tam ortada, goldilocks zone.", "20 yıldır değişmeyen arayüzle ne kadar mutlusun? 'Ben çalışmasına bakarım' diyorsan yalan söylüyorsun.",
"Xubuntu: 'Xfce seviyorum ama Arch kurmak istemiyorum' diyenler için." "Xubuntu: 'Benim sistemim asla patlamaz çünkü içinde yeni hiçbir şey yok' distrosu.",
] ],
}, },
{ {
id: "kubuntu_kde_ubuntu", id: "kubuntu_kde_ubuntu",
condition: (ctx) => ctx.topDistro === "kubuntu", condition: (ctx) => ctx.topDistro === "kubuntu",
messages: [ messages: [
"Kubuntu seçtin. Ubuntu + KDE. İkisinin de fanı mısın yoksa?", "Ubuntu tabanında KDE kullanmak mı? Tam bir 'karar veremiyorum' insanı tercihi.",
"KDE istiyorsun ama Arch korkutuyor. Kubuntu mantıklı tercih.", "Kubuntu: 'Neon çok riskli, Debian çok eski, bari ortada kalayım' korkaklığı.",
"Kubuntu: Ubuntu'nun en şık giysili versiyonu." "O kadar çok özelleştirme seçeneğin var ki, yine de gidip Windows 10 gibi yapacaksın sistemi.",
] ],
}, },
{ {
id: "mxlinux_stable", id: "mxlinux_stable",
condition: (ctx) => ctx.topDistro === "mxlinux", condition: (ctx) => ctx.topDistro === "mxlinux",
messages: [ messages: [
"MX Linux seçtin. DistroWatch'ın gözdesi. Stabilite, hafiflik, kullanışlılık.", "DistroWatch'ta neden birinci olduğunu kimsenin anlamadığı o gizemli kullanıcı sensin.",
"Xfce tabanlı, Debian güvenilirliği, harika araçlar. MX seni mutlu eder.", "Xfce'yi modifiye edip 'bakın ne kadar güzel oldu' demek... Kendine dürüst ol Yusuf, olmadı.",
"MX Linux: 'Neden bu kadar popüler?' diye sorarsan, kullandığında anlarsın." "MX Linux: 'Ben Debian'ı seviyorum ama kurulumda acı çekmek istemiyorum' diyenlerin güvenli bölgesi.",
] ],
} },
]; ];
const genericRoasts = [ const genericRoasts = [
"Linux dünyasına hoş geldin! Artık Windows güncellemelerinden kurtuldun... ama başka sorunlarla tanışacaksın.", "Linux dünyasına hoş geldin! Artık Windows güncellemelerinden kurtuldun ama şimdi de 'acaba bu kütüphane neden eksik' diye sabahlayacaksın.",
"Seçimini yaptın. Şimdi git, forumlarda 'bunu nasıl yaparım' diye sor. Herkes yardım eder... genelde.", "Seçimini yaptın. Şimdi git, forumlarda 'RTFM' cevabını alıp gel. Linux topluluğu seni çok sıcak(!) karşılayacak.",
"Tebrikler! Artık 'bende çalışıyor' deme hakkını kazandın.", "Tebrikler! Artık vaktinin %90'ını sistemini özelleştirmeye, kalan %10'unu ise aslında bilgisayarda ne yapman gerektiğini hatırlamaya harcayacaksın.",
"İyi seçim! Ama unutma, Linux'ta her şey 'sadece küçük bir config değişikliği' ile çözülür. Bazen.", "Kurulum bittikten 1 saat sonra yeni bir distro arayışına gireceğini biliyoruz. Distro-hopping hastalığının tedavisi yok.",
"Distro seçtin, güzel. Şimdi DE seçimi, WM tartışmaları, terminal vs GUI kavgaları... Maceraya hazır mısın?" "İyi seçim! Ama unutma, Linux'ta her şey 'sadece küçük bir config değişikliği' ile çözülür... Tabii o değişikliğin ne olduğunu bulman 3 gün sürmezse.",
]; ];
const deRoasts: Record<string, string[]> = { const deRoasts: Record<string, string[]> = {
kde: [ kde: [
"KDE sevdin. Widget'lar, temalar, özelleştirme... Artık masaüstünü süslemekle geçecek saatler.", "Ayarlar menüsünde kaybolmaya hazır mısın? Widget'ların arasında debelenirken asıl işini yapmayı unutma.",
"KDE Plasma seçimi = Ayarlar menüsünde kaybolmaya hazırsın." "KDE Plasma: Her şeyin ayarı var ama hiçbir şey tam istediğin gibi değil.",
], ],
gnome: [ gnome: [
"GNOME beğendin. Minimal, temiz, extensions'sız yarım. Ama extension store'da saatler geçireceksin.", "Sistemi kullanabilmek için 20 tane extension kurman gerekecek. 'Minimalizm' adı altında özellikleri kırpılmış bir sistemdesin.",
"GNOME seçtin. Ya workflow'u çok sevdin ya da sadece dock istiyordun." "GNOME workflow'u: 'Biz ne diyorsak onu kullanacaksın, özelleştirme senin neyine?' elitizmi.",
], ],
xfce: [ xfce: [
"Xfce sevdin. Hafif, geleneksel, güvenilir. Tıpkı eski bir dost gibi.", "Yıl olmuş 2025, hala 90'ların arayüzünü kullanıyorsun. 'Hafif' olması seni kurtarmayacak.",
"Xfce: 'Kaynak kullanımı 200MB geçmesin' diyenler için." "Xfce: Bilgisayarın çok eski olduğundan değil, tamamen 'estetik sevmiyorum' dediğin için kullandığın o arayüz.",
], ],
cinnamon: [ cinnamon: [
"Cinnamon beğendin. Windows 7 nostaljisi hissediliyor.", "Windows'tan kaçıp Windows kopyasına sığınmak... Güzel ironi.",
"Cinnamon: 'Değişim istemiyorum ama Linux istiyorum' diyenler için." "Cinnamon: 'Ben değişim istemiyorum, bana başlat menümü verin yeter' diyenlerin kalesi.",
], ],
i3: [ i3: [
"i3/Tiling WM sevdin. Artık fareyi kullanmak ayıp sayılır.", "Fareyi çöpe at, artık sadece klavyeyle yaşıyorsun. Ama arkadaşların bilgisayarını açınca hiçbir şey yapamıyor, tek kazancın bu.",
"Tiling WM seçtin. Konfigürasyon dosyaları yeni evin olacak." "Konfigürasyon dosyaları senin yeni evin oldu. Güle güle otur.",
], ],
hyprland: [ hyprland: [
"Hyprland beğendin. Wayland + Tiling + Animasyonlar = Rice heaven.", "Animasyonlar o kadar hızlı ki ne yaptığını sen de anlamıyorsun ama r/unixporn'da 200 upvote garanti.",
"Hyprland: r/unixporn'da paylaşım yapmaya hazırsın." "Wayland ve tiling... En küçük bir güncellemede ekranının neden gelmediğini sorgularken başarılar.",
], ],
pantheon: [ pantheon: [
"Pantheon sevdin. macOS vibes ama özgür. elementary seni bekliyor.", "Mac OS çakması bir arayüzle 'ben özgürüm' diye gezmek... Apple görse dava açardı.",
"Pantheon: Apple esintisi, Linux özgürlüğü." "Estetik güzel ama o kısıtlamalar seni de bir yerden sonra darlamayacak mı?",
], ],
dde: [ dde: [
"Deepin DE beğendin. En güzel masaüstü ortamı, tartışmasız.", "En güzel görünen masaüstü ama Çin'e giden veri trafiği de bir o kadar güzeldir muhtemelen.",
"DDE sevdiysen görsellik önemli senin için. Anladım." "Deepin: Görsellik için gizliliğini satanların ortak noktası.",
] ],
}; };
export function generateRoast(context: RoastContext): string { export function generateRoast(context: RoastContext): string {
const matchingRoasts = generalRoasts.filter(r => r.condition(context)); const matchingRoasts = generalRoasts.filter((r) => r.condition(context));
let roastParts: string[] = []; let roastParts: string[] = [];
if (matchingRoasts.length > 0) { if (matchingRoasts.length > 0) {
const primaryRoast = matchingRoasts[0]; const primaryRoast = matchingRoasts[0];
const randomMessage = primaryRoast.messages[Math.floor(Math.random() * primaryRoast.messages.length)]; const randomMessage =
primaryRoast.messages[
Math.floor(Math.random() * primaryRoast.messages.length)
];
roastParts.push(randomMessage); roastParts.push(randomMessage);
} }
if (context.likedDEs.length > 0) { if (context.likedDEs.length > 0) {
const topDE = context.likedDEs[0]; const topDE = context.likedDEs[0];
const deKey = topDE.toLowerCase().replace(/\s+/g, '').replace('plasma', '').replace('sway', 'i3'); const deKey = topDE
.toLowerCase()
.replace(/\s+/g, "")
.replace("plasma", "")
.replace("sway", "i3");
if (deRoasts[deKey]) { if (deRoasts[deKey]) {
const deRoast = deRoasts[deKey][Math.floor(Math.random() * deRoasts[deKey].length)]; const deRoast =
deRoasts[deKey][Math.floor(Math.random() * deRoasts[deKey].length)];
roastParts.push(deRoast); roastParts.push(deRoast);
} }
} }
if (roastParts.length === 0) { if (roastParts.length === 0) {
roastParts.push(genericRoasts[Math.floor(Math.random() * genericRoasts.length)]); roastParts.push(
genericRoasts[Math.floor(Math.random() * genericRoasts.length)],
);
} }
if (context.nvidia && context.gaming && !roastParts.some(r => r.includes('NVIDIA'))) { if (
roastParts.push("NVIDIA + Gaming combo'sun var. Linux'ta oyun artık gerçek, tadını çıkar!"); context.nvidia &&
context.gaming &&
!roastParts.some((r) => r.includes("NVIDIA"))
) {
roastParts.push(
"NVIDIA + Gaming combo'sun var. Linux'ta oyun artık gerçek, tadını çıkar!",
);
} }
if (context.oldHardware && context.lowRam) { if (context.oldHardware && context.lowRam) {
roastParts.push("Eski donanımla Linux kullanmak çevreci bir hareket. Dünyayı kurtarıyorsun!"); roastParts.push(
"Eski donanımla Linux kullanmak çevreci bir hareket. Dünyayı kurtarıyorsun!",
);
} }
if (context.systemdHate) { if (context.systemdHate) {
roastParts.push("Systemd düşmanı bir seçim yaptın. Init savaşlarının gazisi olarak selamlıyorum."); roastParts.push(
"Systemd düşmanı bir seçim yaptın. Init savaşlarının gazisi olarak selamlıyorum.",
);
} }
return roastParts.join(" "); return roastParts.join(" ");
} }
export function generateQuickRoast(distroId: string, isNvidia: boolean, isGaming: boolean): string { export function generateQuickRoast(
distroId: string,
isNvidia: boolean,
isGaming: boolean,
): string {
const quickRoasts: Record<string, string> = { const quickRoasts: Record<string, string> = {
arch: isNvidia ? "NVIDIA ile Arch? Cesursun." : "Arch seçtin. Wiki'ye abone ol.", arch: isNvidia
? "NVIDIA ile Arch? Cesursun."
: "Arch seçtin. Wiki'ye abone ol.",
gentoo: "Her şeyi derleyeceksin. Bol sabır.", gentoo: "Her şeyi derleyeceksin. Bol sabır.",
nixos: "Declarative dünya seni bekliyor.", nixos: "Declarative dünya seni bekliyor.",
qubes: "VM içinde VM. Paranoya seviyesi: Maximum.", qubes: "VM içinde VM. Paranoya seviyesi: Maximum.",
@@ -420,7 +445,10 @@ export function generateQuickRoast(distroId: string, isNvidia: boolean, isGaming
mint: "Windows'tan kaçış güzel olacak.", mint: "Windows'tan kaçış güzel olacak.",
ubuntu: "Klasik ama güzel.", ubuntu: "Klasik ama güzel.",
fedora: "Bleeding edge, stabil ambalajda.", fedora: "Bleeding edge, stabil ambalajda.",
popos: isNvidia && isGaming ? "NVIDIA + Gaming = Pop!_OS. Perfect match." : "System76 seni seviyor.", popos:
isNvidia && isGaming
? "NVIDIA + Gaming = Pop!_OS. Perfect match."
: "System76 seni seviyor.",
manjaro: "Arch lite. Akıllı seçim.", manjaro: "Arch lite. Akıllı seçim.",
garuda: "Göz zevkin yerinde.", garuda: "Göz zevkin yerinde.",
elementary: "macOS vibes, Linux kalbi.", elementary: "macOS vibes, Linux kalbi.",
@@ -444,7 +472,7 @@ export function generateQuickRoast(distroId: string, isNvidia: boolean, isGaming
mxlinux: "Dengeli ve güvenilir.", mxlinux: "Dengeli ve güvenilir.",
kubuntu: "KDE + Ubuntu love.", kubuntu: "KDE + Ubuntu love.",
lubuntu: "Hafif ve hızlı.", lubuntu: "Hafif ve hızlı.",
xubuntu: "Dengeli Xfce." xubuntu: "Dengeli Xfce.",
}; };
return quickRoasts[distroId] || "İyi seçim!"; return quickRoasts[distroId] || "İyi seçim!";