Fedora 44'te Niri: Hyprland'den kayan pencerelere geçiş
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-1 | 2560×1440, yaklaşık 180 Hz | 0,0 | 1–5 |
DP-3 | 1920×1080, yaklaşık 120 Hz | 2560,180 | 6–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+C | Ghostty aç / pencereyi kapat |
Alt+Space | Noctalia uygulama başlatıcısı |
Super+E / Super+B | Dolphin / Brave Origin |
Super+W | Windows VM ve Looking Glass başlatıcısı |
Super+L | Ekranı kilitle |
Super+Escape | Noctalia oturum menüsü |
Super+Shift+B | Noctalia barını göster/gizle |
Super+Tab | Genel 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,0 | Sütunu çalışma alanı 1…10’a taşı |
Super+Space | Türkçe/İngilizce klavye düzenini değiştir |
Super+V / Super+F | Yüzen pencere modu / tam ekran |
Super+R / Super+Shift+F | Sütun genişliğini değiştir / sütunu büyüt |
Print / Shift+Print / Alt+Print | Ekran / bölge / pencere görüntüsü |
Super+Shift+E | Niri’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.