deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

OmniPTY, tmux tarzı bölme özelliğini, dosya ağacını ve bir prompt'u tek bir Rust terminalinde birleştiriyor

Rust ile yazılmış, macOS ve Linux için GPU ile render edilen OmniPTY terminali, Hacker News ana sayfasına taşındı; bölme özelliği, workspaces, vim tarzı dosya ağacı ve isteğe bağlı bir prompt'un tamamı yerleşik olarak geliyor.

OmniPTY, tmux tarzı bölme özelliğini, dosya ağacını ve bir prompt'u tek bir Rust terminalinde birleştiriyor

OmniPTY adlı yeni bir terminal emülatörü, 18 Ekim'de GitHub deposuna bağlantı veren bir Show HN gönderisiyle Hacker News ana sayfasında göründü. Tamamen Rust ile yazılmış ve macOS ile Linux'ta doğal olarak çalışan proje, bir birleşik yapı argümanı ileri sürüyor: sade bir terminali bölme için tmux ile, ayrı bir dosya yöneticisiyle, bir prompt çerçevesiyle ve bir copy-mode eklentisiyle eşleştirmek yerine OmniPTY, bunların tamamını tek bir uygulamanın birinci sınıf özellikleri olarak ele alıyor.

Kutudan çıkanlar

Projenin GitHub sayfasına göre pencereler, vim tarzı gezinmeyle kontrol edilen ve kendisini otomatik olarak odağı verilmiş shell'in dizinine göre yeniden köklendiren bir dosya ağacının yanında yer alıyor. Sekmeler ve bölmeler, aynı düzen ve dizinlerle yeniden açılmaları için sabitlenebilen adlandırılmış workspaces'te gruplanıyor. Copy mode, scrollback'i hareketler, arama, görsel seçim ve yanking ile birlikte vim benzeri bir tampona dönüştürüyor; diğer yerleşik özellikler arasında regex geçişleriyle canlı scrollback araması, önceki prompt'lar arasında geçiş ve herhangi bir pencerede çalıştırılmış her komutu dizini ve çıkış durumuyla birlikte arayan bir geçmiş görünümü bulunuyor.

OSC 133 işaretlerini okuyan bir shell entegrasyonu, OmniPTY'ye neyin çalıştığını, ne kadar sürdüğünü ve başarısız olup olmadığını bildiriyor — bu bilgiler durum çubuğunda geçen süre, sekmelerdeki etkinlik noktaları, arka plandaki başarısız pencerelerde bir yanıp sönme ve uzun ya da hatalı komutlar için masaüstü bildirimleri olarak ortaya çıkıyor. Durum çubuğu ayrıca geçerli workspace'i, sekmeyi, çalışma dizinini ve git dalını doğal olarak render ediyor; ön plandaki süreç bir ssh oturumu olduğunda bunu gösteriyor ve yapılandırılmış sunucular pencere kenarında vurgu rengi taşıyabiliyor. İsteğe bağlı bir powerline prompt'u TOML segmentlerinden derleniyor ve dotfile'lara dokunmadan enjekte ediliyor; devre dışı bırakmak starship veya powerlevel10k kurulumlarını olduğu gibi bırakıyor. Satır içi görseller kitty graphics protocol, iTerm2 protokolü ve sixel üzerinden çalışıyor; scrollback'teki resimler metin gibi kayıyor, yeniden akıyor ve temizleniyor.

Kaputun altında

README'ye göre render işlemi, Zed editörünün arkasındaki UI çerçevesi olan GPUI üzerinden GPU'da çalışırken, emülasyon alacritty_terminal'den — yani Alacritty'nin PTY yönetimi ve VT ayrıştırıcısından — geliyor; böylece vim, htop ve hatta tmux'un kendisi gibi programlar normal davranıyor. Yapılandırma, kaydedildiğinde yeniden yüklenen tek bir TOML dosyasında yaşıyor. Proje, uygulamanın hesap gerektirmediğini, yapay zekâ özelliği içermediğini ve telemetri toplamadığını belirtiyor; tek ağ etkinliği, daha yeni bir sürümün var olup olmadığını kontrol etmek.

Erişilebilirlik

macOS'ta OmniPTY, bir Homebrew cask'ı veya DMG ile kuruluyor; derlemeler Developer ID ile imzalanmış ve notarize edilmiş durumda. Kurulu kopyalar kendilerini güncelliyor; açılışta ve her altı saatte bir kontrol yapıyor ve bir güncelleme yalnızca imzası uygulamanın derlendiği anahtarla eşleştiğinde uygulanıyor. Linux'ta derlemeler x86_64 üzerinde Wayland veya X11'i hedefliyor ve depodaki bir PKGBUILD ile kurulabiliyor — AUR kayıtları yeniden açıldığında bir AUR pakemi planlanıyor — ya da kurulum betiği root olmadan ~/.local'e çalışan bir tarball ile kurulabiliyor. Belirtilen gereksinimler Apple Silicon veya Intel üzerinde macOS 12 veya üzeri, ya da glibc 2.35 veya daha yeni bir sürüme sahip Linux, bir Vulkan sürücüsü ve bildirimler için libnotify. JetBrains Mono'nun bir Nerd Font derlemesi paketle geliyor ve yerleşik prompt zsh ile bash'i hedeflerken, diğer shell'ler kendi prompt'larıyla sorunsuz çalışıyor.

Oxide'den ad değişikliği

Proje daha önce Oxide olarak biliniyordu; bu adı, aynı adı taşıyan ilgisiz bir şirketin yolunu tıkaması üzerine 0.9.0 sürümünde bıraktı. Uygulama içi güncelleyici, mevcut kurulumları yapılandırmayı, temaları ve sabitlenmiş workspaces'leri koruyarak taşıyor; eski yapılandırma ve önbellek dizinleri ilk açılışta yeni konumlara kopyalanıyor. Homebrew kullanıcılarının yeni cask'a geçmesi gerekiyor, $OXIDE_SESSION ve $OXIDE_VERSION ortam değişkenleri OMNIPTY karşılıkları devralmadan önce 0.9.x hattı boyunca export edilmeye devam ediyor ve eski uygulama yoluna sabitlenmiş bir Dock simgesinin yeniden eklenmesi gerekiyor.

Neden önemli

Birçok terminal iş akışı sessizce yığınlar hâline geldi: bir multiplexer, bir prompt çerçevesi, bir fuzzy finder ve bir dosya yöneticisi, her biri kendi yapılandırması ve hata modlarıyla. OmniPTY, Rust ile yazılmış ve Zed ile Alacritty'nin kanıtlanmış bileşenlerini yeniden kullanan tek bir doğal, GPU ile render edilen uygulamanın bu yığını, örneğin shell'in cd'sini izleyen bir dosya ağacı veya her pencerede paylaşılan bir copy mode gibi daha sıkı bir entegrasyonla replaced edebileceği yönünde bir bahse girişiyor. Açık bir şekilde hesapsız, yapay zekâsız ve telemetrisiz duruşu, onu son zamanlardaki bulut bağlantılı, yapay zekâ destekli terminal dalgasının karşısına konumlandırıyor. Bunu Alacritty, Kitty, WezTerm ve Ghostty gibi köklü rakiplere karşı sürdürmek zor olan kısım; ancak Hacker News görünürlüğü projeye erken ve teknik açıdan ilgili bir kitle kazandırıyor.

  • #terminal
  • #rust
  • #open-source
  • #macos
  • #linux

İlgili yazılar