Ege Bostancı

Fedora 44'te Niri: Hyprland'den kayan pencerelere geçiş

7 Eylül 2026 7 dk okuma

Niri’yi Fedora’ya kurmak işin kısa kısmıymış. Asıl uğraş, Hyprland’de kullandığım masaüstü düzenini taşımak ve Windows sanal makinesindeki farenin neden istediğim gibi davranmadığını çözmek oldu.

İlk denemeyi 27 Ağustos’ta, eski Fedora kurulumumda Plasma ve Hyprland’in yanına Niri ekleyerek yapmıştım. Paket kurulmuş, yapılandırma doğrulanmıştı ama oturum açıp kullanmamıştım. 6 Eylül’de mevcut Fedora 44 sisteminde yeniden kurdum; bu kez Noctalia ve Ghostty ile sıfırdan bir yapılandırma hazırlayıp gerçekten Niri’ye geçtim.

Bu yazı o geçişin notları. Her makineye kopyalanabilecek eksiksiz bir dotfiles rehberi değil; kendi çift monitörlü düzenimde neleri taşıdığımı, nerede takıldığımı ve neyin işe yaradığını anlatıyorum. Paket sürümleri ve test sonuçları 6–7 Eylül 2026 tarihli kurulumuma ait.

Niri’nin farkı: Pencereleri ekrana sığdırmak yerine şeritte gezmek

Niri, Wayland üzerinde çalışan bir scrollable-tiling compositor. Türkçesiyle, pencereleri yatayda kaydırılabilen bir şerit üzerinde sütunlar halinde düzenliyor.

Temel fark burada. Yeni pencere açtıkça her şeyi aynı ekranın içine sıkıştırmak zorunda değilsiniz. Şerit boyunca ilerleyip görmek istediğiniz sütuna geçiyorsunuz.

Ben bu düzeni, yeni pencerelerin geniş bir sütunda açıldığı ve Super+←/→ ile aralarında gezindiğim bir yapıya çevirdim. Bunu sağlayan ayara birazdan geleceğim.

Fedora 44’te kurulum: Ek depo gerekmedi

Kendi Hyprland kurulumumdan farklı olarak Niri için COPR eklemem gerekmedi. Kullandığım Niri paketi Fedora 44’ün resmî updates deposundaydı.

sudo dnf install niri

6 Eylül’deki kurulumda toplam 11 yeni paket kuruldu. Bunların arasında niri 26.04-1.fc44, X11 uygulamaları için xwayland-satellite 0.8.2-1.fc44 ve xdg-desktop-portal-gnome 50.0-1.fc44 vardı. Hyprland yapılandırmasına dokunulmadı.

Varsayılan Niri yapılandırmasının kullandığı Alacritty, fuzzel ve swaylock gibi araçlar da paket bağımlılıkları arasındaydı. Ancak ben terminalde Ghostty, masaüstü arayüzünde Noctalia kullanıyordum. Niri’ye geçerken bu tercihleri korudum.

Buradaki ayrım önemli: Niri’yi kurmak, bu yazıda geçen Noctalia, Ghostty, Looking Glass ve kişisel başlatıcıların tamamını kurmak anlamına gelmiyor. Ben bunların zaten bulunduğu bir sistemin üzerine Niri ekledim.

Hyprland yapılandırmasını kopyalamak yetmiyor

Niri’nin ana yapılandırma dosyası şu konumda:

~/.config/niri/config.kdl

Dosya KDL biçiminde. Hyprland’de kullandığım Lua yapılandırmasını buraya kopyalamak yerine ekran tanımlarını, kısayolları ve pencere kurallarını Niri’nin biçimine uyarlamak gerekti.

Fedora paketinde başlangıç için örnek yapılandırma ve çevrimdışı belgeler de bulunuyordu:

/usr/share/doc/niri/default-config.kdl
/usr/share/doc/niri/wiki/

Yapılandırmayı kontrol etmek için kullandığım komut:

niri validate

Çalışan oturumu sorgulamak ve komut göndermek içinse niri msg var. Hyprland’deki hyprctl ile benzer bir ihtiyacı karşılıyor; fakat komutları birebir aynı değil. Eski betiklerdeki çağrıları yalnızca araç adını değiştirerek taşımamak gerekiyor.

Ben eski Niri yapılandırmasını sıfırdan değiştirmeyi seçtim. Kendi sisteminizde aynı yolu izleyecekseniz önce mevcut dosyanızın yedeğini alın.

Noctalia ve Ghostty düzenini korumak

Yeni yapılandırma Noctalia 5.0.1 ve Ghostty etrafında hazırlandı. Türkçe ve İngilizce klavye düzenleri arasında geçişi Super+Space ile yaptım. Pano kaydı, Solaar ve yetkilendirme pencereleri için kullandığım hyprpolkitagent servisi de başlangıç düzenine eklendi.

