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