Kaydırılabilir döşemeli Wayland compositor: Niri
(github.com/YaLTeR)- Niri, pencereleri yatayda sonsuza uzanan şekilde dizen, kaydırılabilir döşemeli bir Wayland compositor'dır
- Yeni pencere açılsa bile mevcut pencerelerin boyutunu değiştirmeyen bir yapıya sahiptir; her monitörün bağımsız bir pencere şeridi bulunur
- Dinamik çalışma alanları, sekme grupları, fare/dokunmatik yüzey hareketleri gibi modern özellikler sunar
- Çoklu monitör desteği, Xwayland entegrasyonu, fractional scaling gibi günlük kullanıma uygun çeşitli ortamları destekler
- Rust tabanlı yüksek kararlılık ve performans optimizasyonu sayesinde birçok kullanıcı için günlük kullanım önerilir
Genel Bakış
- Niri, kaydırma tabanlı döşemeli pencere yönetimini destekleyen bir Wayland compositor olarak, açık kaynaklıdır ve günlük kullanımda kararlı olan kendine özgü bir pencere yerleşim arayüzü sunar
- Geleneksel tiling window manager'lardan farklı olarak, pencereleri sağa doğru sonsuza uzayan sütunlar halinde yerleştirir ve hangi pencere açılırsa açılsın mevcut pencerelerin boyutunu otomatik olarak değiştirmez
- Her monitör bağımsız bir pencere şeridine sahiptir ve pencereler komşu monitöre taşmaz
Temel Özellikler
- Dinamik çalışma alanları: GNOME tarzında, her monitör için bağımsız çalışma alanları dikey yönde dinamik olarak oluşturulur ve yönetilir
- Monitör bağlanıp çıkarıldığında çalışma alanı yerleşimi korunur; yeniden bağlandığında ise özgün monitörüne geri döner
- Çalışma alanı/pencere genel görünümü: pencere ve çalışma alanı düzenini tek bakışta gösteren Overview modu
- Yerleşik ekran görüntüsü ve kayıt arayüzü, xdg-desktop-portal-gnome üzerinden ekran paylaşımı/akış desteği
- Hassas pencereler ekran paylaşımında engellenebilir
- Hedef pencerenin dinamik olarak değiştirilmesi desteklenir
- Dokunmatik yüzey/fare hareketleri, pencereleri sekme grupları halinde birleştirme, çeşitli düzen ayarları (boşluk, kenarlık, pencere boyutu vb.) sunar
- Gradyan kenarlıklar (Oklab, Oklch), animasyonlar (özel shader kullanımı), yapılandırma dosyası için canlı yeniden yükleme
- Ekran okuyucu desteğiyle erişilebilirlik güçlendirilir
Kurulum ve Kullanım Rehberi
- Günlük kullanım için kararlıdır ve birçok kullanıcı tarafından memnuniyetle düzenli olarak kullanılmaktadır
- Tam bir masaüstü ortamı olmadığından, Waybar (panel) ve Fuzzel (başlatıcı) gibi araçlarla birlikte kullanılması önerilir
- İlgili projeler, eklentiler ve belgeler awesome-niri üzerinden görülebilir
Ortam ve Uyumluluk
- Tasarımın merkezinde çoklu monitör bulunur ve karma DPI ile fractional scaling tam olarak desteklenir
- NVIDIA GPU üzerinde de sorunsuz çalışabilir
- Floating windows desteği vardır (25.01 sürümünden itibaren)
- Tablet, dokunmatik yüzey, dokunmatik ekran (dokunmatik yüzey hareketleri desteğiyle) gibi çeşitli giriş aygıtlarını destekler
- Başlıca Wayland protokolleriyle uyumludur (layer-shell, gamma-control, screencopy vb.)
- Xwayland (xwayland-satellite entegrasyonu, 25.08 sürümünden itibaren), hafif sistemler için optimizasyon sağlar (Eee PC 900 gibi düşük donanımlı cihazlarda çalıştığı kaydedilmiştir)
Geliştirme ve Topluluk
- Rust tabanlı olarak geliştirildiği için kararlılık, bakım kolaylığı ve performans açısından güçlüdür
- PaperWM'den (GNOME Shell uzantısı) ilham alır; her monitörün bağımsızlığına ve performans optimizasyonuna odaklanır
- Topluluk Matrix ve Discord gibi platformlarda aktif biçimde destek ve iletişim sağlar
- Geliştirici röportajları, teknik sunumlar, LWN yazıları gibi çeşitli içeriklerde dış medyada da yer almıştır
Benzer Projeler
- GNOME Shell için PaperWM, KDE için karousel, sway/i3 tabanlı scroll·papersway, Hyprland için hyprscrolling·hyprslidr, macOS için PaperWM.spoon gibi kaydırmalı döşeme iş akışını hayata geçiren çeşitli projelerle karşılaştırılabilir
Katkı ve Açık Kaynak Bilgisi
- Toplulukta programlama ve programlama dışı pek çok alanda katkı yapılabilir; ayrıntılar için CONTRIBUTING.md dosyasına bakılabilir
- Lisans GPL-3.0
- Kod tabanı ağırlıklı olarak Rust'tan (%98,9) oluşur ve çok sayıda dış katkıcı projeye katılmaktadır
Özet
Niri, kaydırılabilir döşemeli pencere yönetimi için özgün bir kullanıcı deneyimini çeşitli modern özelliklerle birleştiren, Rust tabanlı yüksek güvenilirlik, performans ve erişilebilirlik sunan bir Wayland compositor'ıdır. Özellikle çoklu monitör ve farklı iş akışlarına uyum konusunda güçlüdür; açık kaynak ve topluluk ekosistemi de aktif biçimde büyümektedir.
2 yorum
Daha önce kullanmıştım; kötü değil ama birden fazla pencere açınca kaydırmanın anlamı kalmıyor.
Zaten gitmek de fazla uzak oluyor ve nerede olduklarını da hatırlayamıyorsunuz, bu yüzden pencereleri bulmak için mecburen metin tabanlı arama kullanmanız gerekiyor.
Sık kullanılan 'grup numarası' yöntemi, belirli ölçütlere göre (sık kullanılanlar ya da kullanım amacına göre) sınıflandırma yapmaya uygun olduğu için akılda tutması kolay.
Hacker News görüşleri
Niri sayesinde, 14 yıldır xmonad kullanan ben bile tamamen geçiş yaptım. Niri’de masaüstü içinde pencere sayısında sınır yok ve döşeme yapısını sürekli yeniden düzenlemek gerekmiyor; bu yüzden eskiden birden fazla masaüstünü konuya göre ayırarak yaptığım işi artık tek bir masaüstünde kolayca yönetebiliyorum. Eskiden ayrı ayrı "editör ve terminal" masaüstü ile "tarayıcı" masaüstü kullanıyordum; şimdi ise aynı masaüstü içinde yatay kaydırmayla ilgili tarayıcı penceresine gidebildiğim için çok rahat. Giriş eşiği çok düşük ve varsayılan ayarlarla da gayet iyi çalışıyor. Wayland desteğiyle ilgili bazı sorunlar vardı (özellikle Zoom gibi bazı uygulamalarda), ama zaman geçtikçe bunlar da çözülüyor. Donanımım 2017 System76 Bonobo WS, 2x GTX 1080, çoklu ekran (4k 2x ölçek + 2 adet 1080p), PopOS. Son dönemdeki gösterişli animasyon gibi tartışmalı değişiklikleri deneyimlemedim; ayrıca kaynağı kendin derleyip kullanmak sana zor gelmiyorsa giriş eşiğini doğal olarak düşük hisseden biriyim, o yüzden görüşüm biraz taraflı olabilir
Niri yakın zamanda xwayland-satellite entegrasyonunu iyileştirdi; böylece Wayland desteklemeyen programları da kolayca çalıştırabiliyorsun ilgili bağlantı
i3/sway’in güzel tarafı, konu bazlı masaüstleri atayabilmen (tarayıcı, kod, Slack vb.); böylece tek bir kısayolla doğrudan ihtiyacın olan masaüstüne geçebiliyorsun ve iş akışı verimliliği CMD+Tab ya da Mission Control’a dayanan MacOS’tan kat kat yüksekti. Niri’nin kaydırmalı yaklaşımı ise bana daha çok pencere arayıp duruyormuşsun hissi veriyor; o yüzden biraz tuhaf geliyor
Ben de i3’ü 10 yıldan uzun süre kullandım ama Niri’yi dener denemez bir "hah!" anı yaşadım. Son derlemelere "minimap" benzeri bir uzaklaştırılmış görünüm geldi; eskiden ara sıra nerede olduğumu karıştırdığımda çok faydalı oluyor
Niri’de tek eksikliğini hissettiğim şey scratch layer. Bazı uygulamaların mutlaka tile edilmesi gerekmiyor; nerede olursan ol anında açılabilmeleri lazım. Mesela bir matrix client gibi mesajlaşma uygulamasına hemen cevap verebilmek iyi olurdu. Medya oynatıcı için de aynı şey geçerli. GNOME’daki Paperwm’de bu özellik var
7 yılı aşkın süredir i3 kullanıyorum ama kaydırmalı yaklaşımın neden iyi olduğunu pek anlayamıyorum. Tiling WM’lerde güzel ekran görüntüsü çok oluyor ama bunun gerçek üretkenliğe ne kadar katkı sağladığını merak ediyorum. Yatay hareket ederken tam olarak ne oluyor? Mesela tam ekran bir editörden, yarısı görünen bir tarayıcıya geçince editör kesiliyor mu, sıkışıyor mu? Bir de dmenu ile daha derin entegre olmuş, aynı zamanda tarayıcı gibi davranan bir tiling WM olsa güzel olurdu
Niri’yi ana masaüstümde birkaç aydır kullanıyorum ve LWN’de deneyimlerimi yazdım. Genel olarak klasik tiling WM/compositor’lar bana pek uymuyordu ama Niri’nin tiling modeli tam bana göre. Niri’den önce PaperWM ve GNOME eklentileri kullanıyordum; ama COSMIC’e sadece scroll tiling eklenseydi muhtemelen yine de Niri kullanmaya devam ederdim
COSMIC ekibi bunu 1.0 sürümünden sonra ekleyebilir gibi görünüyor. O zamana kadar bir System76 çalışanı, başka compositor’ların (Niri dahil) kullanılabilmesini sağlayan gayriresmî bir eklenti yaptı
Ben de PaperWM’den Niri’ye geçerken tereddüt etmiştim. PaperWM’de farklı uygulamalar için ayrı ayrı ayar yapmak gerekmiyordu; bu yüzden GNOME’un kendi özellikleri (launcher, ayarlar, locker, ses/ağ widget’ları vb.) çok rahattı. Ama PaperWM’nin kendisinde zaman zaman pencere yeniden boyutlandırma hataları ve dikey boyutlandırma sorunları gibi can sıkıcı taraflar vardı. Sonuçta Niri çok daha net geldi
COSMIC’e tiling eklenirse harika olur. COSMIC’i gerçekten çok seviyorum, tek eksiği bu
COSMIC ile arasındaki farkı merak ediyordum, faydalı oldu
Şu anda Niri’nin popülaritesi patlamış durumda ve geliştirici aşırı yük altında. Katkıda bulunmak istiyorsan Ivan’a sponsor olabilir ya da PR açmadan önce diğer PR’ların incelemesine yardım edebilirsin. Hem Niri hem Smithay yüksek kalite sunuyor ve kritik sorunlar olmadan zamanla daha fazla özellik kazanıyor
Rastgele birinin PR’ları önceden incelemesinin pratikte ne kadar faydalı olduğu konusunda şüpheliyim. Sonuçta merge etmeden önce maintainer zaten her şeyi kendisi inceleyecek; konuya yüzeysel hâkim birinin ahkâm kesmesi de katkı sunan kişi açısından rahatsız edici olabilir
Her gün Niri kullanan biriysen bence mutlaka bir teşekkür göstermelisin; ben zaten sponsor oldum. Bu arada kurulumumu paylaşıyorum, belki birine ilham olur kurulum bağlantısı
Hyprland kullanıcısıysan neden Niri’ye geçmen gerektiğini merak ediyorum; sonsuz pencere özelliği en büyük çekim noktası mı?
Sponsor bağlantısı
MacOS’ta her şeyi hep tam ekran kullanıp pencereler arasında cmd-tab/cmd-backtick ile geçiyorum; ama gerçek Linux tiling iş akışını gerçekten kıskanıyorum. MacOS’ta böyle bir ortamı kuramamak sinir bozucu, üstelik şirket politikaları yüzünden Linux’a da geçemiyorum. Daha iyi bir iş akışını bilip onu uygulayamamanın ne kadar sıkıcı olduğunu anlayan çok kişi vardır bence
Son bir aydır komorebi’yi MacOS’a port ediyorum. Kaydırmalı düzeni Niri kadar iyi değil ama iki platformda da iyi çalışıyor. Video1 Video2
Benzer şekilde, sadece MacOS kullanabildiğim bir durumda tam ekran bir sanal makinede Linux çalıştırmayı denemiştim. Teknik olarak hâlâ MacOS olduğu için IT buna sorun çıkarmadı ve güvenlik politikalarından da geçti. Hatta bazı şirketler VMware lisansı bile sağlıyor
Mac için pencere yöneticileri arasında Aerospace en iyisiydi
Mac’te Yabai pencere yöneticisini kullanıyorum; büyük monitörde çok iyi ama tek bir dizüstüyle kullanınca birkaç space içinde sadece bir ya da iki pencere kalıyor ve uygun bir iş akışı bulamadım
flashspace öneririm. Uygulamaları tam ekran açarken workspace’leri tuşlara atarsan animasyon olmadan anında geçiş yapabiliyorsun
Niri’yi denemememin nedeni, yapılandırma dosyasının tek bir dosyayla sınırlı olmasıydı; birden fazla cihazda biraz farklı ortamlar tutarken (örneğin gitignore edilen yerel ayarlar gibi) bu çok kullanışsızdı. Ama kısa süre önce iki büyük PR merge edildi ve ilgili PR örneğinde olduğu gibi kullanıcı bazlı override/include mümkün hâle geldi. Henüz sürüme girmedi ama yakında gelmesini bekliyorum
15 yılı aşkın süredir xmonad kullanan biri olarak, yeni bir tiling WM’in neden iyi olduğunu merak ediyorum. Wayland compositor’larda da sonuçta "tiling + Wayland" dışında ne avantaj var diye düşünüyorum. Özellikle geçmişte Wayland denediğim her seferde, X11’e kıyasla hep kritik hatalar oluyordu (özellikle Nvidia ortamında)
Nvidia+Arch+Gnome3+Wayland ortamında son 1 yıldır Wayland’a yeniden şans verdim; artık neredeyse sorunsuz şekilde her şey çalışıyor ve Firefox özellikle çok daha akıcı ve verimli
Wayland’da hâlâ özel işler yaptığında sorunlar var (örneğin grafik tablet yönünü çevirememe gibi). Ama yine de Nvidia, 570 sürücüsünden itibaren iyi çalışıyor
Hangi Linux dağıtımında kullandığın önemli. Ben Fedora’da uzun süredir Wayland kullanıyorum; hem Intel hem Nvidia makinelerde büyük bir sorun yaşamadım
Benim de benzer bir hikâyem var (arada bir
rmkazasıyla ayarlarımı silip baştan yazmak zorunda kalmıştım): 2009’dan '23’e kadar xmonad kullandım, sonra Niri’ye geçtim. Ayrıntılı nedenler burada. PopOS, 2x GTX 1080, çoklu ekranda da sorunsuz çalışıyor. Kesinlikle tavsiye ederimAsus Rog G14 + Nvidia 3060 ile Wayland denedim; bu kadar şüpheli yaklaşmışken sadece
drm.modesetayarını yapmak yetti ve doğrudan düzgün çalıştı. İki harici monitör (1 HDMI, 1 DP over USB-C) de sorunsuz tanındı. Sadece daisy-chain bağlantı dışında memnundum. Deneyimim yeni olduğu için her durumu görmedim ama benim için X’ten daha iyi çalışıyorBirkaç hafta önce i3’ten Niri’ye geçtim ve çok memnunum. Pencereleri ve workspace’leri kullanma biçimi alışkanlıklarıma daha doğal uyuyor. Her workspace’te proje bazlı çalışıyorum; sağ tarafta geçici olarak bir terminal ya da tarayıcı açtığımda diğer pencereler etkilenmiyor, yeniden yerleşmiyor; bu da tek seferlik referans bakma ya da komut çalıştırma işlerini çok rahatlatıyor. Tek sorun şu ki artık gerçekten ultrawide bir monitör istiyorum
Niri konseptinin Sway’e uygulanmış bir örneği: scroll bağlantısı
Dün PopOS’u yeniden kurarken Niri’ye geçtim ve hemen sezgisel geldi. Eskiden i3wm kullanırken olduğu gibi pencere boyutlarıyla uğraşmak gerekmiyor; Niri’de pencereler workspace içinde artsa bile ayrı bir yeniden düzenleme ihtiyacı neredeyse hiç olmuyor, bu yüzden odağım çok daha az bozuluyor. Sistemim RTX 3090, Pop OS 24.04 beta, 4K 43 inç monitör; Niri’yi
cargo buildile kurmak da kolaydı. VS Code, Obsidian, Zoom, Blender gibi X11 uygulamalarını çalıştırmak için mutlaka xwayland-satellite kurmak gerekiyorHyprland’i özelleştirirken çeşitli eksikler yüzünden tekrar GNOME’a dönmüştüm (tarayıcıda onlarca hatta yüzlerce sekme, tray eklentileri gibi şeyler benim için şarttı), ama GNOME’da da her sürüm yükseltmesinde eklenti uyumluluğu bozulduğu için artık tamamen GNOME’dan çıkmaya karar verdim. Bu kez River, QTile ve Niri’yi denedikten sonra Niri’de kaldım ve ihtiyacım olan özellikleri yavaş yavaş kendim ekliyorum. Dinamik workspace gruplama sezgisel ve kullanışlı; klavye kısayollarını da zevkime göre ayarlayabiliyorum. DE tarafını waybar ve swaync ile tamamlıyorum. Claude Code/Codex gibi otomasyon araçlarıyla script yazmak da epey eğlenceli oldu. Örneğin waybar’da mevcut pencere etkinliğini gösteren niri-workspaces, fuzzel entegrasyonuyla workspace adlarını değiştiren niri-workspace-names, özel AltTab davranışları gibi şeyler deniyorum. Buraya canlı thumbnail gibi özellikler eklemek ise büyük bir proje olurdu. Yeni kodlama ajanları sayesinde ayrıntılı dokümantasyon olmasa bile ortamı istediğim gibi değiştirmek çok daha mümkün hâle geldi