iToverDose/Yazılım· 7 MAYIS 2026 · 00:01

macOS Araçlarını Linux'e Taşımak: Portmanteau ile Geliştirici Deneyimi

macOS’e özel geliştirilen bir menü çubuğu aracını Linux’e uyarlamak nasıl mümkün oluyor? Portmanteau adlı KDE Plasma widget’ıyla yerel geliştirme portlarını yönetmenin yeni yollarını keşfedin.

DEV Community2 dk okuma0 Yorumlar

Günümüzde çoğu AI veya geliştirici aracı ilk etapta macOS için yayınlanıyor. Ancak bu durum artık bir engel değil — sadece biraz yaratıcılık gerektiriyor. Birkaç yıl öncesine kadar böyle bir duruma denk geldiğimde ya vazgeçiyor ya da alternatifler arıyordum. Bugünse aklıma ilk gelen şey, o aracı "fork" etmek oluyor. Geçtiğimiz haftalarda karşılaştığım Port Menu adlı basit macOS menü çubuğu uygulaması da tam olarak bu kategorideydi.

macOS’ten Linux’e Geçişte Karşılaşılan Sıkıntılar

Port Menu, geliştirme sırasında sık kullandığımız yerel sunucuları (Vite, Rails, Django, Flask, Next.js vb.) görüntüleyip yönetmeyi kolaylaştıran hafif bir araç. Ancak macOS’e özel olması, benim gibi Fedora KDE kullanan biri için bir sorun oluşturuyordu. Bu yüzden aklıma gelen ilk şey, bu aracın Linux’e uyarlanabilir olup olmadığını araştırmak oldu. Bir OpenCode oturumuyla başlayan süreç, aslında yeni bir projeye dönüştü: Portmanteau.

SwiftUI’dan QML’e: Arayüz Değişikliği Zorunlu

Öncelikle, Port Menu’un SwiftUI/AppKit ile yazılmış bir macOS uygulaması olduğunu unutmamak gerekiyor. Linux’e uyarlarkenyse arayüzün tamamen değişmesi gerekiyordu. KDE Plasma widget’ı olarak yeniden tasarlanan bu proje, QML ve Plasma paketleme standartlarına uygun şekilde geliştirildi. Temel fikir aynı kalsa da, masaüstü entegrasyonu ve kullanıcı arayüzü tamamen farklıydı.

Planlama: Projeyi Yönetilebilir Parçalara Ayırmak

Projeye başlamadan önce, ticket aracını kullanarak bir geliştirme planı oluşturdum. OpenCode ajanımla yapılan sohbetler sonucunda beş ana epic belirlendi:

  • Linux Tarayıcı Core’ı (yerel portları tespit eden arka uç)
  • KDE Plasma Widget MVP’si (ön yüz arayüzü)
  • Kullanıcı Eylemleri ve Güvenlik (aç, kopyala, öldür gibi işlevler)
  • Paketleme ve Yerel Kurulum (dağıtım için gerekli adımlar)
  • Polish, Güvenilirlik ve Sürüm Hazırlığı (son dokunuşlar)

Bu planlama aşaması, projeyi "deneme" seviyesinden "gerçek geliştirme" seviyesine taşıdı.

Geliştirme Süreci: Ajanın Rolü ve İnsanın Katkısı

Ajan, Python tabanlı bir tarayıcı ve Plasma widget’ı olarak iki ana bileşen geliştirdi. Tarayıcı, yerel dinleyen portları tespit ederken, widget bu verileri kullanıcı dostu bir arayüzde sunuyordu. Ajan ayrıca aç, URL kopyala, öldür gibi temel eylemleri de ekledi.

Ancak geliştirme sürecinde bazı sorunlar ortaya çıktı:

  • Paketleme sistemi çok kırılgandı.
  • Tarayıcının zaman aşımı JSON sözleşmesini bozabiliyordu.
  • Plasma widget’ında çalışma zamanı hataları vardı.

Bu noktada, ben devreye girerek arayüzdeki boşlukları, gereksiz düğmeleri ve işlevsel olmayan "öldür" butonunu düzelttim. Ajanın eksik kaldığı yerler, insan dokunuşuyla tamamlandı.

Portmanteau’nun Doğuşu: Hem Araç Hem de Öğrenme Deneyimi

Proje ilerledikçe, Port Menu adının yerini Portmanteau aldı. Hem isminin anlamı (iki kelimenin birleşimi) hem de aracın yapısına uygun olması, bu değişikliği cazip kıldı. Ayrıca, widget ikonu olarak bir gemi simgesi kullanılması da benim kişisel tercihimdi.

Bu proje, sadece bir aracın Linux’e uyarlanmasıyla ilgili değil. Aynı zamanda ajan destekli geliştirmenin gücünü ve küçük projelerin ne kadar değerli olabileceğini gösteren bir örnek.

Sonuç: Küçük Projelerden Büyük Değişimler Doğabilir

Portmanteau, macOS’e özel bir aracın Linux’e uyarlanmasıyla ortaya çıktı. Bu süreç, sadece bir forkin ötesindeydi — yeniden tasarlama, planlama ve insan-makine işbirliği gerektirdi. Bugün, bu widget sayesinde yerel geliştirme sunucularımı daha hızlı ve verimli yönetiyorum. Gelecekte ise benzer projelerle geliştirici deneyimini daha da iyileştirmeyi hedefliyorum.

Yapay zeka özeti

macOS’e özel geliştirilen Port Menu aracını Linux’e uyarlamanın adımlarını keşfedin. Portmanteau adlı KDE Plasma widget’ıyla yerel port yönetimini kolaylaştırın.

Yorumlar

00
YORUM BIRAK
ID #JXZA7K

0 / 1200 KARAKTER

İnsan doğrulaması

6 + 9 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.