3 पॉइंट द्वारा GN⁺ 2025-02-10 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • FlashSpace macOS के डिफ़ॉल्ट Spaces को बेहतर बनाने और बदलने वाला virtual workspace manager है, जिसका लक्ष्य macOS animations का इंतज़ार किए बिना तेज़ workspace switching करना है
  • हर workspace के लिए apps और displays तय किए जा सकते हैं; switch करते समय उस display के assigned apps दिखाए जाते हैं और बाकी apps छिपाए जाते हैं, जिससे independent multi-display switching सपोर्ट होता है
  • Space Control, Option + Tab आधारित Workspace Switcher, Focus Manager, profiles, swipe gestures, Floating Apps, JSON/YAML/TOML configuration, CLI, SketchyBar और Raycast integration उपलब्ध हैं
  • macOS 14.0 या उससे ऊपर और “Displays have separate Spaces” setting ज़रूरी है; Homebrew install, binary download और source build सपोर्ट हैं
  • individual window-level workspaces और layout management सपोर्ट नहीं हैं; macOS में specific windows छिपाने के public API की कमी और simplicity व performance के कारण app show/hide केंद्रित design रखा गया है

FlashSpace क्या करता है

  • FlashSpace macOS के लिए एक virtual workspace manager है, जिसे default macOS Spaces को बेहतर बनाने और replace करने के लिए design किया गया है
  • लक्ष्य macOS animations का इंतज़ार किए बिना fast workspace switching है
  • हर workspace में apps assign किए जाते हैं, और workspace खुद किसी specific display को assign होता है
  • workspace पर switch करने पर assigned apps अपने-आप दिखाई देते हैं, और उसी display के अन्य apps छिप जाते हैं
  • कई displays पर workspaces को independently switch किया जा सकता है

Installation और basic usage flow

  • Requirements हैं macOS 14.0 या उससे ऊपर और System Settings के Desktop & Dock में “Displays have separate Spaces” enabled होना
  • Installation के तरीके Homebrew, release binary download और source build को support करते हैं
    • Homebrew install command है brew install flashspace
    • Binary Releases Page से मिल सकता है
  • Basic usage flow इस प्रकार है
    • सभी apps को display-wise single macOS Space में move करें
    • workspace बनाएँ
    • apps assign करें
    • workspace को display assign करें या dynamic mode इस्तेमाल करें
    • quick activation के लिए shortcuts set करें
    • दूसरे workspaces पर भी यही प्रक्रिया लागू करें
    • shortcut से configured workspace पर switch करें
  • अगर same app को कई workspaces में रखना हो, तो app settings की Floating Apps feature इस्तेमाल करें, या main app window में app को कई workspaces में add करें

मुख्य features

  • Fast workspace switching और multi-display support देता है
  • Space Control सभी workspaces को grid में preview करके switch करने की feature है
    • 0-9 और arrow keys से workspaces switch किए जा सकते हैं
  • Workspace Switcher default के अनुसार Option + Tab से workspace list खोलकर switch करता है
    • यह macOS app switcher CMD + Tab जैसे तरीके से काम करता है
  • Focus Manager shortcuts से windows के बीच focus को इच्छित direction में move करता है, और displays के बीच jump भी support करता है
  • अन्य features में शामिल हैं
    • app focus detect करने के बाद workspace activate करना
    • active window पर cursor को automatically center align करने वाला Cursor manager
    • कई settings को जल्दी बदलने के लिए Profiles
    • workspace-specific icons और text set कर सकने वाला menu bar
    • trackpad swipe gesture behavior customization
    • GUI और configuration file आधारित setup
    • JSON, YAML, TOML configuration file formats support
    • CLI के जरिए app control
    • Picture-in-Picture support
    • SketchyBar integration
    • Raycast extension support

Display assignment modes

  • FlashSpace दो display assignment modes support करता है: static mode और dynamic mode
  • Static mode default है, और हर workspace को किसी specific display को assign करता है
    • यह उन users के लिए उपयुक्त है जो macOS Spaces की तरह हर display के लिए dedicated workspace चाहते हैं
    • कई displays इस्तेमाल करते हुए arrangement बार-बार बदलने पर यह कठिन हो सकता है
  • Dynamic mode हर workspace को automatically उस display पर assign करता है जहाँ उस workspace के apps स्थित हैं
    • एक workspace को कई displays पर एक साथ दिखाया जा सकता है
    • apps को displays के बीच move करके workspace rearrange करना चाहें तो उपयोगी है
    • इस mode में empty workspace नहीं दिखाया जा सकता
  • Display assignment mode app settings के Workspaces में बदला जा सकता है

Picture-in-Picture support और limitations

  • FlashSpace Picture-in-Picture mode support करता है, लेकिन यह experimental feature है
  • इसे App Settings -> Workspaces में disable किया जा सकता है
  • macOS सिर्फ किसी specific window को hide करने वाला public API नहीं देता, और app को hide करने पर PiP window भी साथ में छिप जाती है
  • FlashSpace इस problem को workaround करने के लिए यह identify करता है कि app PiP support करती है या नहीं, और PiP window को छोड़कर बाकी सभी windows को screen corners में hide करता है
  • अगर PiP window दिखाई नहीं देती, तो standard behavior लागू होता है
  • Supported browsers हैं Safari, Zen Browser, Chrome, Firefox, Brave, Vivaldi, Arc, Dia, Opera, Microsoft Edge, Comet
  • अगर browser language English पर set नहीं है, तो यह feature काम नहीं कर सकता

