भविष्य Niri है
(ersei.net)- Sway और i3 लंबे समय से इस्तेमाल कर रहे एक यूज़र ने Sway के click-drag bug को वजह बनाकर पारंपरिक tiling window manager से Niri पर स्विच किया
- Niri workspace को बाएँ-दाएँ scroll होने वाली अनंत strip की तरह संभालता है, इसलिए नई window खोलने पर भी मौजूदा windows का layout बहुत नहीं हिलता
- स्विच करने के कुछ ही घंटों में इस्तेमाल लायक config बन गया और एक हफ्ते के भीतर यह Sway से ज्यादा फिट बैठने लगा; window-level screen sharing, screen sharing exclusion, built-in screenshot, और बैटरी में करीब 2 घंटे की बढ़ोतरी को फायदे बताया गया
- पारंपरिक tiling window managers window repositioning और workspace management में cognitive load पैदा करते हैं; Sway में 11 या उससे ज्यादा workspaces इस्तेमाल करने वाला सेटअप Niri में 5 या उससे कम पर आ गया
- अलग-अलग screen sizes और processing performance को देखते हुए पारंपरिक tiling को power users का default workflow होना जरूरी नहीं है; Sway या Wayland-based tiling users के लिए Niri आज़माने लायक है
Sway से Niri पर जाने की वजह
- लेखक ने अपने जीवन के 35% समय के बराबर अवधि तक tiling window managers इस्तेमाल किए हैं, जिनमें 5 साल Sway और 2 साल i3 शामिल हैं
- Wayland को अपेक्षाकृत शुरुआती दौर में इस्तेमाल करते हुए वे बहुत सारी चीज़ों के टूटे हुए होने के आदी हो गए थे, और Sway workflow के साथ भी लंबे समय से ढल चुके थे
- सीधी वजह Sway में text select करने के बाद drag करने पर mouse छोड़ने के बाद भी selection action जारी रहने वाली click-drag समस्या थी
- कुछ दिन कुछ हफ्तों में बदल गए, फिर भी समस्या ठीक नहीं हुई, जिससे text पर click करके select करने की basic action ही अनिश्चित लगने लगी
- root library खोजने या
git bisectचलाने के बजाय, उन्होंने वर्षों की muscle memory और workflow छोड़कर Niri आज़माया
Niri कैसे काम करता है और पहला impression
- Niri एक scrolling tiling window manager है, जिसमें हर workspace बाएँ-दाएँ scroll हो सकने वाली अनंत चौड़ी पट्टी की तरह काम करता है
- नई window खोलने पर यह दूसरी windows का layout नहीं बदलता, इसलिए terminal खोलते समय Firefox के अनपेक्षित जगह पर धकेले जाने की संभावना कम होती है
- कुछ घंटों में ही पर्याप्त usable config बन गया, और एक हफ्ते के भीतर यह Sway से ज्यादा फिट बैठने लगा
- लेखक के मुताबिक उन्हें फिर से वही एहसास हुआ, जब वे distributions और window managers बदलते समय नए और जोखिम भरे दिखने वाले tools को बेझिझक आज़माते थे
Sway की तुलना में महसूस हुए सुधार
- Niri window-level screen sharing support करता है, और किसी खास window को screen sharing में न दिखाने की सुविधा भी देता है
- assignments stream करते समय bank email notification जैसी sensitive notifications के screen के कोने में दिख जाने की चिंता कम हो जाती है
- built-in screenshot tool संतोषजनक लगा, और इसे Sway में recommended grim+slurp combo से बेहतर बताया गया
- Sway की तुलना में battery life करीब 2 घंटे बढ़ गई
- Niri में IPC feature जोड़ने की प्रक्रिया में भी development experience अच्छा रहा
पारंपरिक tiling window managers से शिकायतें
- पारंपरिक tiling window managers यूज़र को windows की arrangement को जितना हो सके efficient बनाने की ओर धकेलते हैं, और इस प्रक्रिया में window repositioning को minimize करने जैसे गलत लक्ष्य पर cognitive load खर्च करवाते हैं
- अगर आप लगातार fullscreen और non-fullscreen के बीच नहीं जा रहे हैं या workspaces कम नहीं पड़ रहे हैं, तो माना जा सकता है कि खुली windows ज्यादा नहीं हैं
- tabbed और stacked layouts तथा nested containers को space की कमी छिपाने वाले कम ergonomic अस्थायी उपाय के रूप में देखा गया
- Sway में वे अक्सर workspaces को 11 तक खोलते थे, और कमी पड़ने पर 11–20 नंबर workspaces के shortcuts तक जोड़ दिए थे
- workspaces बचाने के लिए windows बंद करते-करते project flow खो देने की घटनाएँ हुईं
- Niri में 3 बड़े projects, कई chat apps, YouTube video, और 3 classes के काम खुले होने पर भी workspaces 5 से ज्यादा नहीं होते
- वही setup Sway में workspace 15 तक चला जाता था, और मनचाहा material खोजने के लिए कई workspaces के बीच आना-जाना पड़ता था
screen size, DPI और ultrawide के संदर्भ में
- अलग-अलग screen sizes और बेहतर processing performance को देखते हुए, पारंपरिक tiling window manager को power-user workflow की default choice होना जरूरी नहीं माना गया
- पारंपरिक tiling space को कृत्रिम रूप से सीमित करता है और content rearrangement को मजबूर करता है, साथ ही non-standard monitor layouts के साथ भी अच्छी तरह फिट नहीं बैठता—ऐसा आकलन किया गया
- Wayland पर जाने की मुख्य वजह mixed DPI थी
- समान physical size वाले 4K monitor और FHD monitor को साथ इस्तेमाल करने पर 4K वाले की pixel density करीब 4 गुना ज्यादा होती है
- fixed pixel width वाली window 4K पर छोटी और FHD पर बड़ी दिख सकती है
- windows को physical रूप से लगभग समान size में दिखाने के लिए scaling चाहिए
- X11 का implementation उस समय ठीक फिट नहीं बैठता था, जबकि Wayland इसे core feature के रूप में support करता है
- X11 में 1.6 जैसे non-integer scale factor की fractional scaling भी मुश्किल है, और इस मामले में Wayland बेहतर बताया गया
- scrolling tiling window manager को ultrawide monitors के साथ अच्छी तरह फिट माना गया
- Sway में नई window पूरा ultrawide भर देती है, लेकिन Niri का model ज्यादा natural तरीके से tile करता है और space का बेहतर इस्तेमाल कर सकता है
- Sway जैसे Wayland-based पारंपरिक tiling window manager users को Niri तुरंत आज़माने की सलाह दी गई
- अगर Sway जैसा key binding experience चाहिए, तो सार्वजनिक Niri config देख सकते हैं
1 टिप्पणियां
Hacker News की राय
Gnome इस्तेमाल करता हूं और लगभग सारी विंडो full screen में खोलता हूं। कभी-कभी win+left/right से आधी चौड़ाई वाली विंडो भी बना लेता हूं, तो क्या इससे मैं आदिम इंसान हो गया?
पिछले 20 सालों में “भविष्य” कहे जाने वाले tiling window managers के दर्जनों नाम आते-जाते देखे हैं। व्यावहारिक तौर पर productivity को बड़ा बढ़ावा देने वाली सुविधाएं बहुत पहले ही मुख्य window managers में आ चुकी हैं, और pure tiling window managers आगे भी niche products ही रहने की संभावना रखते हैं
आखिरकार उन्हें ठीक से इस्तेमाल करने के लिए काफी समय और मेहनत लगानी पड़ती है, जबकि मिलने वाला productivity gain वास्तविक रूप से incremental ही होता है, और बदले में ऐसे niche products की खास rough edges भी झेलनी पड़ती हैं
Gnome से बस थोड़ा बेहतर है, लेकिन शुरू से ही window के सही जगह होने की संभावना ज्यादा रहती है, और सच कहूं तो windows को z-axis में overlap करके stack करने की जरूरत आखिर कितनी बार पड़ती है
पहले मुझे लगता था कि real-time strategy game camera जैसा infinite 2D canvas, जिसमें position और zoom level को key-bind किया जा सके, बेहतर window manager होगा। लेकिन Niri इस्तेमाल करके लगा कि मेरा idea बहुत complex था, और Niri functionality और usability के बीच बिल्कुल सही जगह हिट करता है
ऐसा लगता है जैसे भविष्य के aliens ने कोई technology gift की हो
मैं laptop, बीच में horizontal 24-inch और vertical 24-inch monitor इस्तेमाल करता हूं, और Spotify/Teams/shell/Outlook को vertical half-split में, documents को laptop screen पर, IDE को main screen पर full screen रखता हूं। design/research, development और personal use के लिए virtual desktops भी अलग किए हैं
4K या ultrawide के बजाय standard monitor size बनाए रखने से screen sharing भी बहुत आसान हो जाती है
छोटी-सी शिकायत यह है कि आजकल UI design हर जगह 10px padding डाल देता है, इसलिए ज्यादातर apps और pages में कुछ भी करने के लिए उन्हें full screen होना पड़ता है
लेकिन मेरी ज्यादातर tiling जरूरत terminal के अंदर ही है, और tmux hero की भूमिका निभा देता है
https://extensions.gnome.org/extension/4548/tactile/
मैं i3 से आया हूं, लेकिन अगर full tiling extension नहीं चाहिए और tiling की सुविधा बस थोड़ी-सी चाहिए, तो Tactile बहुत simple solution है और उपयोगी लगता है
अगर traditional tiling window manager से आ रहे हैं, तो जानना चाहूंगा कि keyboard shortcut workflow कैसा है
मेरे लिए सबसे जरूरी चीज Super+[0-9] जैसे fixed shortcuts हैं, जो किसी specific window, workspace, असल में specific program पर ले जाएं। अगर यह संभव हो और लेख में बताई गई “workspace management” वाली समस्या भी हल हो जाए, तो शायद तुरंत switch कर जाऊं
क्या Niri में इस तरह “workspaces” इस्तेमाल करना समझ में आता है? जैसे browser के लिए एक workspace, editor के लिए एक, कई terminal windows के लिए एक, और “browser” से “terminals” पर तुरंत switch करना चाहता हूं। animation effects न हों तो बेहतर
उदाहरण के लिए password manager को browser वाले ही workspace में रखता हूं, और आम तौर पर वह screen के बाहर रहता है। password बनाने की जरूरत पड़े तो वह ठीक बगल में होता है। text editor के पास जरूरी helper terminals भी इसी तरह रखता हूं
हालांकि महसूस होता है कि traditional tiling की पुरानी constraints के भीतर काम करने वाली muscle memory काफी बची हुई है। जैसे मेरे monitor पर 3 से ज्यादा terminals खोलूं तो नए workspace पर जाना चाहिए
इसलिए असल में जरूरत न होने पर भी अक्सर नए workspace पर चला जाता हूं, और क्या कहां है इसे लेकर थोड़ा confused हो जाता हूं। कभी-कभी सोचता हूं कि पुराने काम करने के तरीके से ज्यादा साफ तौर पर अलग हो जाना शायद आसान हो
फिर भी Niri जैसी tiling सच में बहुत पसंद है। मेरे हिसाब से यह tiling window managers की लगभग सारी कमियां दूर कर देती है
कुल मिलाकर मुझे Gnome से i3 कहीं ज्यादा पसंद है, लेकिन “सब कुछ resize हो जाता है” वाला दर्द बहुत वास्तविक है। खासकर जब Zoom calls ज्यादा हों तो और भी, क्योंकि Zoom की “notifications” system की built-in notifications को bypass करती लगती हैं और हर एक को अलग window की तरह treat करती हैं, जिससे समस्या बढ़ जाती है
Niri एक बार आजमाना पड़ेगा
मेरे लिए यह सही नहीं बैठा। screen की boundary के पार जारी windows की एक पट्टी होती है, और कभी-कभी window का सिर्फ आधा हिस्सा दिखता है; यह अजीब-सी बेचैनी पैदा करता था और बार-बार ध्यान खींचता था
करीब दो महीने इस्तेमाल करने के बाद मैं Hyprland पर लौट आया, जो ज्यादा traditional tiling compositor है और जिसमें windows screen boundary से overlap नहीं करतीं
हालांकि Niri technically बहुत सुंदर है। modern Rust codebase है, code structure भी अच्छा है, और समझकर उसमें बदलाव शुरू करना भी आसान है
laptop पर काम के हिसाब से full width या 1/2 width इस्तेमाल करता हूं, और ultrawide पर 1/3 width इस्तेमाल करता हूं या internal column split वाले editor के लिए full width
मुझे टाइलिंग window manager का आइडिया पसंद है, इसलिए मैंने i3 और Hyprland को काफ़ी लंबे समय तक इस्तेमाल करके देखा, लेकिन अजीब तरह से कभी पूरी तरह टिक नहीं पाया और आखिर में Xfce पर लौटता रहा। पुरानी आदतें आसानी से नहीं जातीं
प्रयोग आम तौर पर उसी पल खत्म होता है जब windows की संख्या एक सीमा से ऊपर चली जाती है। अगर workspaces, layouts वगैरह को पर्याप्त गहराई से सेट नहीं किया है, तो उसके बाद मैनेज करना और मुश्किल हो जाता है
अभी-अभी Niri चालू करके देखा, और 10 मिनट में ही यह दूसरे टाइलिंग window managers की तुलना में कहीं ज़्यादा आरामदेह लगा। तुरंत समझ में आ जाता है, और mouse integration भी शानदार है
अभी जीत घोषित करना जल्दबाज़ी होगी, लेकिन यह सचमुच वही चीज़ लगती है जो मैं कई सालों से चाहता और जिसकी ज़रूरत महसूस करता रहा। कितना अच्छा है, यह मैं इससे आंकूंगा कि Xfce पर वापस जाने का मन होने में कितना समय लगता है
मेरे लिए सबसे optimal सेटअप एक साधारण, बोरिंग, trend से बेअसर floating window manager/desktop environment रहा, जिसके साथ हल्की optional tiling जुड़ी हो
मज़ेदार पढ़ाई थी। हर किसी की अपनी सीमा होती है
मुझे यह हिस्सा अच्छा लगा: “बेशक, यह पता लगाने के बजाय कि किस library ने breaking change किया है और 4 घंटे git bisect चलाने के बजाय, मैंने लगभग 10 साल की muscle memory और workflow improvements को खिड़की से बाहर फेंक देने का फैसला किया”
मैं भी लंबे समय से i3/Sway user हूं, और Niri काफी आरामदेह है। focus बदलने या window move करने जैसी Sway की ज़्यादातर muscle memory वैसे की वैसे साथ ले जा पाया। stability भी बहुत अच्छी है और xwayland-satellite के साथ भी सीधे अच्छे से काम करता है
सबसे बड़ी समस्या यह है कि मैं windows को लगातार “खो” देता हूं। किसी गहराई से nested stack के अंदर window खोलकर रखता हूं, फिर दूसरे काम में लग जाता हूं और भूल जाता हूं कि वह window पहले से खुली है
Sway में भी यह कुछ हद तक होता है, लेकिन सारे workspaces को scan करना कहीं ज़्यादा आसान है
Alt-Tab से बंधा कोई “window map” जैसा कुछ हो तो अच्छा होगा
वैसे मैं niri IPC / bash / jq से बने एक अजीबोगरीब combo से run-or-raise feature की नकल कर रहा हूं, और शायद यह असली RoR से भी बेहतर काम करता है। यह किसी खास appId से match करने वाली windows के बीच cycle करता है, और अगर कोई न हो तो नया launch करता है
इसमें rofi(wayland) जोड़ दिया, जो खुली हुई सभी windows को fuzzy search से move करता है, तो अनुभव काफी बेहतर हो गया
मैं Hyprland इस्तेमाल करने वाली युवा पीढ़ी से हूं, लेकिन Niri भी थोड़ी देर इस्तेमाल करके देखा और यह काफी अच्छे से काम करता है। average single-monitor Windows workflow से आने वाले लोगों के लिए, खासकर ज़्यादातर office-type कामों में, यह बहुत अच्छी तरह फिट बैठता है
फिर भी मुझे लगता है कि ज़्यादा complex tiling setup की productivity ceiling ज्यादा ऊंची होती है। अगर कोई इस लेखक की तरह 10 से ज्यादा workspaces खोलकर रखता है, तो शायद उसे Niri चुनना चाहिए
जिन लोगों के पास बस कुछ ही windows खुली रहती हैं, उनके लिए भी battery life increase बना रहेगा या नहीं, यह जानने की उत्सुकता है। सिर्फ window manager बदलकर 2 घंटे का फर्क बहुत बड़ा है
यह मेरे लिए पूरी तरह switch करना मुश्किल होने के मुख्य कारणों में से एक है। मैं desktop environment भी इस्तेमाल नहीं करता, और ऐसी कोई feature भी नहीं इस्तेमाल करता जिसमें compositor सचमुच useful हो, इसलिए मेरे नज़रिए से फायदे बहुत कम दिखते हैं
कभी-कभी बस इतना दिखता है कि gtk4 programs, जो मेरे set किए system theme को follow नहीं करते, उनके shadow dropdowns की वजह से black border बन जाता है
मैंने Niri अभी तक इस्तेमाल नहीं किया है, लेकिन दिलचस्पी है
हाल में GNOME पर PaperWM extension के साथ scrollable window manager experience का काफी अच्छा स्वाद मिला: https://github.com/paperwm/PaperWM
हालांकि यह Gnome environment के अंदर नहीं बना है, इसलिए थोड़ा नुकसान होता है। Gnome “मुफ्त में” जो कुछ चीज़ें देता है, वे Niri में नहीं हैं, और कुछ काफी basic features के लिए भी replacement tools खुद ढूंढने पड़ते हैं
जो चीज़ें missing लगती हैं वे हैं desktop notifications, app launcher, dock या running apps की list, और X11 applications को seamless तरीके से चलाने के लिए Xwayland। ये सभी features Niri में शामिल नहीं हैं और इन्हें अलग tools से मिलना होगा
सबसे बड़ी शिकायत यह है कि X11 और Wayland के बीच clipboard synchronization नहीं है। Gnome शायद इसे automatically handle कर लेता है, लेकिन Niri में ऐसा नहीं है, इसलिए Wayland apps और X11 apps के बीच copy/paste न हो पाना बहुत annoying है
workarounds हैं, लेकिन अब तक जो भी कोशिश की उनमें से कोई भी पर्याप्त comfortable और reliable नहीं लगा
scrollable window manager सचमुच शानदार हैं। tiling window manager productivity का करीब 80% सिर्फ 20% effort में मिल जाता है
हैरानी है कि इसे समझने में 30–40 साल लग गए
मैं ऐसा भी हूं जिसके open browser tabs अनंत तक बढ़ते जाते हैं और आखिर में सैकड़ों tabs bookmark करके सब बंद करने पड़ते हैं, इसलिए यह पूरा paradigm सच में मेरे लिए ठीक नहीं लगता
यह जल्दी-जल्दी लिखा हुआ Python code था, जो नाम से windows को stack के अंदर-बाहर yank करने देता था और stack की सबसे पुरानी window को हटाकर side में रखता था। असल में यह windows के लिए LRU cache था
यह “काम” करता था, लेकिन अगर college के समय PaperWM होता तो मुझे बहुत मज़ा आता
कुछ काम floating window managers ही अच्छे से करते हैं। मुझे यह बुरी आदत पसंद है कि कुछ documents को floating में pin करके screen के अलग-अलग हिस्सों में रखूं और बहुत ज्यादा move किए बिना cross-reference करूं
अगर आप Linux desktop पर क्या चल रहा है, इसके बारे में और सीखना चाहते हैं, तो मैं किसी को भी कम-से-कम एक non-standard window manager आज़माने की सलाह दे सकता हूँ
tiling window managers से छेड़छाड़ करते हुए मैंने Linux के बारे में किसी भी दूसरी तरह के software की तुलना में ज़्यादा सीखा
सच में productivity बढ़ी या नहीं, पता नहीं, लेकिन यह एक शानदार learning experience है, ergonomics भी अच्छी है, और अपना desktop environment बिल्कुल नीचे से बनाते जाने की संतुष्टि जबरदस्त है