macOS को अपना ग्रिड वापस पाना चाहिए
(blog.hopefullyuseful.com)- macOS का Spaces Leopard के दौर में उपयोगकर्ता-निर्धारित 3x3 grid के साथ virtual desktop को वास्तविक स्क्रीन की तरह इस्तेमाल करने देता था, जिससे browser, editor, Xcode और simulator के बीच spatial memory के सहारे आना-जाना संभव था
- Mission Control ने macOS Lion में virtual desktop को एक क्षैतिज पंक्ति तक सीमित कर दिया, जिससे keyboard से किसी खास स्क्रीन तक फिसलते हुए जाना पड़ता था या shortcut नंबर याद रखने पड़ते थे, और spatial memory टूट जाती थी
- Total Spaces से धीमापन आता था और बाद में यह system Dock में बदलाव और SIP bypass पर निर्भर हो गया, जबकि Yabai/Aerospace जैसे window manager full-screen apps और task-विशिष्ट dedicated spaces की पसंद के साथ मेल नहीं खाते थे
- GridLion एक ऐसे समाधान के रूप में आया जब InstantSpaceSwitcher को animation के बिना space बदलते देखा गया; यह बंद Mission Control API पर निर्भर होने के बजाय native single-row space को model करके उसे grid की तरह दिखाता है
- LLM ने एक दिन में काम करने वाला prototype बनाने में मदद की, लेकिन UI का सही एहसास पाने के लिए इंसानी feedback loop ज़रूरी था, और GridLion में बची API सीमाओं की वजह से grid-आधारित Spaces को फिर से OS feature होना चाहिए
Leopard Spaces ने spatial memory कैसे बनाई
- macOS 10.5 Leopard का Spaces virtual desktop को macOS में लेकर आया और उपयोगकर्ताओं को spaces को अपनी पसंद के grid में व्यवस्थित करने की सुविधा दी
- 3x3 grid को 9 स्क्रीन की तरह इस्तेमाल किया जा सकता था, जहाँ बीच में web browser, ऊपर web editor, ऊपर-बाएँ Xcode, और उसके नीचे iOS simulator जैसे apps और tasks को स्थिर रखा जा सकता था
- किसी खास स्थान पर एक key press से पहुँचना, अलग physical display देखने जैसा muscle memory और spatial memory बनाता था
- EasyBeats Drum Machine की 16 sequencing screens वाली grid भी Apple के Spaces layout से सीधे प्रभावित थी
Lion के बाद गायब हुआ grid
- macOS Lion ने Mission Control पेश करते हुए virtual desktop को एक क्षैतिज पंक्ति तक सीमित कर दिया
- इस एक पंक्ति वाले layout में keyboard से किसी खास स्क्रीन तक पहुँचने के लिए बार-बार क्षैतिज रूप से आगे बढ़ना पड़ता था, और सीधे shortcut इस्तेमाल करने पर भी यह याद रखना पड़ता था कि browser 7वीं स्क्रीन पर है या 8वीं पर
- इस बदलाव ने desktop को spatial position के आधार पर याद रखने का तरीका बनाए रखना कठिन बना दिया
- Total Spaces जैसे विकल्प थे, लेकिन उनमें धीमापन था, वे system Dock modification पर निर्भर थे, और बाद में SIP bypass की भी ज़रूरत पड़ने लगी
window manager से ज़्यादा task-आधारित spaces
- Yabai और Aerospace जैसे window manager हर उपयोगकर्ता के लिए एक जैसे समाधान साबित नहीं हुए
- desktop पर windows को व्यवस्थित करने का तरीका मेज़ पर रखे कागज़ों को इधर-उधर करने जैसा लगता है, जबकि ज़रूरत एक ऐसी अलग कार्य-मेज़ जैसी थी जहाँ सब कुछ अपनी जगह पर बना रहे
- macOS के full-screen apps और split mode, एक task को dedicated area देने के तरीके हैं, इसलिए वे grid-आधारित space navigation के साथ बेहतर मेल खाते हैं
GridLion कैसे काम करता है
- InstantSpaceSwitcher system modification के बिना macOS के space-switching animation को हटाता है, और animation के बिना switching देखकर यह संभावना दिखी कि grid navigation की समस्या हल की जा सकती है
- macOS Mission Control API का अधिकांश हिस्सा बंद रखता है, इसलिए documented API के जरिए desktop जोड़ना या उन्हें फिर से व्यवस्थित करना संभव नहीं है
- GridLion native spaces के ऊपर एक हल्का wrapper रखता है और macOS के single-row spaces को अपने internal model में grid की तरह दिखाता है
- LLM की मदद से एक ही दिन में एक खुरदुरा लेकिन काम करने वाला prototype बन गया, और कुछ दिन इस्तेमाल करने के बाद एक अधिक polished tool की ज़रूरत महसूस हुई
- लगभग एक महीने बाद यह संतोषजनक स्तर पर पहुँचा, और app का नाम macOS Lion से पैदा हुई समस्या और grid को मिलाकर GridLion रखा गया
permissions और distribution की बाधाएँ
- global keyboard shortcut पकड़ने और spaces में navigation करने के लिए macOS में
Accessibilitypermission चाहिए - macOS का permission flow iOS की तरह तुरंत approval पर खत्म नहीं होता; settings खोलनी पड़ती हैं, फिर उपयोगकर्ता को एक खास toggle ढूँढकर चालू करना होता है, और उसके बाद अतिरिक्त security prompt स्वीकार करना पड़ता है
- spaces के छोटे preview बनाने के लिए
Screen and System Audio Recordingpermission भी चाहिए, और invisible windows तथा screen preview snapshots की वजह से अधिक कड़ा warning dialog दिखता है - GridLion इन permissions के बिना भी काम करता है, लेकिन preview feature के लिए permission ज़रूरी है
- भरोसा बनाने के लिए app को उपयोगकर्ता द्वारा माँगे गए update check और license key validation के अलावा network को छूना नहीं चाहिए था
- GridLion space information पाने के लिए private API call करता है, इसलिए इसे App Store पर नहीं रखा जा सकता
- App Store के बाहर बेचने के लिए purchase, tax और refund संभालने वाला Merchant of Record चाहिए था, और Paddle, GumRoad, Lemon Squeezy इसके उम्मीदवार थे
- Lemon Squeezy License code API देता है, जिससे खरीदार को license key दी जा सकती है और activation, deactivation और validation methods मिलते हैं
- Lemon Squeezy approval के लिए यह दिखाना पड़ता था कि उत्पाद वास्तविक है और उसका स्पष्ट उपयोग है, जिसके लिए screencast और social media account proof चाहिए था
- approval से पहले भी test account इस्तेमाल किए जा सकते थे, जिससे app integration को सेट करना और टेस्ट करना आसान था
LLM और बची हुई सीमाएँ
- LLM उन कामों में आसान iteration देता है जहाँ लक्ष्य स्पष्ट हो, जैसे specific API result या बड़े dataset query
- user interface काफी हद तक एहसास पर निर्भर करता है, इसलिए उपयोगकर्ता को दिखने वाली features के लिए इंसान को feedback loop में होना चाहिए
- लगभग 10 साल तक native Mac/iOS काम न करने की स्थिति में LLM मददगार रहा, लेकिन यह सवाल बना रहा कि क्या वही app पुराने तरीके से भी लगभग उतने ही समय में बन सकता था और उससे ज़्यादा सीखा जा सकता था
- GridLion का लक्ष्य space grid navigation और rearrangement, तेज़ और स्थिर व्यवहार, और display-वार grid size तथा shortcut settings देना है
- किसी space को एक display से दूसरे display पर ले जाना या window को एक space से दूसरे space में ले जाना, इन कामों के लिए कोई भरोसेमंद API नहीं है
- GridLion Mission Control के साथ काम करता है, इसलिए ऐसे काम Mission Control से किए जा सकते हैं
- किसी खास app को चलते समय हमेशा किसी निश्चित grid position पर दिखाने की सुविधा मूल macOS Spaces में थी, लेकिन GridLion में यह अभी भी बाकी काम है
- grid-आधारित Spaces का अगले macOS में फिर से native OS feature के रूप में लौटना सबसे अच्छा होगा
1 टिप्पणियां
Hacker News टिप्पणियाँ
Apple का मौजूदा तरीका ऐसा लगता है जैसे वह “नौसिखिए तो वैसे भी Allow दबा देंगे” वाली समस्या को रोकने के लिए, हर बार यूज़र को 4~5 चरणों वाली mini system administrator adventure में धकेल देता है
Settings में छोटा-सा toggle ढूँढकर उसे on करना पड़ता है और फिर दोबारा security prompt से गुजरना पड़ता है, और अनुभवी यूज़र्स के लिए भी इसे बंद करने का कोई तरीका नहीं है — यह यूज़र के प्रति सम्मान की कमी जैसा लगता है
अगर कोई दादी या 10 साल का बच्चा किसी संदिग्ध executable पर “पूरे filesystem access और keylogging की अनुमति” दे देता है, तो यह समस्या Apple को हल करनी चाहिए, लेकिन जो यूज़र अनजान नहीं हैं, उन्हें इस protection को बंद करने का विकल्प मिलना चाहिए
यह perfect नहीं है, लेकिन Apple का approach काफ़ी ठीक है, और अगर आपको ऐसी प्रक्रिया बार-बार करनी पड़ रही है, तो security के हिसाब से यह कोई अच्छा संकेत भी नहीं है
इसके उलट websites बार-बार notification allow करने को पूछती हैं, जबकि लोग लगभग कभी यह नहीं चाहते। मैंने हाल में settings देखते समय पाया कि गलती से allow कर देने के मामले उम्मीद से ज़्यादा थे, और शायद लगभग 5% मैंने गलत क्लिक किए थे
यह permission keylogger बनाने में काम आती है। बस वही। यह ऐसी permission है जो keylogger लिखने देती है, इसलिए यह सिर्फ़ एक click में पूरी नहीं होनी चाहिए; यह इतनी ख़तरनाक permission है कि extra steps जायज़ हैं
spctl --master-disableएक बार और settings menu में एक बार जाना काफ़ी होता है। समझ नहीं आता कि TCC ऐसा क्यों नहीं कर सकताpreviews के लिए Apple आम कामों हेतु API दे सकता है। operating system image उपलब्ध करा सकता है और उसे ऐसे refresh rate पर sample कर सकता है कि उसका arbitrary recording के लिए इस्तेमाल करना मुश्किल हो
key combinations के लिए, अभी जो emoji key बाहरी binding के लिए उपलब्ध नहीं है, उसे फिर से इस्तेमाल किया जा सकता है, ताकि किसी खास “magic sequence” के बाद ही capture की अनुमति मिले। operating system command को centrally manage करे, और programs को actual key inputs की जगह सिर्फ़ command दे — इससे conflicts का coordination भी centralize हो जाएगा। अभी macOS में यह हिस्सा काफ़ी तकलीफ़देह है
यह सारी समस्याएँ हल नहीं करेगा, लेकिन कुछ तो करेगा। शायद इससे बेहतर तरीके भी हों। Apple के पास काफ़ी smart programmers हैं, इसलिए product team को expert users को साफ़ तौर पर परेशान करने वाली इस समस्या को हल करने देना चाहिए
macOS 10.11 से पहले Mission Control अच्छा था। चार उँगलियों से ऊपर swipe करने पर वह सभी Spaces की preview दिखाता था, लेकिन 10.11 में बिना किसी वजह यह ख़राब कर दिया गया और bar में सिर्फ़ “Desktop 1”, “Desktop 2” जैसे नाम दिखने लगे, preview देखने के लिए mouse hover करना पड़ता है
असली असर यह है कि Spaces का इस्तेमाल दिशा-बोध खत्म कर देता है और चीज़ें याद रखने पर मजबूर करता है
कुछ third-party software इसे वापस लाने का दावा करते हैं, लेकिन वे mouse को हिलाकर hover का नाटक करते हैं, इसलिए lag आता है और animation के साथ ठीक से integrate नहीं होता। SIP बंद करके code inject करने वाले patches भी थे (https://github.com/briankendall/forceFullDesktopBar), लेकिन आख़िरकार उनका maintenance बंद हो गया
10 साल बाद अब सोचता हूँ कि क्या Apple के अंदर किसी को याद भी है कि यह UI कभी अच्छा हुआ करता था
लेकिन desktop और fullscreen के लिए अलग preview behavior की कोई वजह मुझे बिल्कुल समझ नहीं आती
इस UX का सबसे चिढ़ाने वाला हिस्सा यह है कि Spaces बिना किसी साफ़ वजह के reorder हो जाते हैं। मैं आम तौर पर कई IDE windows खुली रखता हूँ, इसलिए हर बार देखना पड़ता है कि window कहीं खिसक तो नहीं गई — यह थका देता है
पूरे operating system में projects या tasks जैसी किसी अवधारणा की ज़रूरत है। यह अवधारणा apps के पार जानी चाहिए, और window management तथा Spaces में गहराई से integrated होनी चाहिए
multitasking और context switching कई सालों से बढ़े हैं, instant messaging ने इसे फिर तेज़ किया है, और agent-आधारित workflows इसे और आगे धकेलेंगे। एक ही app कई कामों में इस्तेमाल होती है, इसलिए यह app-level concern नहीं बल्कि operating system को support करना चाहिए
IDE में workspace या project जैसी primitive अवधारणाएँ होती हैं, इसलिए वह code और terminal context restore कर सकता है और कुछ हद तक मदद मिलती है। लेकिन web pages, IDE के बाहर के agents, सहकर्मियों के साथ जुड़ी chats, project management apps वगैरह हमेशा अलग-अलग रह जाते हैं
यह साफ़ तौर पर app-level नहीं बल्कि operating system-level concern है। iPad में alternative window arrangements के कुछ experiments आशाजनक लगे, लेकिन व्यक्तिगत रूप से वे न तो काफ़ी powerful थे और न ही intuitive
समझ नहीं आता कि ज़्यादा power users इस setup को ideal क्यों नहीं मानते। उम्मीद है Zen Browser एक मज़बूत alternative बनेगा
¹https://blogs.kde.org/2026/01/17/streamline-plasma-with-acti...
यह भी अच्छा है कि workspace में अनंत जगह होती है, इसलिए सिर्फ़ इस वजह से नया workspace बनाने की ज़रूरत महसूस नहीं होती कि कोई workspace तंग हो गया है
मैं यह साबित तो नहीं कर सकता, लेकिन मुझे लगता है कि Leopard में Apple ने Spaces को “समझ से परे तरीके से सिर्फ एक horizontal row तक सीमित” कर दिया, उसमें शायद मेरी प्रेरणा या भूमिका रही हो
2009 में मैंने gesture navigation के साथ linear window manager का एक concept video बनाया था। अब वह लगभग भुला दिया गया है, लेकिन उस समय tech media में उसे काफ़ी कवरेज मिली थी और उसने 2010 के शुरुआती वर्षों में कुछ proof-of-concept पर असर डाला था
linear window management हर किसी की पसंद नहीं है, लेकिन मुझे अब भी यह एक वैध idea लगता है। इस रिलीज़ और उस पर आई प्रतिक्रियाएँ देखकर हौसला मिला, और मैं सच में अभी इसी तरह के क्षेत्र में कुछ बना रहा हूँ
आज एक घंटे तक इसे उम्मीद के मुताबिक काम कराने की कोशिश की, लेकिन अभी भी कुछ अजीब बातें हैं। usage-based auto-reordering बंद करने पर भी three-finger swipe preview का क्रम और असली window order अलग है। visual order तो उम्मीद के मुताबिक है, लेकिन swipe order linear नहीं है
https://github.com/mogenson/PaperWM.spoon
मुझे वह design और उसने Gnome के साथ जो किया, दोनों सच में नापसंद हैं। grid कहीं बेहतर था
macOS का window management ही मुझे Mac पर जाने से रोक रहा है। मैंने Aerospace जैसे मिलते-जुलते solutions भी आज़मा लिए, लेकिन i3wm जैसी तेज़ और बिना रुकावट वाली experience को दोहरा नहीं पाया
दुख की बात है कि macOS का window manager कुछ-कुछ iOS notifications जैसा है। समय के साथ आप productivity घटाने वाली अव्यवस्था के आदी हो जाते हैं, लेकिन तब बेहतर समाधान आपकी नज़र से छूट जाते हैं। और शायद क्योंकि लगभग हर macOS developer Mac ही इस्तेमाल करता है, इसलिए वे दूसरे बेहतर approaches को देख या समझ नहीं पाते
इस feature के आसपास की हर चीज़ कितनी मूर्खतापूर्ण तरीके से बनाई गई है, यह देखकर झटका लगा। जो काम कुछ साल पहले संभव थे, वे अब नहीं हैं। जैसे keyboard से desktop या workspace पर switch करना, और grid जैसी चीज़ें
“AltTab” app से कम-से-कम mouse के बिना app switching हो जाती है, और raycast से window placement भी किया जा सकता है, लेकिन macOS में switching और placement का tiling window manager की तुलना में बहुत धीमा होना तकलीफ़देह है
मुझे पूरा यक़ीन है कि अच्छे UI के लिए सबसे बड़ा ख़तरा बहुत सारे professional UI designers हैं। UI designers का आधा हिस्सा median से नीचे होता है, और इन लोगों ने UI design को अपना पेशा चुना है
साल-दर-साल सिर्फ status quo का बचाव करते रहने से career आगे नहीं बढ़ता, इसलिए उन्हें कुछ नया design करना पड़ता है। पुरानी चीज़ ठीक काम कर रही हो या नहीं, नई चीज़ बनती ही है। लेकिन जब designers का आधा हिस्सा median से नीचे है, तो नए UI design के पीछे जाने की संभावना भी आधी है
और फिर हाल यह होता है कि Apple keynote के मंच पर Liquid Glass की तारीफ़ की जा रही होती है। दुख की बात यह है कि बहुत से designers शायद visuals पर ही केंद्रित रहते हैं और usability को लगभग समझते ही नहीं। उदाहरण के लिए, industry में नए आने वाले designers में से कितने Fitts का नियम जानते होंगे? Liquid Glass की साफ़ usability समस्याओं के ख़िलाफ़ कितने designers डटे होंगे? सच कहूँ तो, कुछ दुर्लभ अपवादों को छोड़ दें तो designers ही समस्या हैं
इसमें product का उद्देश्य, इस UI हिस्से का उद्देश्य, human factors, interaction design, और aesthetics से आगे की user experience जैसी चीज़ें शामिल हैं
इन सबकी बात तो बहुत होती है, लेकिन वास्तव में इन पर कम विचार किया जाता है। क्योंकि interview portfolio या leadership report deck में जीत दिलाने वाली चीज़ें ये नहीं होतीं। नतीजतन, व्यवस्था ही इन तत्वों को मज़बूती से छाँट देती है
थोड़ा विषयांतर है, लेकिन पुराना Aqua UI कहीं बेहतर दिखता था। सिर्फ़ यह देखना आसान नहीं था कि क्या control है और क्या text, बल्कि visual तौर पर भी वह ज़्यादा सुंदर था
हर संभव action के लिए button जैसा दिखने वाला button होता था, और toolbar देखकर अक्सर उपलब्ध actions का पूरा दायरा समझ में आ जाता था। content का कोई हिस्सा clickable है या editable, यह अंदाज़ा लगाने की ज़रूरत नहीं पड़ती थी
आजकल हर चीज़ में ज़रूरत से ज़्यादा spacing है। आधुनिक Windows control panel UI अक्सर ऐसे लगता है जैसे बहुत खाली जगह हो और कुछ switches इधर-उधर पड़े हों, मानो कई columns में फैली text wall हो। पुराने UI जितने options रखने हों तो कुछ toggles छिपाने पड़ते हैं क्योंकि “अब किसी को उनकी ज़रूरत नहीं”, या बीच में navigation steps जोड़ने पड़ते हैं। नतीजतन नया control panel फूला हुआ और कम उपयोगी लगता है
यह ऐसी झुंझलाहट को हल करता है जिससे मैं दिन में दर्जनों बार गुजरता हूँ
grid अच्छा है, लेकिन उससे भी बेहतर है तुरंत virtual display switching
आधुनिक macOS के “हज़ारों छोटी असुविधाओं से मार डालना” वाले अनुभवों में भी, Ctrl→→→→→→→ दबाकर बार-बार animation झेलना जितना बुरा शायद ही कुछ हो
वजह क्या है, यह मैं पक्के तौर पर नहीं कह सकता, लेकिन ऐसा लगता है जैसे visual designers इतने अपरिपक्व हैं कि उन्हें लगता है हम किसी शानदार animation को सिर्फ demo या एक बार दिखने वाले tutorial में नहीं, बल्कि पूरे दिन, दशकों तक बार-बार देखते रहना चाहते हैं
ऐसा बिल्कुल नहीं है। एक बार काफी था। animation नहीं चाहिए। और “Reduce Motion” का implementation तो अपमानजनक है। delay वही रहता है, बस उसे धुंधले crossfade से बदल दिया जाता है
समझ नहीं आता कि असीमित resources और प्रतिभाशाली designers वाली कंपनी ऐसी चीज़ कैसे बना सकती है
मैंने सिर्फ इसी समस्या के लिए Instant Space Switcher इस्तेमाल किया है, और इससे ज़िंदगी बदल गई
Ctrl-UpArrowदबाकर मनचाहा Space क्लिक भी कर सकते हैं। यह तुरंत नहीं है, लेकिन desktop ज़्यादा हों तो एक-एक करके cycle करने से बेहतर हो सकता है“Automatically rearrange Spaces based on most recent use” को बंद करना भी ज़रूरी है
मैं व्यक्तिगत रूप से हर desktop पर सिर्फ एक app खोलता हूँ और केवल Command-Tab इस्तेमाल करता हूँ। Command-Tab के बाद अगर Command दबाए रखें, तो सभी apps में cycle किए बिना भी app चुना जा सकता है
defaults write com.apple.dock expose-animation-duration -float 0.05; killall Dock“20 साल पहले का Mac desktop experience आज से बेहतर था” वाली बात में 20 साल पहले का मतलब 2006 है। मैं आज भी लगभग 20 साल पहले जैसा ही desktop experience इस्तेमाल कर रहा हूँ
मैं Fvwm2 इस्तेमाल करता हूँ, और लेखक जिस grid virtual desktop को मिस कर रहा है, उसका आनंद मैं Fvwm2 और उससे पहले Fvwm के virtual desktop features के साथ लगातार लेता आया हूँ। Fvwm पर जाने की एक वजह grid virtual desktop भी थी, और सही समय याद नहीं, लेकिन शायद 1990 के दशक के मध्य या उत्तरार्ध की बात है
Fvwm2 configuration को मैंने समय के साथ थोड़ा-थोड़ा निखारा है, लेकिन किसी भी मोड़ पर किसी corporate designer ने यह तय नहीं किया कि मैं अब वे features इस्तेमाल नहीं कर सकता जो मैं इस्तेमाल करता था
proprietary software उपयोगकर्ता के हित को ध्यान में नहीं रखता। उसे सिर्फ stock price या अगले quarter की sales की पड़ी रहती है
Plasma और Wayland पर जाने से पहले मैं लगभग 15 साल तक XFCE को लगभग उसी configuration के साथ इस्तेमाल करता रहा, और updates ने मुझे परेशान नहीं किया
जब Apple ने vertical Spaces हटा दिए थे, तब सच में यक़ीन नहीं हुआ था। बेकार screens को लांघना पड़ता था, इसलिए यह feature मेरे लिए बेकार हो गया, और मैंने आखिरकार इसका इस्तेमाल बंद कर दिया। यह व्यावहारिक नहीं है