Design principles और जानबूझकर unsupported चीज़ें

  • Project values हैं performance, simplicity, stability, non-intrusive behavior और UNIX philosophy
  • FlashSpace workspace management को एक काम मानता है, और उसी काम को अच्छी तरह करने की दिशा अपनाता है
  • Non-intrusive behavior

    • FlashSpace windows को actively manage नहीं करता
    • workspace पर switch करने के बाद अगर उस workspace को assigned न की गई app को call किया जाए, तो वह app workspace apps के ऊपर दिखाई देती है
    • यह behavior अन्य apps तक जल्दी पहुँचने देता है और glitches या workspace switching से बचाता है
    • Tiling window managers में unconfigured popups या dialogs के कारण glitches आम हो सकते हैं
    • FlashSpace unassigned windows और apps को manage न करके system के साथ बिना बाधा interact करने देता है
  • Individual app window-level workspaces unsupported

    • FlashSpace app की individual windows को workspace-wise बाँटने की concept support नहीं करता
    • यह simple और fast बनाए रखने के लिए जानबूझकर लिया गया decision है
    • workspace management और switching को efficiently करने के लिए native show/hide functionality पर निर्भर करता है
    • यह approach battery-friendly है और Mission Control जैसी system features को break नहीं करता
    • individual window-level support बहुत complexity पैदा कर सकता है और performance पर negative impact डाल सकता है
    • macOS में specific window hide करने के लिए public API नहीं है, और वर्तमान विकल्प सिर्फ window को screen corner में move करना या minimize करना हैं; दोनों ही ideal user experience नहीं हैं
  • Layout unsupported

    • FlashSpace window moving, resizing और layout changes support नहीं करता
    • यह feature complexity को काफी बढ़ा सकता है और performance पर negative impact डाल सकता है
    • सभी edge cases और glitches support करने के लिए बहुत काम चाहिए
    • इसे Magnet, Rectangle, Raycast जैसे window management apps के साथ इस्तेमाल किया जा सकता है, इसलिए वह functionality duplicate नहीं की जाती

Integrations, CLI और build

  • SketchyBar आदि के साथ integrate किया जा सकता है, और workspace change होने पर configurable scripts run करता है
  • CLI workspace, app और profile management support करता है
    • इसे पहले app settings के CLI में install करना होगा
    • flashspace --help से available commands देखे जा सकते हैं
  • Source build XcodeGen से project.yml के आधार पर Xcode project generate करता है
    • repository clone करने के बाद brew bundle से dependencies install करें
    • xcodegen generate run करने के बाद FlashSpace.xcodeproj को Xcode में खोलकर build करें
    • branch बदलने या changes pull करने पर हर बार xcodegen generate फिर से run करना होगा
    • signing settings सहित project generate करने के लिए XCODE_DEVELOPMENT_TEAM=YOUR_TEAM_ID xcodegen generate इस्तेमाल किया जा सकता है

Usage tips

  • macOS में sleep के बाद apps के गलत display पर दिखने का bug है
    • यह तब होता है जब app sleep के दौरान hidden हो
    • wake होने के बाद login से पहले सभी displays चालू कर दें, तो apps सही display पर दिख सकते हैं
  • macOS 15 third-party apps के बिना window moving और resizing features देता है
    • menu bar के Window में Move & Resize submenu देखें
    • shortcut adjustment सीमित है; ज़्यादा flexible तरीका Raycast, Magnet जैसे window management apps इस्तेमाल करना है
  • same app की windows के बीच focus switching macOS के Cmd + ` shortcut से संभव है
  • SKHD custom global shortcuts define करने वाला CLI tool है, और इसे FlashSpace CLI के साथ इस्तेमाल किया जा सकता है
  • Raycast users Raycast extension से keyboard छोड़े बिना FlashSpace manage कर सकते हैं

1 टिप्पणियां

 
GN⁺ 2025-02-10
  • सोच रहा हूँ कि क्या यह Amethyst के साथ compatible है। मुझे tiling windows चाहिए, लेकिन spaces switching में lag नहीं चाहिए

  • बहुत बढ़िया! उम्मीद है कि इसमें workspaces का grid view जोड़ा जा सके। TotalSpaces की याद आती है

  • सही समय है। मैं अभी इस क्षेत्र में options फिर से देख रहा था और Aerospace पर फैसला किया था। इसे भी आज़माऊँगा

  • धन्यवाद! अभी-अभी install किया है और अब तक यह अच्छी तरह काम कर रहा है

  • मैं एक साल से ज़्यादा समय से इसी मकसद के लिए AeroSpace इस्तेमाल कर रहा हूँ। config में सभी tiling features disable करके सिर्फ दो shortcuts इस्तेमाल करता हूँ: workspace पर switch करना और current window को workspace में भेजना। छोटी screen पर काम करते समय यह ज़रूरी है

    • AeroSpace में performance issues हैं, लेकिन यह उपलब्ध macOS API की अंतर्निहित सीमाओं से जुड़ी समस्या लगती है
    • लगता है FlashSpace को भी यही समस्या है
    • config के मामले में, हर workspace के लिए shortcut सेट करना मुझे झंझट लगता है। AeroSpace में keyboard के सभी letters और numbers अपने-आप workspace बन जाते हैं और shortcuts global होते हैं
    • इन सब बातों को देखते हुए, मैं ऐसे tool को पसंद करूँगा जिसका मुख्य लक्ष्य macOS workspaces की समस्याओं को हल करना हो
    • और testing के बाद पता चला कि FlashSpace एक ही app की अलग-अलग windows को अलग workspaces में support नहीं करता। यह मेरे workflow के लिए बड़ी समस्या है