स्क्रॉल करने योग्य टाइलिंग Wayland compositor, Niri
(github.com/YaLTeR)- Niri एक स्क्रॉल करने योग्य टाइलिंग Wayland compositor है, जो विंडोज़ को क्षैतिज दिशा में अनंत रूप से व्यवस्थित करता है
- नई विंडो खोलने पर भी मौजूदा विंडो का आकार नहीं बदलता, और हर मॉनिटर की अपनी स्वतंत्र विंडो स्ट्रिप होती है
- डायनैमिक workspace, tab group, mouse/touchpad gesture जैसी आधुनिक सुविधाएँ प्रदान करता है
- मल्टी-मॉनिटर सपोर्ट, Xwayland इंटीग्रेशन, Fractional scaling सहित वास्तविक उपयोग के लिए उपयुक्त विभिन्न पर्यावरणों का समर्थन
- Rust आधारित उच्च स्थिरता और performance optimization के कारण कई उपयोगकर्ताओं के लिए रोज़मर्रा के उपयोग हेतु अनुशंसित
अवलोकन
- Niri एक Wayland compositor है जो स्क्रॉल-आधारित टाइलिंग विंडो प्रबंधन को सपोर्ट करता है। यह ओपन सोर्स है और रोज़मर्रा के स्थिर उपयोग के लिए उपयुक्त एक अनोखा विंडो-अरेंजमेंट इंटरफ़ेस देता है
- पारंपरिक tiling window manager से अलग, यह विंडोज़ को दाईं ओर अनंत तक फैलने वाले कॉलमों में व्यवस्थित करता है, और किसी भी नई विंडो के खुलने पर मौजूदा विंडोज़ का आकार अपने-आप नहीं बदलता
- हर मॉनिटर की अपनी स्वतंत्र विंडो स्ट्रिप होती है, इसलिए विंडो पड़ोसी मॉनिटर पर नहीं चली जाती
मुख्य विशेषताएँ
- डायनैमिक workspace: GNOME की तरह, हर मॉनिटर के लिए स्वतंत्र workspace ऊर्ध्वाधर दिशा में डायनैमिक रूप से बनाए और प्रबंधित किए जाते हैं
- मॉनिटर कनेक्ट/डिस्कनेक्ट होने पर workspace लेआउट सुरक्षित रहता है, और दोबारा कनेक्ट करने पर मूल मॉनिटर पर वापस आ जाता है
- workspace/विंडो overview: एक overview मोड जिसमें विंडो और workspace का पूरा विन्यास एक नज़र में दिखता है
- बिल्ट-इन screenshot और recording UI, तथा xdg-desktop-portal-gnome के माध्यम से screencasting/streaming सपोर्ट
- संवेदनशील विंडोज़ को screencast में ब्लॉक किया जा सकता है
- लक्ष्य विंडो को डायनैमिक रूप से बदलने का समर्थन
- touchpad/mouse gesture, विंडोज़ को tab group में बाँधने की सुविधा, और विभिन्न लेआउट सेटिंग्स (margin, border, window size आदि)
- gradient border (Oklab, Oklch), animation (custom shader के उपयोग सहित), कॉन्फ़िग फ़ाइल live reload
- screen reader सपोर्ट से बेहतर accessibility
इंस्टॉलेशन और उपयोग मार्गदर्शिका
- वास्तविक उपयोग के लिए स्थिर है, और कई उपयोगकर्ता इसे रोज़मर्रा में संतोषजनक रूप से इस्तेमाल कर रहे हैं
- यह पूर्ण desktop environment नहीं है, इसलिए Waybar (panel) और Fuzzel (launcher) जैसे टूल्स के साथ उपयोग की सिफारिश की जाती है
- संबंधित प्रोजेक्ट, add-on और दस्तावेज़ awesome-niri में देखे जा सकते हैं
पर्यावरण और संगतता
- मल्टी-मॉनिटर डिज़ाइन इसका मुख्य केंद्र है, और mixed DPI तथा Fractional scaling का पूर्ण समर्थन उपलब्ध है
- NVIDIA GPU पर भी बिना समस्या के चल सकता है
- Floating windows का समर्थन (संस्करण 25.01 से)
- tablet, touchpad, touchscreen (touchpad gesture सपोर्ट सहित) जैसे विभिन्न input device का समर्थन
- प्रमुख Wayland protocol (layer-shell, gamma-control, screencopy आदि) के साथ संगत
- Xwayland (xwayland-satellite इंटीग्रेशन, संस्करण 25.08 से), तथा हल्के सिस्टम के लिए optimization (Eee PC 900 जैसे लो-स्पेक डिवाइस पर चलने के उदाहरण मौजूद)
विकास और समुदाय
- Rust आधारित इम्प्लीमेंटेशन के कारण स्थिरता, मेंटेनेंस की दक्षता और प्रदर्शन उत्कृष्ट है
- PaperWM (GNOME Shell extension) से प्रेरित, और हर मॉनिटर की स्वतंत्रता तथा performance optimization पर केंद्रित
- समुदाय Matrix और Discord जैसे प्लेटफ़ॉर्म पर सक्रिय रूप से सहायता और संवाद करता है
- डेवलपर इंटरव्यू, तकनीकी प्रस्तुतियाँ और LWN लेख सहित कई स्रोतों में इसका परिचय दिया गया है
समान प्रोजेक्ट
- GNOME Shell के लिए PaperWM, KDE के लिए karousel, sway/i3 आधारित scroll·papersway, Hyprland के लिए hyprscrolling·hyprslidr, और macOS के लिए PaperWM.spoon जैसे कई प्रोजेक्ट्स के साथ इसकी तुलना की जा सकती है, जो स्क्रॉल-टाइलिंग वर्कफ़्लो प्रदान करते हैं
योगदान और ओपन सोर्स जानकारी
- समुदाय में प्रोग्रामिंग और गैर-प्रोग्रामिंग दोनों क्षेत्रों में योगदान संभव है; अधिक जानकारी के लिए CONTRIBUTING.md देखें
- लाइसेंस GPL-3.0 है
- कोडबेस मुख्य रूप से Rust (98.9%) में है, और कई बाहरी योगदानकर्ता इसमें भाग ले रहे हैं
सारांश
Niri स्क्रॉल करने योग्य टाइलिंग विंडो प्रबंधन के एक विशिष्ट UX को कई आधुनिक सुविधाओं के साथ जोड़ता है, और Wayland के लिए Rust आधारित उच्च विश्वसनीयता, प्रदर्शन तथा accessibility वाला compositor प्रदान करता है। खास तौर पर यह मल्टी-मॉनिटर और विविध वर्कफ़्लो वातावरणों के लिए बेहद सक्षम है, और इसका ओपन सोर्स व समुदाय इकोसिस्टम भी तेज़ी से बढ़ रहा है।
2 टिप्पणियां
मैंने इसे पहले इस्तेमाल किया है; बुरा नहीं है, लेकिन जब कई विंडो खोल लेते हैं तो स्क्रोल का मतलब ही खत्म हो जाता है।
शुरू से ही वहाँ तक जाना बहुत दूर लगता है, और यह भी याद नहीं रहता कि वह कहाँ था, इसलिए आखिर में टेक्स्ट-आधारित सर्च से ही विंडो ढूँढनी पड़ती है।
अक्सर इस्तेमाल होने वाला 'group number' तरीका किसी खास मानदंड (बार-बार इस्तेमाल होने वाला, या उपयोग के हिसाब से) के अनुसार वर्गीकरण करने के लिए अच्छा है, इसलिए उसे याद रखना आसान होता है.
Hacker News टिप्पणियाँ
Niri की वजह से मैं भी, जिसने 14 साल तक xmonad इस्तेमाल किया था, पूरी तरह स्विच कर गया। Niri में डेस्कटॉप के भीतर विंडो की संख्या पर कोई सीमा नहीं है, और टाइल संरचना को बार-बार बदलने की ज़रूरत नहीं पड़ती, इसलिए पहले मैं अलग-अलग डेस्कटॉप को अलग विषयों के लिए इस्तेमाल करता था, अब उन्हें एक ही डेस्कटॉप पर आसानी से मैनेज कर लेता हूँ। पहले मैं "editor और terminal" डेस्कटॉप और "browser" डेस्कटॉप अलग रखता था, लेकिन अब उसी डेस्कटॉप में बस horizontal move करके संबंधित browser window तक पहुँचना आसान है। इसका entry barrier बहुत कम है और default settings के साथ भी यह अच्छी तरह चलता है। Wayland support से जुड़ी कुछ दिक्कतें थीं, खासकर Zoom जैसे कुछ apps में, लेकिन समय के साथ वे धीरे-धीरे हल हो रही हैं। हार्डवेयर है 2017 System76 Bonobo WS, 2x GTX 1080, multi-screen (4k 2x scale + 2 1080p), PopOS environment। हाल की कुछ fancy animations जैसी बदलावों का मैंने अनुभव नहीं किया, और क्योंकि मैं source खुद build करके इस्तेमाल करने में दिक्कत महसूस नहीं करता, इसलिए हो सकता है मेरी राय थोड़ी biased हो
हाल ही में Niri ने xwayland-satellite integration बेहतर किया है, जिससे Wayland support न करने वाले programs भी आसानी से चलाए जा सकते हैं संबंधित लिंक
i3/sway की अच्छी बात यह है कि theme-based desktops assign किए जा सकते हैं, जैसे browser, code, Slack आदि, और एक shortcut key दबाते ही तुरंत ज़रूरी desktop पर जाया जा सकता है। इससे काम की efficiency MacOS की CMD+Tab या Mission Control पर निर्भर workflow से कहीं ज़्यादा थी। Niri का scroll तरीका तो उल्टा विंडो ढूँढने में भटकने जैसा लगता है, इसलिए थोड़ा अजीब लगता है
मैंने भी i3 10 साल से ज़्यादा इस्तेमाल किया है, लेकिन Niri इस्तेमाल करते ही एकदम 'आहा!' वाला moment आया। हाल की builds में 'minimap' जैसा zoom-out feature आया है, जो तब बहुत काम आता है जब कभी-कभी समझ न आए कि मैं कहाँ हूँ
Niri में मुझे बस एक चीज़ की कमी लगती है, scratch layer। कुछ apps को ज़रूरी नहीं कि हमेशा tiling में रखा जाए, और उन्हें कहीं से भी तुरंत खोला जा सके तो बेहतर है। जैसे matrix client जैसा messenger, ताकि तुरंत जवाब दिया जा सके। Media player के लिए भी यही बात लागू होती है। GNOME के Paperwm में यह feature है
मैं i3 7 साल से ज़्यादा समय से इस्तेमाल कर रहा हूँ, लेकिन scroll तरीके का फायदा क्या है, यह अभी भी साफ़ नहीं है। Tiling WM की दुनिया में सुंदर screenshots तो बहुत होते हैं, लेकिन असल productivity में यह कितना मदद करता है, जानना चाहता हूँ। Horizontal move करते समय यह कैसे काम करता है, जैसे अगर fullscreen editor से आधी दिख रही browser window पर जाएँ, तो क्या editor कट जाता है या compress होता है? और अगर dmenu के साथ गहरी integration वाला browser-combo tiling WM हो तो अच्छा होगा
मैं कई महीनों से Niri को अपने main desktop पर इस्तेमाल कर रहा हूँ, और LWN पर अपना अनुभव लिखा है। आम tiling WM/compositor मेरे साथ उतने अच्छे से fit नहीं हुए, लेकिन Niri का tiling model बिल्कुल फिट बैठता है। Niri से पहले मैं PaperWM और GNOME extensions इस्तेमाल करता था, लेकिन अगर COSMIC में scroll tiling जुड़ जाए, तो शायद मैं फिर भी Niri ही इस्तेमाल करता रहूँगा
लगता है COSMIC टीम 1.0 release के बाद यह feature जोड़ सकती है। तब तक System76 के एक कर्मचारी ने दूसरे compositors, जिनमें Niri भी शामिल है, इस्तेमाल करने के लिए एक unofficial extension बनाया है
मैं भी PaperWM से Niri पर आते समय हिचकिचाया था। PaperWM में अलग-अलग apps को अलग से सेट करने की ज़रूरत नहीं पड़ती थी, इसलिए GNOME के built-in features, जैसे launcher, settings, locker, audio/network widgets वगैरह, बहुत सुविधाजनक थे। लेकिन PaperWM में window resize bugs और vertical sizing जैसी छोटी-छोटी पेचीदगियाँ थीं। आखिरकार Niri कहीं ज़्यादा साफ़ और स्पष्ट लगा
अगर COSMIC में सिर्फ tiling जुड़ जाए तो वह शानदार होगा। मुझे COSMIC सच में बहुत पसंद है, बस वही एक कमी है
मुझे COSMIC के साथ अंतर जानना था, यह मददगार रहा
अभी Niri की लोकप्रियता बहुत तेज़ी से बढ़ रही है, इसलिए developer पर काफी overload है। अगर योगदान देना चाहते हैं, तो Ivan को sponsor करें या PR बनाने से पहले दूसरे PRs की review में मदद करें। Niri और Smithay दोनों बहुत high quality हैं, और बिना किसी critical issue के समय के साथ features भी जुड़ते जा रहे हैं
यह सवाल वाजिब है कि आम लोगों की pre-review वास्तव में कितनी मदद करती है। आखिर maintainer merge से पहले खुद तो हमेशा review करेगा ही, और किसी सतही जानकारी वाले व्यक्ति की टिप्पणी contributor को उल्टा परेशान भी कर सकती है
अगर आप रोज़ Niri इस्तेमाल करते हैं, तो आभार ज़रूर दिखाना चाहिए, मैंने तो पहले ही sponsor किया है। वैसे मैं अपना setup भी share कर रहा हूँ, शायद किसी को inspiration मिले setup लिंक
अगर आप Hyprland user हैं, तो Niri पर क्यों स्विच करना चाहिए? क्या infinite windows feature ही इसका सबसे बड़ा आकर्षण है?
sponsor लिंक
MacOS में मैं हमेशा सब कुछ fullscreen में रखकर cmd-tab/cmd-backtick से windows switch करता हूँ, और सच कहूँ तो Linux tiling workflow से जलन होती है। MacOS पर ऐसा environment बना नहीं पाता, और company policy की वजह से Linux पर भी नहीं जा सकता, इसलिए बहुत frustration होती है। बेहतर workflow का पता होने के बावजूद उसे लागू न कर पाना, शायद बहुत लोग इस भावना से जुड़ पाएँगे
पिछले एक महीने से मैं komorebi को MacOS पर port कर रहा हूँ। इसका scroll layout Niri जितना नहीं है, लेकिन दोनों platforms पर अच्छी तरह काम कर रहा है। वीडियो1 वीडियो2
मैं भी कुछ ऐसी ही स्थिति में था जहाँ MacOS के अलावा कुछ इस्तेमाल नहीं कर सकता था, तब मैंने fullscreen virtual machine में Linux चलाकर इस्तेमाल किया। तकनीकी रूप से host MacOS ही था, इसलिए IT ने कोई आपत्ति नहीं की, और security policies भी pass हो गईं। कुछ कंपनियाँ तो VMware license भी देती थीं
Mac के लिए window managers में Aerospace सबसे अच्छा लगा
मैं Mac पर Yabai window manager इस्तेमाल करता हूँ। बड़े monitor पर यह बहुत अच्छा है, लेकिन जब सिर्फ laptop पर काम करता हूँ, तो आखिर में कुछ spaces में बस एक-दो windows ही रह जाती हैं, और मुझे ठीक workflow नहीं मिल पाया
flashspace recommend करता हूँ। जब apps को fullscreen में चलाते हैं, तो अगर workspaces को keys पर assign कर दें, तो बिना animation के तुरंत switch हो जाता है
मैंने Niri को आज़माया नहीं था क्योंकि config file सिर्फ एक ही होने की सीमा थी, और जब कई devices पर थोड़ा-थोड़ा अलग environment रखना हो, जैसे gitignore किए गए local settings, तब यह असुविधाजनक था। लेकिन कुछ समय पहले दो बड़े PR merge हुए, और अब इस PR की तरह per-user override/include संभव हो गया है। अभी यह release में शामिल नहीं हुआ है, लेकिन जल्द आने की उम्मीद है
नया tiling WM आख़िर इतना अच्छा क्यों है, यह जानना चाहता हूँ, खासकर एक ऐसे व्यक्ति के रूप में जिसने 15 साल से ज़्यादा xmonad ही इस्तेमाल किया है। Wayland compositor में भी आख़िर "tiling + Wayland" के अलावा क्या फ़ायदा है? खासकर पहले जब भी Wayland इस्तेमाल किया, X11 की तुलना में हमेशा कुछ न कुछ critical bugs थे, विशेषकर Nvidia environment में
मैंने पिछले एक साल में Nvidia+Arch+Gnome3+Wayland setup पर Wayland को फिर से आज़माया, और अब लगभग बिना समस्या सब कुछ अच्छी तरह चल रहा है। Firefox खास तौर पर बहुत smooth और efficient लगा
Wayland में अभी भी कुछ खास कामों में दिक्कतें हैं, जैसे graphics tablet rotation न कर पाना। फिर भी Nvidia driver version 570 से चीज़ें अच्छी चल रही हैं
आपने किस Linux distribution पर इस्तेमाल किया, यह मायने रखता है। मैंने Fedora पर लंबे समय से Wayland इस्तेमाल किया है, और Intel तथा Nvidia दोनों hardware पर कोई बड़ी समस्या नहीं हुई
मेरा अनुभव भी कुछ ऐसा ही रहा, बीच में एक rm accident की वजह से config उड़ गई थी और फिर दोबारा सेट करना पड़ा। 2009 से '23 तक xmonad इस्तेमाल किया, फिर Niri पर आ गया। विस्तार से कारण यहाँ हैं। PopOS, 2x GTX 1080, multi-screen पर भी यह बिना समस्या चलता है। पूरी तरह recommend करता हूँ
मैंने Asus Rog G14 + Nvidia 3060 पर Wayland चलाया, और जितना संदेह था, उसके मुकाबले drm.modeset सेट करते ही सब ठीक चल पड़ा। दो external monitors, एक HDMI और एक DP over USB-C, भी बिना दिक्कत पहचान लिए गए। Daisy-chain connection छोड़कर बाकी सब से संतुष्ट हूँ। यह हाल का अनुभव है, इसलिए अभी हर case नहीं देखा, लेकिन मेरे लिए यह X से बेहतर काम कर रहा है
मैं कुछ हफ़्ते पहले i3 से Niri पर आया और बहुत संतुष्ट हूँ। Windows और workspaces को इस्तेमाल करने का इसका तरीका मेरी आदतों से ज़्यादा naturally मेल खाता है। मैं एक workspace प्रति project के हिसाब से काम करता हूँ, और अगर दाईं ओर अस्थायी रूप से एक terminal या browser खोल भी दूँ, तो दूसरे windows पर कोई असर या rearrangement नहीं होता, इसलिए one-off references या commands चलाना बहुत सुविधाजनक हो जाता है। बस एक ही समस्या है, अब सच में ultra-wide monitor लेने का मन हो रहा है
Sway पर Niri concept लागू करने का एक उदाहरण scroll लिंक
मैंने कल PopOS दोबारा install करते समय Niri पर स्विच किया, और तुरंत बहुत intuitive लगा। पहले i3wm इस्तेमाल करते समय जैसा window resize की चिंता करनी पड़ती थी, वैसा यहाँ बिलकुल नहीं है, और Niri में workspace पर windows बढ़ जाने पर भी अलग से rearrange करने की शायद ही ज़रूरत पड़ती है, इसलिए focus बहुत बेहतर रहता है। मेरा setup है RTX 3090, Pop OS 24.04 beta, 4K 43-inch monitor, और
cargo buildसे Niri install करना भी आसान था। VS Code, Obsidian, Zoom, Blender जैसे X11 apps चलाने के लिए xwayland-satellite install करना ज़रूरी हैHyprland को customize करते-करते कई कमियाँ महसूस हुईं और मैं GNOME पर वापस आ गया, क्योंकि मेरे लिए दर्जनों से सैकड़ों browser windows और tray extensions जैसी चीज़ें ज़रूरी थीं। लेकिन GNOME में हर version upgrade पर extension compatibility टूट जाती है, इसलिए अब मैंने पूरी तरह GNOME छोड़ने का फैसला कर लिया है। इस बार River, QTile, Niri सब इस्तेमाल करके आखिर Niri पर टिक गया हूँ, और ज़रूरत के features धीरे-धीरे खुद जोड़ रहा हूँ। Dynamic workspace grouping intuitive और सुविधाजनक है, और keyboard shortcuts भी अपनी पसंद के अनुसार सेट किए जा सकते हैं। DE की कमी waybar और swaync से पूरी कर रहा हूँ। Claude Code/Codex जैसे automation tools से scripts बनाना भी मज़ेदार हो गया है। उदाहरण के लिए, waybar में current window activity दिखाने वाला niri-workspaces, fuzzel integration के साथ workspace names बदलने वाला niri-workspace-names, custom AltTab आदि जैसी कई चीज़ें आज़मा रहा हूँ। Live thumbnails जैसी चीज़ें शायद बड़ा project होंगी। नए coding agents की वजह से बिना बहुत detailed documentation के भी environment को काफ़ी हद तक मनचाहे तरीके से सेट किया जा सकता है