Portal tarafında ~/.config/xdg-desktop-portal/niri-portals.conf dosyası sistemdeki örnekten hazırlandı. Dosya seçici için ilgili bölüme şu tercih eklendi:

org.freedesktop.impl.portal.FileChooser=gtk;

Bu tek satır bütün portal yapılandırması değil. Ayrıca niri validate sonucunun başarılı olması, ekran paylaşımı veya dosya seçici gibi masaüstü işlevlerinin uygulamalar içinde test edildiği anlamına gelmiyor.

İki monitör ve on çalışma alanı

Hyprland’de kullandığım ekran yerleşimini Niri’ye taşıdım:

EkranÇözünürlük ve yenileme hızıKonumÇalışma alanları
DP-12560×1440, yaklaşık 180 Hz0,01–5
DP-31920×1080, yaklaşık 120 Hz2560,1806–10

İkinci ekran, ana ekranın sağında ve dikeyde ortalanmış durumda. Looking Glass üzerinden kullandığım Windows sanal makinesini de bu 1080p ekrana yerleştirdim.

Bunlar benim donanımıma ait değerler. Özellikle DP-1 ve DP-3 adlarını başka bir sistemde aynı kabul etmemek gerekiyor.

Yeni pencereler geniş açılsın

Niri’ye geçtikten sonra istediğim davranış şuydu: Yeni bir uygulama açıldığında sütun genişlesin, ben de sağ ve sol tuşlarıyla sütunlar arasında gezeyim.

Bunun için mevcut genel window-rule bloğuna şu satır eklendi:

open-maximized true

Bu, tam ekran açmakla aynı şey değil; sütunu büyütme davranışı. Yeni açılan pencerelere uygulanıyor, mevcut pencereleri geriye dönük olarak değiştirmiyor. Looking Glass için tanımlanan özel tam ekran kuralı da korundu.

Kullandığım kısayollar

Aşağıdaki tablo Niri’nin varsayılan kısayolları değil, benim Noctalia ve Ghostty düzenime göre hazırlanan eşlemeler. Normal Niri oturumunda yapılandırmadaki Mod, Super yani Windows tuşuna karşılık geliyor.

Tuşİşlev
Super+Q / Super+CGhostty aç / pencereyi kapat
Alt+SpaceNoctalia uygulama başlatıcısı
Super+E / Super+BDolphin / Brave Origin
Super+WWindows VM ve Looking Glass başlatıcısı
Super+LEkranı kilitle
Super+EscapeNoctalia oturum menüsü
Super+Shift+BNoctalia barını göster/gizle
Super+TabGenel bakış
Super+←/→Sütunlar arasında gezin
Super+Ctrl+←/→Sütunu taşı
Super+1…9,0Çalışma alanı 1…10’a geç
Super+Shift+1…9,0Sütunu çalışma alanı 1…10’a taşı
Super+SpaceTürkçe/İngilizce klavye düzenini değiştir
Super+V / Super+FYüzen pencere modu / tam ekran
Super+R / Super+Shift+FSütun genişliğini değiştir / sütunu büyüt
Print / Shift+Print / Alt+PrintEkran / bölge / pencere görüntüsü
Super+Shift+ENiri’den çık

Super+W gibi bazı kısayollar kişisel betiklere bağlı. Bunlar yalnızca Niri paketini kurunca hazır gelen işlevler değil.

Şifreyi girdim, yine Hyprland açıldı

Kurulum sonrasındaki ilk takılma giriş ekranındaydı. Şifreyi girdikten sonra Niri yerine Hyprland açıldı.

İlk bakışta Niri açılmayı denemiş ve kapanmış gibi görünebilir. Ama günlüklerde bunu doğrulayan bir kayıt yoktu. Benim sistemimde greetd, Noctalia greeter kullanıyordu; oturum listesinde Niri bulunmasına rağmen günlükler doğrudan UWSM ile Hyprland başlatıldığını gösteriyordu.

Yani eldeki bulgu bir Niri çökmesi değil, Hyprland oturumunun başlatılmasıydı. Kontrol edilmesi gereken yer giriş ekranındaki oturum seçicisiydi: Şifreyi girmeden önce Niri’yi seçmek gerekiyordu.

Daha sonra Niri oturumuna geçtim. Buradan çıkardığım küçük ama işe yarar ders şu: Yeni masaüstü açılmıyor gibi göründüğünde, önce gerçekten onu başlatıp başlatmadığınıza bakın.

Looking Glass: Fare yakalama ve tekerlek meselesi

