13 पॉइंट द्वारा GN⁺ 2025-10-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • macOS पर इस्तेमाल किया जा सकने वाला एक ओपन सोर्स टाइलिंग विंडो मैनेजर, जिसे परफॉर्मेंस और उपयोगिता पर फोकस करके विकसित किया जा रहा है
  • System Integrity Protection (SIP) को disable किए बिना काम करता है, और macOS के "Displays have separate Spaces" विकल्प के साथ संगत कुछ गिने-चुने विंडो मैनेजरों में से एक है
  • i3/sway और bspwm जैसे विभिन्न लेआउट स्टाइल्स को सपोर्ट करता है
  • Mission Control स्टाइल workspace नेविगेशन और trackpad gestures जैसे macOS native environment के साथ स्वाभाविक इंटीग्रेशन प्रदान करता है
  • Animation performance और user experience पर ज़ोर देता है, तथा settings hot reload और external programs के साथ integration इसकी खास विशेषताएँ हैं
  • macOS के लिए मौजूदा टाइलिंग विंडो मैनेजर Aerospace की कुछ खूबियों (परफॉर्मेंस, flexibility आदि) को आगे बढ़ाते हुए, animation सपोर्ट और multi-display में केवल एक डिस्प्ले को fullscreen में इस्तेमाल करने जैसी अतिरिक्त सुविधाओं का लक्ष्य रखता है

मुख्य विशेषताएँ

  • कई लेआउट स्टाइल्स: i3 या sway की तरह विंडो को ग्रिड रूप में व्यवस्थित करना, या bspwm स्टाइल binary space partitioning तरीका सपोर्ट करता है
  • मेन्यू बार आइकन: सभी workspaces और हर workspace के भीतर लेआउट की स्थिति को विज़ुअली दिखाता है
  • macOS Mission Control स्टाइल नेविगेशन: workspaces के बीच स्विचिंग को विज़ुअली और आसानी से मैनेज किया जा सकता है
  • माउस फोकस auto-switch और auto-raise फीचर प्रदान करता है
  • विंडो drag करने पर position swap संभव है, और animations स्मूद तरीके से चलती हैं
  • Trackpad gestures का उपयोग करने पर macOS native की तरह workspace switching संभव है
  • चलते समय settings बदलना (hot reload) सपोर्ट करता है, जिससे real-time configuration बहुत आसान हो जाती है
  • Sketchybar जैसे third-party programs के साथ interface, तथा CLI या mach port के जरिए integration सपोर्ट
  • workspace बदलने या विंडो में बदलाव होने पर signals बाहर भेजे जा सकते हैं, और signals को CLI या mach connection के जरिए transmit किया जा सकता है
  • Rust भाषा में 100% विकसित

