Niri 26.04: Kaydırmalı döşemeli Wayland compositör
(github.com/niri-wm)- Kaydırmalı döşemeli Wayland compositör, arka plan bulanıklaştırma, screencast, render alma ve giriş işleme genelindeki iyileştirmelerle daha olgun hale geldi
- Arka plan bulanıklaştırma ana dala dahil edildi;
ext-background-effectdestekleyen pencereler ve layer-shell öğeleri artık ek bir niri ayarı olmadan bulanıklaştırma isteyebiliyor, ayrıca niri tarafındaki kurallarla da bulanıklaştırma zorla uygulanabiliyor - Screencast tarafında hem PipeWire hem de
wlr-screencopyyolunda imleç işleme, dynamic cast başlatma yöntemi, IPC sorgulama ve zorla sonlandırma, çoklu kopyalama ve kaynak serbest bırakma sorunları birlikte iyileştirildi - Render yapısı, iterator tabanlı modelden push tabanlı modele yeniden kuruldu; böylece render listesi oluşturma hızı ana makinelerde 2-3 kat, eski Eee PC'de ise 8 kat arttı ve bellek kullanımı da azaldı
- Eski donanım ve giriş ortamları da elden geçirildi; eski Intel sistemlerde ekran görüntüsü ve screencast, IME ve GTK 4 popup çakışmaları, yüksek yenileme hızlı fare ve tablet eşlemesi, iç içe niri'de DMA-BUF hızlandırması gibi alanlarda gerçek kullanım kapsamı genişledi
Temel değişiklikler
- GitHub organizasyonu kişisel hesaptan niri-wm hesabına taşındı ve ilgili projeler de birlikte düzenlendi
- awesome-niri: ilgili projeler listesi
- artwork: rozet ve duvar kağıdı koleksiyonu
- Paketleyicileri ilgilendiren değişiklikler de var
- Asgari desteklenen Rust sürümü 1.85'e yükseldi
niri.serviceartık niri ikili dosyası yoluna/usr/bin/değerini sabit olarak yazmıyor- dinit servis dosyası yapısı değişti: 3bfa4a7
Arka plan bulanıklaştırma
- Arka plan bulanıklaştırma ana dala girdi ve pencere ile layer-shell bileşenleri
ext-background-effectprotokolü üzerinden bulanıklaştırma isteyebiliyor- Ek niri ayarı olmadan birçok kabuk ve uygulama bunu doğrudan kullanabiliyor
- Dank Material Shell v1.4.5: ayarlar bölümünden etkinleştirilebilir
- Noctalia kabuğu: ayar ve belgeler mevcut
- Vicinae launcher desteği
- foot v1.26:
blur=true - kitty v0.46.2:
background_blur 1 - Ghostty: v1.4'te desteklenecek
- Quickshell: v0.3'te desteklenecek
- winit: v0.31'de desteklenecek
- Uygulama henüz
ext-background-effectdesteklemese bile niri tarafında window-rule ve layer-rule ile bulanıklaştırma açılabiliyor- Ayrıntılı ayarlar ve kısıtlamalar Window Effects belgelerinde özetlenmiş durumda
- niri'de yapılandırılan bulanıklaştırma için doğru
geometry-corner-radiusgerekiyor - Karmaşık surface biçimlerinde çalışmıyor
- xray blur ile normal blur birlikte sunuluyor ve varsayılan değer xray blur
- xray blur, duvar kağıdını bir kez bulanık hesaplayıp statik görsel gibi yeniden kullandığı için çok daha verimli
- Yalnızca duvar kağıdı değiştiğinde yeniden hesaplanıyor
- Animasyonlu duvar kağıtlarında verimlilik avantajı azalıyor
- Yeni
layereşleştiricisi ile normal blur yalnızca top, overlay gibi katmanlara uygulanacak şekilde değiştirilebiliyor
- Bulanıklaştırma özelliğinin uygulanması, render yapısında değişiklik gerektirecek kadar zordu
- Normal blur, kare ortasında daha önce render edilmiş pikselleri yeniden okuyup bulanıklaştırdıktan sonra render almaya devam ediyor
- xray blur için doğru arka plan kırpmasını sağlamak adına pencere konumunun render kodunun geneline taşınması gerekti
- Overview içinde xray blur desteklenirken, overview'ı yeniden render etmeme özelliğinin de korunması gerekiyordu
- screencast engelli pencerelerle birlikte de çalışması gerekiyordu
- Bulanıklaştırma olmadan yalnızca xray tek başına kullanılabiliyor; ayrıca blur kaynaklı renk şeritlenmesini azaltan noise ve saturation efektleri de ayrı ayrı kullanılabiliyor
- Yeni
popupsbloğu ile window rule veya layer rule içinde popup menülere de saydamlık ve arka plan efektleri uygulanabiliyor- GTK 4'teki
has-arrow=truepopup'ları gibi yuvarlatılmış dikdörtgen olmayan durumlarda görünüm tuhaf olabilir - Web uygulamaları veya Electron Wayland popup kullanmadığı için niri bunları işleyemez
ext-background-effectözelliğini doğrudan uygulayan istemciler, daha karmaşık bulanıklaştırma biçimlerini de ele alabilir
- GTK 4'teki
İsteğe bağlı include
- config include için isteğe bağlı include eklendi
include optional=true "optional-config.kdl"şeklinde kullanıldığında dosya olmasa bile yapılandırma yüklemesi başarısız olmaz- Dosya yoksa her yapılandırma yeniden yüklemesinde bir uyarı günlüğü bırakılır ama yapılandırma yüklenmeye devam eder
- Dosya daha sonra oluşursa izlenen değişiklik algılanır ve otomatik olarak yeniden yüklenir
- Dosya mevcut olup söz dizimi hatası içeriyorsa yine ayrıştırma hatası sayılır
- include yolundaki
~, ev dizini olarak genişletiliyor~/file.kdl,/home/user/file.kdlolarak genişletilir
İşaretçi sarmalama ve kaydırma
- Görünümü kaydıran hareket sırasında işaretçi ekranın bir kenarından karşı kenara sarılıyor
- Blender'a benzer bir davranış
- Böylece monitör kenarına yakın başlansa bile birden fazla pencere doğal şekilde kaydırılmaya devam edilebiliyor
Ekran yayını iyileştirmeleri
- niri’nin ekran yayını, hem PipeWire üzerinden xdg-desktop-portal-gnome hem de
wlr-screencopyüzerinden iyileştirildi -
Pencere ekran yayınında imleç işleme
- PipeWire’da imleci doğrudan video karelerinin içine çizmek yerine artık imleç meta verisi destekleniyor
- Video karelerine imleç eklenmiyor; imleç simgesi ve koordinatlar ayrı bir arabellek üzerinden gönderiliyor
- OBS veya tarayıcı gibi tüketici tarafı imleci kendisi çiziyor
- Hem monitör yakalama hem de pencere yakalamada çalışıyor
- Pencere yakalamada imleç, yalnızca gerçekten ilgili pencerenin veya onun açılır pencerelerinin üzerindeyse görünüyor
- Sürükle ve bırak simgesi de birlikte çiziliyor
- Uygulama sürecinde PipeWire’daki bellek bozulması sorunu da ortaya çıkarıldı ve düzeltildi
- PipeWire’ın niyeti ile libwebrtc gibi tüketici uygulamaları arasındaki uyumsuzluk da doğrulandı
- Test edilen ortamlarda düzgün çalışıyor
screenshot-window show-pointer=trueile pencere ekran görüntülerine de işaretçi eklenebiliyor
- PipeWire’da imleci doğrudan video karelerinin içine çizmek yerine artık imleç meta verisi destekleniyor
-
Dynamic cast target başlatma yöntemi değişti
- Dynamic cast target, ekran yayını hedefini kısayol tuşuyla anında değiştirme özelliğidir
- Önceden başlatılırken 1×1 siyah piksel video akışı olarak açılıyordu
- Artık ilk gerçek hedef seçilene kadar video akışı başlatılmıyor
- Microsoft Teams’te görülen kısa süreli 1×1 video sorununu önleyebilir
-
Cast IPC
- Devam eden ekran yayınları artık IPC üzerinden görülebiliyor
niri msg castsile etkin cast’ler görüntülenebiliyor- event stream üzerinden cast events aboneliği yapılabiliyor
Castnesnesi tür, geçerli hedef ve etkin durum bilgisi sağlıyor- PipeWire ekran yayını node ID, wlr-screencopy ise istemci süreç ID bilgisi sağlıyor
- DankMaterialShell bu IPC’yi kullanarak zaten ekran yayını göstergesi açıyor
niri msg action stop-cast --session-id <ID>ile PipeWire ekran yayını zorla sonlandırılabiliyor
-
wlr-screencopy ile ilgili sınırlamalar ve düzeltmeler
- wlr-screencopy, ekran yayını ile ekran görüntüsünü sağlam biçimde ayırmanın bir yolunu sunmadığı için bazı sezgisel yöntemler gerekiyor
- xdg-desktop-portal-wlr, tek bir wlr-screencopy manager nesnesini sürekli açık tuttuğundan bitiş anını hemen anlamak zorlaşıyor
- Bu sorunlar yeni
ext-image-copy-captureprotokolünde çözülüyor, ancak henüz niri’ye eklenmedi
-
Diğer ekran yayını düzeltmeleri
- damage kopyalanırken, wlr-screencopy istemcisi imleci istemese bile her zaman dahil edilmesine neden olan hata düzeltildi
- damage içeren çok kareli kopyaların aynı anda istenmesi durumundaki davranış düzeltildi
- İstemci kapandığında olduğu gibi bazı durumlarda niri’nin wlr-screencopy verilerinin serbest bırakılmaması sorunu giderildi
- Varsayılan PipeWire ekran yayını arabellek sayısı 16’dan 8’e düşürüldü
pipewire-rsiçindeki use-after-free sorunundan kaçınmak için struct alanlarının sırası yeniden düzenlendi- Dynamic cast hedefi pencereye çevrildiğinde bir kare boyunca z-order’ın yanlış çizilmesine neden olan render hatası düzeltildi
Animasyonlar ve pencere davranışı
- Animasyon senkronizasyonu daha doğru hale geldi
- niri, tek tek animasyonların ayrı ayrı ayarlanmasına izin veriyor; ancak tam olarak eşleşmeleri gerektiğinde senkronize çalıştırıyor
- Pencere yeniden boyutlandırma animasyonu, buna neden olan yatay görünüm kaydırma animasyonuyla senkronize ediliyor
- Tam ekran veya büyütülmüş durumdan çıkarken görünüm kaydırma senkronizasyonunun eksik olması nedeniyle pencerenin anında geri dönüp ekranın yavaşça kayması sorunu düzeltildi
- Belirli sürükleme yollarında diğer döşemeli pencerelerin yatay hareket animasyonunun atlanmasına neden olan sorun giderildi
- Bu sorun, büyütülmüş pencerenin sürüklenerek büyütmeden çıkarılması ve özgün olarak yüzen bir pencereyse tekrar floating durumuna döndürülmesiyle
- monitör kenarına yakın sürüklemelerde sağ/sol workspace kaydırma mantığının çakışmasından kaynaklanıyordu
- Düzeltme commit’i: df3f3979e936ed6800b4fbd55843bb0fe2554f15
- Workspace’in en sol sütunu dışarı çekilip tekrar bırakıldığında özgün yerine değil sağ tarafa yerleşmesi sorunu da düzeltildi
- Yapılandırma hatası bildirimlerinin gösterim süresi artık animasyon slowdown/speedup ayarlarından etkilenmiyor
IME ve açılır pencereler
- GTK 4 açılır metin girişleri ve IME birlikte çalışmama şeklindeki eski bir sorun dolaylı olarak çözüldü
- Fcitx5 gibi bir IME açıkken metin girişli açılır pencereler açılamıyordu
- Açılır pencere işaretçi ve klavye grab’ini alırken IME de klavye grab’i kullandığı için çakışma oluşuyordu
- niri açılır pencerenin grab’ini bıraktığında pencere çoğu zaman anında kapanıyordu
- Smithay yapısını tamamen değiştirmeden çalışmasını sağlamak için bazı kontroller gevşetildi
- Artık IME kullanıcıları Nautilus’ta dosya yeniden adlandırma gibi işlemleri yapabiliyor
Sürükle ve bırak ile giriş aygıtları
- Sürükle ve bırak sırasında Escape tuşuna basarak işlem iptal edilebiliyor
- Giriş aygıtları genelinde de çeşitli düzeltmeler yapıldı
- Yüksek yenileme hızlı farelerle
hide-after-inactive-msveya idle izleme daemon’ları birlikte kullanıldığında zamanla yavaşlama sorunu düzeltildi - libwayland-server v1.23 ve sonrasında, Wayland arabellek boyutu artırılarak yanıt vermeyen pencereler üzerinde yüksek yenileme hızlı fare hareketlerinde pencerenin hızlıca çökmesi önleniyor
map-to-focused-outputtablet seçeneği eklendi; böylece sabit tek bir çıktı yerine o anda odaklanmış çıktıya eşleme yapılabiliyor- Workspace’in en üst pikselinde imlecin büyütülmüş pencereyi her zaman doğru işaret etmemesi sorunu düzeltildi
- Alt-Tab’in ekranda görünmeden önce fare girdisine tepki vermesi sorunu düzeltildi
- Trackball’un
on-button-downkaydırması artık overview içinde de çalışıyor - Özel .xkb keymap yüklendikten sonra da Num Lock durumu korunuyor
- tmux üzerinden başka bir TTY’de başlatıldığında giriş aygıtlarının hiç kullanılamaması sorunu düzeltildi
- libinput plugins yükleme desteği etkinleştirildi
- Yüksek yenileme hızlı farelerle
GPU profilleme ve render optimizasyonu
- Smithay ve niri'de kullanılan Tracy için GPU profilleme entegrasyonu eklendi
- GPU zaman damgası sorgularını gönderip, tamamlanan değerleri toplayarak Tracy'ye ileten çalışma Smithay'e eklendi: çalışma PR'ı
- Hem Smithay içindeki GPU işleri hem de compositörün kendi GPU işleri için aralık işaretleme mümkün hale geldi
- Tek bir kare içinde DRM buffer render'ı ile PipeWire ekran yayını buffer render'ının nasıl çakıştığı izlenebiliyor
- Çoklu GPU sistemlerde GPU başına izler de görülebiliyor
- blur performansının beklenenden yavaş olmadığını doğrulamak ve GPU render darboğazından kaynaklanan dropped frame sorunlarını teşhis etmek kolaylaştı
- Render listesi oluşturma yöntemi iterator tabanlı yapıdan push tabanlı yapıya dönüştürüldü
- Önceden render öğeleri
-> impl Iterator<Item = ...>biçiminde birleştiriliyordu - Koşullu dallanma, lifetime,
&selfödünç alma,&mut Rendererile çakışma, araVectahsisi ve crate sınırı sorunları gibi çeşitli karmaşıklıklar vardı - Yeni yapıda render fonksiyonu, öğeleri içeri itmek için
push: &mut dyn FnMut(Element)alıyor - Ara fonksiyonlar, üst düzey
pushçağrısını saran closure'larla mevcut mantığı koruyabiliyor - Geçici
Vecortadan kalktı ve borrowing sorunları da çözüldü - niri'de iterator'ın erken sonlandırma avantajına pratikte ihtiyaç yoktu
- Önceden render öğeleri
- Bu refaktör ile render listesi oluşturma hızı büyük ölçüde arttı
- Ana makinede 2~3 kat hızlandı
- Eski bir Eee PC'de 8 kat hızlandı
- Render listesi oluşturma, doğrudan GPU render süresinin kendisi olmasa da ekran yeniden çizilmese bile sık çalıştığı için iyileştirmenin etkisi büyük
- Bellek kullanımı da azaldı; yeni yoldaki tahsislerin çoğu artık yalnızca çıktı vektörünü büyütmek için yapılıyor
- Ayrıntılı motivasyon ve diff için PR'a bakılabilir
Eski donanım desteği
- Eski Intel dizüstülerde ekran görüntüsünün başarısız olmasına neden olan sorunun Smithay'deki hatalı OpenGL enum değeri olduğu ortaya çıkarıldı ve düzeltildi: kök neden analizi PR'ı
- niri shader'ları da küçük ölçüde optimize edildi; böylece çok eski bir ASUS Eee PC'nin kısıtlı GPU'sunda bile
- pencere yeniden boyutlandırma animasyonu
- compositörün yuvarlatılmış köşeleri
- çalışabilir hale geldi
Diğer iyileştirmeler
- Bazı sistemlerde belirli uygulamalar kapandıktan sonra oluşan VRAM sızıntısı sorunu düzeltildi
ext-foreign-toplevel-listprotokolü eklendi; böylece Quickshell gibi ortamlarda Wayland pencere nesneleri ile niri IPC pencere ID'lerini eşlemek kolaylaştı- Ayarlarda yinelenen bind hatası oluştuğunda, aynı bind'in ilk tanım konumu da birlikte gösteriliyor
- Mod+LMB ile pencere sürüklerken grabbing cursor gösteriliyor
niri msg action load-config-filekomutuna--pathargümanı eklendi; böylece çalışma zamanında başka bir yapılandırma dosyasına geçilebiliyor- nested niri'ye DMA-BUF desteği eklendi; böylece Mesa'nın
wl_drmkullanımını bırakmasının ardından donanım hızlandırma yeniden çalışıyor - niri'nin monitör kenarına yakın layer-shell açılır pencerelerine eklediği padding kaldırıldı
- Varsayılan yapılandırma değişiklikleri de yer alıyor
- Mod+M:
maximize-window-to-edges - Mod+Shift+R:
switch-preset-column-width-back
- Mod+M:
force-disable-connectors-on-resumehata ayıklama bayrağı eklendi; böylece TTY geçişi veya uykudan dönüş sırasında ekran zorla blank yapılabiliyor- windowed fullscreen modunda pencere köşelerinin doğru şekilde dik açı olarak işlenmesi düzeltildi
- overview açıkken ekranın sürekli yeniden çizilmesine neden olan sorun düzeltildi
- Etkileşimli sürükleme sırasında
relative-to=workspace-viewgradient border render'ı küçük ölçüde düzeltildi - Important Hotkeys iletişim kutusunda diaeresis kısayolunun render'ı iyileştirildi
niri msg actioniçindekiexpel-window-from-columnaçıklaması, gerçek davranışla uyumlu olacak şekilde alttaki pencereyi dışarı atan yöntem olarak düzeltildi- İstemciler yakın zamanda kaldırılmış bir output'u kullanmaya çalıştığında oluşabilen çeşitli panic durumları düzeltildi
clip-to-geometry,y_invertbuffer ekleyen istemcilerle birlikte kullanıldığında render'ın bozulmasına yol açan sorun düzeltildi- OpenBSD derlemesi düzeltildi
- nested niri artık kendi pencere
app-iddeğerini ayarlıyor - Yeni bir GPU takıldığında
ignore-drm-devicehata ayıklama ayarı yeniden değerlendiriliyor; böylece/dev/dri/by-path/sembolik bağlantıları da kullanılabiliyor
Smithay güncellemeleri yansıtıldı
- Smithay güncellemesiyle birlikte çeşitli altyapı iyileştirmeleri de geldi
- ARM Mac gibi bazı cihazlarda otomatik GPU seçimi iyileştirildi
- Asahi ve Pinephone artık elle
render-drm-deviceayarı yapmadan doğrudan çalışabiliyor - wl_shimeji gibi bazı layer-shell istemcilerinin davranışı iyileştirildi
- Monitör EDID bilgisinin geç yüklendiği dock desteği iyileştirildi
- Eski Intel sistemlerde ekran görüntüsü ve ekran yayını artık çalışıyor
- Uyku sırasında USB-C dock çıkarıldığında eski output'un kalması sorunu düzeltildi
- Bazı istemcilerde
zxdg_exporter_v2panic sorunu düzeltildi - Pano protokolünü açıkça yok etmeyen istemcilerdeki bellek sızıntısı düzeltildi
- GTK 4.23 geliştirme sürümünde ortaya çıkmaya başlayan text-input content hint ve purpose ile ilgili panic sorunları düzeltildi
- drag-and-drop, IME text input, çoklu GPU ve genel performans da iyileştirildi
1 yorum
Hacker News yorumları
Niri o kadar iyi ki, yaklaşık 5 ay önce ona geçtim ve o zamandan beri son birkaç yılda Windows'tan ayrılmakla verdiğim en iyi karar gibi geliyor
Yazara gerçekten çok büyük minnet duyuyorum
dotfiles'ımda eskiden CLI araç ayarları, tema geçişi vb. için kurulum script'leri vardı; artık Arch tabanlı sistemlerde Niri'yi de tamamen destekliyor
Yeni bir masaüstü ortamını hızlıca denemek istiyorsanız https://github.com/nickjj/dotfiles başlangıç için oldukça iyi
Hem ana masaüstümde hem de seyahat dizüstü bilgisayarımda kullanıyorum
Resmi değil ama gerçekten harika
Win/Cmd + L ile tiling ve scrolling arasında geçiş yapıyorsunuz ve şu anda bunu gerçekten çok sık kullanıyorum
Niri sayesinde scroll tabanlı pencere yönetimiyle ilk kez tanıştım ve hemen kafama yattı
Kısa süre önce Mac için OmniWM'e çalışma alanı başına tam Niri emülasyon modu geldi; neyse ki Sequoia ile de uyumlu, bu yüzden hemen ana pencere yöneticim oldu
[1] https://github.com/BarutSRB/OmniWM
Niri yaklaşımını ilk öğrendiğimde gerçekten çok hoşuma gitmişti ve Mac'te de benzer bir şey aramayı sürdürdüm
Şimdiye kadar kullandıklarım arasında en iyi uygulama bu; elbette ufak tefek bazı quirks var ama en azından benim için daily driver olarak fazlasıyla yeterli
Özellikle tabbed columns gerçekten çok iyi
Bakımcıyı ve katkıda bulunanları alkışlıyorum
Mac kullanıyorsanız OmniWM'i tavsiye ederim
Sadece Niri tarzı yerleşim değil, Hyprland'e daha yakın yerleşimler de var ve bu sayede macOS'ta çalışmak çok daha rahat hale geldi
https://github.com/BarutSRB/OmniWM
İlk kullanmaya başladığım dönemde de paylaşmıştım; kullanmaya devam ettikçe gerçekten iyi olduğunu gördüm ve güçlü şekilde tavsiye edebilirim
Onu izledikten sonra bu yazılımı denemek isteyecek kimse olacağını sanmıyorum; mevcut kullanıcı olsanız bile sildirmek isteyebilir
GNOME için PaperWM extension kullanıyorum; muhtemelen Niri de buradan ilham aldı
Kesinlikle ilginç bir çalışma biçimi ama bir çalışma alanında pencere sayısı 3'ü geçince biraz zahmetli hissettirdiği için ona tamamen aşık olmuş değilim
Yine de ciddi şekilde deniyorum ve bir GNOME extension'ı olduğu için fazla ayar yapmadan GNOME DE'nin geri kalanını olduğu gibi kullanabilmek güzel
top bar, idle timeout, bildirimler gibi şeyleri de halletmek gerektiği içindi
Ama yakın zamanda Wayland için desktop shell'ler olduğunu öğrendim ve bunlar GNOME benzeri bir ortamdan beklediğiniz şeylerin çoğunu büyük zahmet olmadan sağlıyor
Ayar diyalogları, uygulama tepsisi, kaynak izleme, top bar; hepsi dahil
Şu anda dank material shell kullanıyorum ve desktop shell ile compositor'ü istediğiniz gibi eşleştirebilmek gerçekten çok hoş
Genel olarak iş akışım iyileşti ama bunun yanında desktop grid gibi iki üç başka extension'ı da kaldırabildim
Birden fazla özel fullscreen çalışma alanı arasında hızlıca geçiş yapmaya ve sadece klavyeyle pencere yönetimi yapan tiling WM akışına tamamen alıştım
Genelde her çalışma alanında tek bir uygulama ya da tmux açık tek bir terminal tutuyorum; sadece ara sıra iki uygulamayı yan yana koyuyorum
Benzer akıştan Niri'ye geçenlerin zihinsel modelinin nasıl değiştiğini gerçekten merak ediyorum
Steam ve oyun wiki'sinin olduğu bir çalışma alanı, Emacs ve doküman tarayıcısının olduğu bir çalışma alanı, Godot ve oyun geliştirme uygulamalarının olduğu bir çalışma alanı gibi
Niri'nin güzel yanı, çok fazla pencere açıldığı için bir şeyleri kapatmam gerekiyormuş baskısını neredeyse hiç hissettirmemesi
Ayırıp düzenlemek oldukça kolay
Uygulama bazlı çalışma alanlarını neden kullandıklarını pek anlamıyorum
Tek bir Firefox içinde iş ve hobi sekmelerinin birbirine karışmasından da hoşlanmıyorum
awesome, qtile, kısa bir süre xmonad, ardından i3, Wayland'e geçince sway, biraz da hyprland kullandım
Hep karşıma çıkan sorun, pencere sayısı 3'ü geçince yatay yerleşimin pek iyi çalışmaması, dikey bölmelerin de fazla küçülmesiydi
Öte yandan okuduğum şeyin yanına yeni bir pencere açmak ya da terminalin yanında bir ipython grafiği göstermek istediğim anlar sık oluyordu
O zaman ya stacked layout'a almak ya da yeni bir çalışma alanına taşımak gerekiyordu; bu da ciddi bir sürtünme yaratıyor, pencere yönetimi yüzünden çalışma akışını sık sık bölüyordu
Niri'de yeni pencereyi sadece açıyorsunuz; ihtiyacınız olan yerde beliriyor, diğer pencereler solda ve sağda kalıyor, siz de scroll yaparak gidiyorsunuz
Şimdi iş akışım eskisine göre biraz daha dağınık ama aslında bu daha hoşuma gidiyor
Geleneksel tiling WM'ler düzen ister ve bunu kolaylaştırır; Niri'de ise ille de düzenli olmak zorunda değilsiniz
Bazen pencereyi hemen bulamadığımda overview kullanıyorum; ayrıca rofi ile pencere araması da ekledim
İlk başta sway günlerimden kalan alışkanlıkla isimli çalışma alanlarını kullanmaya devam ettim ama artık kullanmıyorum
Çalışma alanı 1, zellij açık fullscreen terminaldi; 2 tarayıcıydı; 3 de iki kadar sohbet uygulamasıydı ve aralarında kısayollarla geçiyordum
Başta Niri'yi Plasma'dan daha hafif ve farklı olduğu için kullanıyordum ama şimdi iş akışım da biraz değişti
Pencerelerin çoğunu hâlâ ekran boyutunda kullanıyorum; 1 geliştirme, 2 tarayıcı ve bazen e-posta okuyucu, 3 sohbet uygulamaları gibi benzer şekilde düzenliyorum
Ama kısa komutlar yazmak ya da uzun süren işleri açık bırakmak için yeni terminal penceresi çok daha sık açıyorum
KDE'de bu pencereler arkada üst üste duruyordu; şimdi ise 1'in içinde yan yana duruyorlar
Geriye dönüp bakınca Alt-Tab ile gidip gelmek artık oldukça sıkışık hissettiriyor; Super-hjkl ile gezinmek çok daha hafif geliyor
Elbette kişiden kişiye değişir ama pencerelerin üst üste binmek yerine yan yana yerleşmesi iş akışını daha hafif hissettiriyor
i3 ya da sway gibi manuel tiling WM'ler ve büyük bir monitör kullandığınızda ekranı birden çok çalışma bölgesine ayırıp her bölgeye role göre birkaç uygulama yerleştirerek çalışma alanı sayısını azaltabilirsiniz
scrolling benzer ama farklı bir akış ve özellikle küçük ekranlarda esnekliğin önemli olduğu durumlarda iyi çalışıyor
O akış floating WM'e daha uygun
tiling WM'in asıl gücü gerçekten pencereleri tile etmesinde ve benim için tarayıcı, editör ve terminalden oluşan holy trinity bunun özü
Ayrıca super+hjkl ya da yön tuşlarıyla uzamsal olarak gezebilmek gerekiyor
Bu yüzden proje bazlı çalışma alanları çok daha doğal ve tiling WM'e daha uygun hissettiriyor
Niri, yeni pencereleri sağda açıp mevcut yerleşimi bozmadığı için bunu çok daha iyi yapıyor
Örneğin bir PDF açsanız bile mevcut düzeni koruyarak yeni pencereye kolayca geçebiliyorsunuz
İlgili bağlantılar
The dank case for scrolling window managers - https://news.ycombinator.com/item?id=46820468 - Ocak 2026 (61 yorum)
Niri 25.11 released with alt-tab and other improvements - https://news.ycombinator.com/item?id=46097051 - Kasım 2025 (1 yorum)
Niri – A scrollable-tiling Wayland compositor - https://news.ycombinator.com/item?id=45461500 - Ekim 2025 (229 yorum)
The Future Is Niri - https://news.ycombinator.com/item?id=43342178 - Mart 2025 (216 yorum)
Niri: A scrollable-tiling Wayland compositor - https://news.ycombinator.com/item?id=37367687 - Eylül 2023 (37 yorum)
NNN (Niri-Nix-Noctalia) dots denemek isterseniz flake'imi alabilirsiniz
https://github.com/MostlyKIGuess/nix-flake-public
Sadece dark mode gibi şeyler bile uğraştırıyordu; Noctalia ise tam da benim istediğim yönde görünüyor
Paylaştığın için teşekkürler
mangowm'in wl-only dalını kullanıyorum (wlroots 0.20 tabanlı)
Çok daha az kaynak tüketiyor, daha fazla yerleşim sunuyor ve daha az sorun çıkarıyor
Niri tarafının görsel efektleri daha iyi görünüyor olabilir ama yine de bir kez denemeye değer
HDR gerekiyorsa biraz daha beklemek lazım
https://github.com/mangowm/mango
Benim deneyimimde Niri gerçekten taş gibi sağlamdı
Sanki Rus bir dahi, 100 milyon dolarlık Claude tokenından daha iyi bir şey yapmış gibi görünüyor
Ama tabii bu asla toplu bir çılgınlık değil; o yüzden gidip SPY alın havası var
Sürüm notlarını okumak bile başlı başına güzel
Geçen yılın sonunda i3'ü 10 yıldan uzun kullandıktan sonra Niri'ye geçtim
Monitör boyutuna bağlı olmayan yatay scroll ve tanımladığınız kısayol sayısıyla sınırlı olmayan çalışma alanı sayısı gerçekten özgürleştirici
Grafik tarafındaki işçilik de iyi
Ama hâlâ can sıkan bir eksik var: X uyumluluk katmanı xwayland-satellite, X uygulamaları ile Wayland uygulamaları arasında drag and drop'u henüz desteklemiyor
[1]: https://davidyat.es/2026/01/28/niri/
[2]: https://github.com/Supreeeme/xwayland-satellite/issues/133
Eskiden hep aynı şeyleri aynı çalışma alanlarında tutma alışkanlığım vardı, bu yüzden hatırlamak kolaydı; şimdi ise yerleşim oraya buraya dağılabiliyor
Ayrıca scratch'i epey özlüyorum
Biraz daha uğraşıp ayarları elden geçirsem çözülebilir gibi duruyor ama henüz ona zaman ayırmadım