Geçişin en çok ayrıntı isteyen kısmı Windows sanal makinesiydi. İstediğim düzen basitti: Super+W ile Looking Glass açılsın, ikinci monitörü kaplasın ve fareyi gerektiğinde VM’e kilitleyebileyim.

looking-glass-client penceresi için DP-3 üzerinde tam ekran açılacak bir kural tanımlandı. Kontrolde pencerenin 6 numaralı çalışma alanında, doğru ekranda ve 1920×1080 boyutunda açıldığı görüldü.

Pencere doğru yerdeydi. Fare için biraz daha uğraşmak gerekti.

XWayland yerine native Wayland

İlk X11/XWayland denemesinde Sağ Ctrl ile fareyi yakaladıktan sonra imleç diğer monitöre kaçabiliyordu. Looking Glass istemcisi native Wayland ile yeniden açıldığında kilitleme, hareket ve tekerlek çalıştı.

Looking Glass ayarlarında otomatik yakalama kapalı tutuldu. Amaç, odağı alan pencerenin fareyi kendiliğinden yakalaması değil; bunu Sağ Ctrl ile benim kontrol etmemdi.

Başlatıcı da oturuma göre ayrıldı: Niri’de Wayland yolu, diğer oturumlarda mevcut X11 yolu korundu. Bu benim kurulumumda işe yaradı; her masaüstü için tek bir başlatma biçimi kullanmak zorunda kalmadım.

Tekerlek çalışıyor ama fazla kaydırıyor

Fareyi yakalama sorunu çözülünce bu kez kaydırma hızı kaldı. Niri’de scroll-factor 0.5 denemesi fark yaratmadı ve geri alındı.

İncelemede Looking Glass B7’nin küçük Wayland kaydırma olaylarını her seferinde tam bir SPICE tekerlek adımına çevirdiği görüldü. Ayrı bir kaynak kopyasında kesirli hareketleri biriktiren yerel bir düzeltme hazırlandı. İlgili test eski kodda başarısız, yeni kodda başarılıydı; istemci de derlendi.

Ama tek başına bu değişiklikle hızda fark görmedim. Dolayısıyla “Looking Glass’a yama yaptık, sorun çözüldü” demek doğru olmaz.

Sonra Windows tarafındaki ayara bakıldı. Etkin kullanıcının WheelScrollLines değeri -1 idi: Her tekerlek adımında birkaç satır yerine tam ekran kaydırma.

Windows’ta main.cpl üzerinden Tekerlek sekmesini açıp tam ekran yerine 2 satır seçtiğimde kaydırma istediğim hale geldi.

Son durumda çalışan kombinasyon native Wayland, yerel Looking Glass B7 düzeltmesi ve Windows’ta 2 satır ayarıydı. Yamanın tek başına katkısı ayrıca izole edilmedi. Benzer bir sorun yaşayan biri için önce Windows’un tekerlek ayarına bakmak, istemci derlemeye başlamaktan daha mantıklı bir ilk adım.

Yapılandırmayı yedeklemek

Düzen oturduktan sonra 7 Eylül’de Niri yapılandırmasını özel bir GitHub deposuna gönderdim. Depoda yalnızca config.kdl, kullanım ve geri yükleme notlarını içeren README.md ve .gitignore var. Yerel .bak dosyaları Git takibinin dışında tutuldu.

Bu, bütün masaüstünün yedeği değil. Noctalia ayarları, Looking Glass yapılandırması ve kişisel başlatıcılar ayrı yerlerde duruyor. Yalnızca Niri dosyasını geri getirmek, burada anlattığım düzenin tamamını geri getirmeye yetmez.

Şimdilik geldiğim nokta

Niri artık yalnızca kurup kenara bıraktığım bir paket değil; oturum açıp kullandığım masaüstü oldu. Noctalia ve Ghostty düzenini taşıdım, yeni pencereleri büyütülmüş sütunlarda açacak şekilde ayarladım. Looking Glass da ikinci ekranda tam ekran çalışıyor; fare yakalama ve kaydırmayı kullanım sırasında denedim.

Yapılandırma niri validate kontrolünden geçti. Bu, bütün uygulamaların, portal işlevlerinin, ekran kilidinin ve tablodaki her kısayolun eksiksiz test edildiği anlamına gelmiyor. Uzun süreli kullanım hakkında hüküm vermek için de henüz erken.

Şu an benim için asıl fark, pencereleri tek ekrana sığdırmaya çalışmak yerine geniş sütunlar arasında gezmek. Fedora tarafında kurulumu kolaydı. Zaman alan kısım ise her zamanki gibi paketi yüklemek değil, kendi alışkanlıklarımı yeni düzene taşımak oldu.