1 टिप्पणियां

 
GN⁺ 2025-10-14
Hacker News राय
  • मैं पहले i3 का बहुत ज़्यादा इस्तेमाल करता था। i3 बेहद flexible था और उसकी configuration भी काफी खुली थी, इसलिए उससे सिर्फ़ विंडो इधर-उधर करना ही नहीं, उससे कहीं ज़्यादा किया जा सकता था। लेकिन Mac पर आने के बाद मुझे ऐसा कोई tiling window manager नहीं मिला जिसमें फीचर भी बहुत हों और stability भी हो। मैंने कई options आज़माए, और अब बस Rectangle इस्तेमाल करता हूँ। Rectangle असल में कोई window manager नहीं है, बल्कि सिर्फ़ shortcuts देता है जिनसे विंडो को बाएँ/दाएँ/ऊपर/नीचे या 3/4/6 हिस्सों में आसानी से ले जाया जा सके। यह मेरे usage pattern के लगभग 80% हिस्से को cover कर देता है, custom configuration की भी ज़रूरत नहीं पड़ती, और कोई अनपेक्षित behavior भी नहीं होता, इसलिए मैं इससे खुश हूँ। उम्र बढ़ने के साथ बहुत सारी custom settings पर समय लगाना भी मुश्किल लगता है। Rectangle आधिकारिक साइट

    • Rectangle में मुझे जो फीचर सच में बहुत पसंद है, वह todo mode है। मैं असली todo management के लिए इसका इस्तेमाल नहीं करता, लेकिन किसी एक विंडो को हमेशा visible रखने के लिए pin कर सकता हूँ, और global window shortcuts अपने-आप उसके हिसाब से adjust हो जाते हैं, जो बहुत सुविधाजनक है
    • मैं Rectangle का बहुत आभारी हूँ कि वह Spectacle shortcut options को support करता है। शायद कभी मैं उसके default shortcuts भी सीख लूँ, लेकिन अभी तो यह तरीका हाथ में बस चुका है, इसलिए इसी पर बना हुआ हूँ
    • Rectangle और Apptivate के combination की वजह से कई सालों तक i3 replacement ढूँढने की मेरी परेशानी खत्म हो गई। Rectangle से विंडो move करना, और Apptivate से super+नंबर के जरिए विंडो switch करना—बिलकुल वही flow बन जाता है जो मैं i3 में इस्तेमाल करता था
    • मेरा अनुभव भी कुछ ऐसा ही है, बस Rectangle की जगह मैं Divvy इस्तेमाल करता हूँ। Divvy आधिकारिक साइट
    • Rectangle की सिफारिश करता हूँ। Linux से Mac पर आने की आदत डालना इससे बहुत आसान हुआ
  • 5k/6k display पर सामान्य tiling की अपनी सीमाएँ हैं—विंडो बहुत बड़ी हो जाती हैं। इसलिए मुझे लगता है कि moon जैसी apps कहीं बेहतर हैं। Windows पर Moom जैसी app नहीं है, इसलिए मैं komorebi जैसा tiling manager इस्तेमाल करता हूँ। जो लोग कई operating systems और devices के बीच आते-जाते रहते हैं, उनके लिए यह अफसोस की बात है कि rift generic alt+hjkl जैसे key bindings को support नहीं करता। ultra-high-resolution या ultrawide monitors पर इस तरह की window placement लगभग ज़रूरी लगती है (komorebi में यह support है)

    • अगर paste किया गया ASCII diagram ठीक से नहीं दिख रहा हो, तो code block को चार spaces से indent करने पर HN में वह code की तरह दिखता है
    • कहा जा रहा है कि komorebi जल्द ही macOS पर भी आएगा komorebi macOS परिचय वीडियो
  • बहुत से लोगों के लिए यह काफ़ी नहीं होगा, लेकिन मेरी तरह अगर आप Mac पर ज़्यादातर समय सिर्फ़ एक विंडो इस्तेमाल करते हैं, या external monitor जोड़ने पर ही दो स्क्रीन इस्तेमाल करते हैं, तो यह built-in feature ही काफ़ी है MacOS आधिकारिक window split guide (मैं कोई heavy tiling user नहीं हूँ)

    • क्या यह फीचर सिर्फ़ Tahoe Mac पर ही उपलब्ध था? मुझे अभी तक पता ही नहीं था
    • मुझे तो बिल्कुल नहीं पता था कि ऐसा कोई फीचर भी है—जानकारी के लिए धन्यवाद
  • macOS में fullscreen और trackpad gestures इसलिए इतने आकर्षक लगते हैं क्योंकि ज़्यादातर मामलों में आप सिर्फ़ एक ही विंडो में काम कर रहे होते हैं। लेकिन जब terminal, editor, browser DevTools, logs और documents जैसी कई विंडो एक साथ खुली हों, तब layout की predictability बेहद महत्वपूर्ण हो जाती है। tiling tools सिर्फ़ दो विंडो को साथ-साथ रखने के लिए नहीं होते, बल्कि

    • वे context-switching overhead को काफ़ी घटा देते हैं (सिर्फ़ keyboard से विंडो switch/rearrange)
    • अक्सर इस्तेमाल होने वाले work layouts को project के हिसाब से duplicate किया जा सकता है
    • ultra-high-resolution screens पर precise splits कहीं ज़्यादा उपयोगी होते हैं
      मैं Mac पर Rectangle या Moom से लगभग 80% ज़रूरतें पूरी कर लेता हूँ, और बाकी के लिए Aerospace या Rift इस्तेमाल करता हूँ। जब विंडो की संख्या या switching frequency बढ़ जाती है, तब tiling window manager की उपयोगिता साफ़ दिखती है
  • एक समय मैंने अपना खुद का window manager बनाने की कोशिश की थी, लेकिन macOS में कोई ढंग का API नहीं है, इसलिए जल्दी ही छोड़ दिया। व्यवहार में accessibility API को hack करके ही काम चलाना पड़ता है। यह project भी Objective C bindings और accessibility API का इस्तेमाल करता है, इसलिए जिज्ञासा है कि debugging, feature implementation या रोज़मर्रा के काम के लिए आपने मुख्य रूप से कौन-से tools इस्तेमाल किए

    • मेरा मानना है कि accessibility framework को सिर्फ़ "hack" कहना ठीक नहीं होगा; यह वास्तव में बहुत अच्छी तरह design किया गया toolset है। पिछले एक महीने से मैं Rust में इसी तरह का project बना रहा हूँ और कई macOS framework bindings के साथ काम कर चुका हूँ, और यह उतना डरावना नहीं है। Rust और rust-analyzer के साथ, Apple docs और objc2 docs खुले हों तो काफ़ी है; XCode जैसी जटिल setup की भी ज़रूरत नहीं पड़ती
  • मैंने भी हाल ही में Aerospace को अपने हिसाब से सेट करने में काफ़ी yak shaving झेला। जब बहुत सारे shortcuts आपस में टकराते हैं, तो लोग आम तौर पर इसे कैसे संभालते हैं, यह जानना चाहता हूँ। मुझे hjkl combinations की आदत है, इसलिए स्वाभाविक रूप से मैं ज़्यादातर mapping उसी पर करना चाहता हूँ, और Aerospace का modal feature shortcut conflicts को कुछ हद तक संभाल लेता है। आखिर लोग अपना setup किस तरह final करते हैं?

    • आम तौर पर लोग बिना किसी खास समाधान के बस इसे इस्तेमाल करते रहते हैं। मेरे साथ भी रोज़मर्रा के इस्तेमाल में shortcut conflicts जल्दी सामने आ जाते हैं। लगभग एक साल से Aerospace इस्तेमाल करते हुए मैंने alt+space को leader key बना लिया है और सब कुछ उसके पीछे छिपा दिया है। Aerospace के normal mode में कुछ alt-shortcuts रखे हैं और {hjkl} से विंडो move करता हूँ, बाकी चीज़ें अलग modes में रखता हूँ (जैसे ‘go-to’, ‘move-to’ modes, जहाँ letters/numbers के हिसाब से जल्दी विंडो move हो सके)। terminal में zellij/tmux इस्तेमाल करने वाले, leader key आधारित usability के extended version जैसा लगता है, इसलिए अच्छा लगता है। एक दिक्कत यह है कि Aerospace screen switch के बाद विंडो छिपा देता है, इसलिए कभी-कभी उसे नीचे कोने में ढूँढना पड़ता है
    • मैंने Aerospace आज़माया था, लेकिन उसकी default setting सभी alt+alphabet (26) को अलग-अलग workspaces पर assign कर देती है, जिससे apps में इस्तेमाल होने वाले emacs-style shortcuts लगभग सब टूट जाते हैं। default key mapping या usage पर कोई tutorial भी नहीं है, बस commands की लंबी सूची है। हाल ही में मैंने Linux में sway और hyprland जैसे environments के साथ भी काफ़ी संघर्ष किया है (यहाँ तक कि Linux bootloader/disk encryption वाला काम भी किया), लेकिन इतनी unfriendly software बहुत कम देखी है। इसलिए Aerospace हटा दिया, और अब Rift को अगला candidate मान रहा हूँ, या शायद खुद window manager बना लूँ—आख़िर tiling window manager का स्वभाव ही कुछ ऐसा है कि लोग कहते हैं, "जो चाहिए, वह खुद बना लूँगा"
    • मैं भी कुछ ऐसा ही करता हूँ: Karabiner में external keyboard की right Option को Option+Shift (A1) और right Control को Control+Option+Shift (A2) पर remap किया है। Aerospace config में focus movement के लिए A1+hjkl, और window movement के लिए A2+hjkl इस्तेमाल करता हूँ। workspace switching के लिए A1+ui, window को workspace में भेजने के लिए A2+ui। screen (monitor) switching के लिए A1+m, और window को दूसरी screen पर भेजने के लिए A2+m। व्यवहार में यही सबसे ज़्यादा इस्तेमाल होने वाले shortcut combinations हैं, और अगर app shortcuts से conflict हो तो मैं उसी app के shortcuts बदल देता हूँ। इसे और बढ़ाया जा सकता है, लेकिन अभी के रूप में भी यह बहुत अच्छी तरह काम करता है
    • मैं meh (Control+Alt+Shift) और hyper (Control+Alt+Shift+Command) shortcuts इस्तेमाल करता हूँ। caps lock को इस तरह map किया है कि लंबा दबाने पर meh बने और हल्का tap करने पर esc। इससे बहुत सारे shortcuts एक ही हाथ की पहुँच में आ गए हैं। जैसे meh+नंबर से space switch करना, terminal hot window के लिए meh+space, और window focus के लिए meh+hjkl
  • Hammerspoon का इस्तेमाल करके अपना खुद का window manager बनाया जा सकता है। मुझे Divvy का modal तरीका (जहाँ single command key से layout बदला जाता है) पसंद है, लेकिन अफसोस कि अब उसका maintenance नहीं हो रहा। इसलिए मैंने OpenAI Codex से अपना modal window manager बनवाया hammerspoon के लिए window manager source code। ऐसा approach साझा करना मज़ेदार हो सकता है!

    • मैं भी divvy लगातार इस्तेमाल करता आया हूँ, और मुझे तो पता ही नहीं था कि उसका maintenance रुक गया है… हालांकि उसमें मेरी ज़रूरत की हर चीज़ पहले से है, इसलिए कोई दिक्कत महसूस नहीं हुई। अगर कोई फीचर है जो आप उसमें जुड़ता देखना चाहते, तो जानना चाहूँगा
    • मैं MiroWindowsManager (Hammerspoon plugin) से अपनी सारी ज़रूरतें पूरी कर लेता हूँ। इसके 3 chord division तरीके हैं, जिनसे किसी भी विंडो को hotkeys के ज़रिए मनचाहे split में तुरंत रखा जा सकता है। सचमुच कुछ ही सेकंड में विंडो को मनचाहे layout में रखा जा सकता है
  • अगर आप MacBook trackpad user हैं, तो Swish किसी भी app से कहीं आगे है Swish आधिकारिक साइट

    • नाम "highly opinionated" क्यों है, यह बात वाकई समझ में आती है ;). लेकिन मैं Divvy को लगातार इसलिए पसंद करता हूँ क्योंकि मेरे custom keyboard shortcuts trackpad हो या external keyboard, हमेशा एक जैसे ही काम करते हैं। Divvy आधिकारिक साइट
  • क्या किसी ने इसे (nix flake) से set up किया है? yabai के बाद से मैं कई window managers test कर रहा हूँ, लेकिन Aerospace में शायद event handling की वजह से, खासकर जब sketchybar में अच्छे workspace indicators दिखाने हों, कभी-कभी lag हो जाता है। अगली बार शायद इसे (rift) भी आज़माऊँ

  • मुझे समझ नहीं आता कि macOS पर tiling windows की ज़रूरत क्यों पड़ती है। विंडो को साथ-साथ रखने की ज़रूरत आखिर कितनी बार पड़ती है? ज़्यादातर apps को fullscreen में रखकर 4-finger swipe से switch करना काफ़ी नहीं है? कोई मुझे समझाए

    • मैं तो इसका बहुत इस्तेमाल करता हूँ। Slack को दाएँ 1/4 हिस्से में रखता हूँ, और बाकी जगह browser/terminal/IDE वगैरह ज़रूरत के हिसाब से। कई बार browser के साथ logs tail करता हूँ, और apps के अंदर भी multi-view/terminal जैसी चीज़ों में बाँटता हूँ। browser में भी pages को side-by-side देखने की ज़रूरत अक्सर पड़ती है
    • मैं यह नहीं कहूँगा कि tiling window manager "ज़रूरी" ही है। लेकिन "बस fullscreen करो और 4-finger swipe करो" यह तरीका शायद सिर्फ़ आपको ही suit करता हो। मैंने gestures, animations और multiple desktops (spaces) लगभग सब बंद कर दिए हैं। fullscreen apps के बीच जाना बहुत धीमा लगता है, और किसी खास app तक पहुँचने के लिए कई swipes गिनकर करने पड़ते हैं। मुझे यह पसंद नहीं कि दिमाग में app order गिनूँ और सोचूँ कितनी बार swipe करना है। मैं जो app चाहिए उसे तुरंत सामने लाना चाहता हूँ
    • macOS नहीं है, लेकिन Linux में लोग tiling क्यों इस्तेमाल करते हैं, वजह लगभग वही होगी। जब सिर्फ़ laptop screen हो तो fullscreen बेहतर लग सकता है, लेकिन monitor जितना बड़ा होता जाता है, विंडो को साथ-साथ रखने की ज़रूरत उतनी बढ़ती है। documents/mail, editor/terminal/VCS, code/docs, template/web, accounts/banking, file management—ऐसे बहुत से काम हैं जहाँ अलग-अलग apps एक साथ देखकर काम करना होता है, और वहाँ tiling कहीं ज़्यादा productive है
    • सच में, कई बार बगल में कई विंडो खुली हों तो बहुत फायदा होता है। जैसे web browser/document/IDE के साथ काम करना, या जब किसी एक app को पूरी screen की ज़रूरत ही न हो। वास्तव में ज़्यादातर apps को fullscreen size की ज़रूरत नहीं होती, बल्कि कई बार 1/4 tile ज़्यादा सुविधाजनक होती है। मैं आम तौर पर fullscreen + virtual desktop का काफी इस्तेमाल करता हूँ, लेकिन यह काम के प्रकार पर निर्भर करता है
    • पहले मैं spaces (desktop switching) का बहुत इस्तेमाल करता था, लेकिन बड़े monitor पर एक ही screen पर सब कुछ खुला रखना कहीं ज़्यादा सुविधाजनक है। मैं 32-inch के 3 monitors इस्तेमाल करता हूँ (बाएँ और दाएँ वाले portrait में हैं), और IDE को छोड़कर लगभग कुछ भी fullscreen में नहीं रखता। screen splitting का मतलब है कि आपके पास हमेशा कई छोटे screens साथ-साथ हैं, इसलिए यह ढूँढने की ज़रूरत नहीं पड़ती कि कौन-सी विंडो किस desktop पर है—यह ज़्यादा simple और efficient है। Chrome अगर कई spaces में खुला हो तो cmd-tab से अक्सर मनचाही विंडो नहीं मिलती, और फिर खुद ढूँढना पड़ता है, जो झंझट है। दूसरी तरफ़, जब सिर्फ़ laptop इस्तेमाल करता हूँ तो screen छोटी होने की वजह से virtual spaces के आधार पर विंडो manage करता हूँ। Slack, कई Chrome windows, terminal, IDE, Postman, DataGrip—सबको एक shortcut से switch कर सकता हूँ, बिना पूरी screen बदले। मानो 8 असली screens हमेशा खुली हों, जिससे productivity बहुत बढ़ जाती है। r-cmd से हर app पर तुरंत focus कर सकता हूँ, इसलिए switching भी बहुत तेज़ है। virtual desktop में घूमना नहीं पड़ता, इसलिए चीज़ें ढूँढना भी आसान रहता है