4 पॉइंट द्वारा GN⁺ 2026-03-15 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • macOS वातावरण को Lua स्क्रिप्ट से नियंत्रित करने वाला एक ओपन सोर्स ऑटोमेशन टूल, जो ऑपरेटिंग सिस्टम और स्क्रिप्टिंग इंजन के बीच ब्रिज की भूमिका निभाता है
  • विभिन्न extension modules के माध्यम से सिस्टम फीचर्स को एक्सपोज़ करता है, और इन्हें मिलाकर window management, input control जैसी जटिल प्रक्रियाओं को ऑटोमेट किया जा सकता है
  • इंस्टॉलेशन Homebrew या मैनुअल डाउनलोड से समर्थित है, और इसे चलाने के लिए यूज़र को अपनी सेटिंग फ़ाइल ~/.hammerspoon/init.lua सीधे लिखनी होती है
  • प्रोजेक्ट Mjolnir से फोर्क किया गया था और अधिक एकीकृत user experience देने के लिए बनाया गया है; इसका लक्ष्य लगातार system API expansion और extensions के बीच integration को मजबूत करना है
  • यह डेवलपर्स और power users के लिए macOS पर बारीक नियंत्रण देने वाला एक advanced automation platform बन चुका है

Hammerspoon का अवलोकन

  • Hammerspoon macOS (पूर्व में OS X) के लिए एक शक्तिशाली ऑटोमेशन टूल है, जो ऑपरेटिंग सिस्टम और Lua scripting engine के बीच ब्रिज की तरह काम करता है
    • यूज़र Lua स्क्रिप्ट के ज़रिए सिस्टम की विभिन्न क्षमताओं को नियंत्रित कर सकते हैं
  • इसकी मुख्य सुविधाएँ extension modules के माध्यम से मिलती हैं, और ये मॉड्यूल सिस्टम के विशिष्ट फीचर्स को एक्सपोज़ करते हैं
    • इनके जरिए window management, audio control, input device configuration जैसी कई ऑटोमेशन प्रक्रियाएँ की जा सकती हैं

इंस्टॉलेशन का तरीका

  • मैनुअल इंस्टॉलेशन
    • GitHub से latest release डाउनलोड करें
    • Hammerspoon.app को Applications फ़ोल्डर में ले जाएँ
  • Homebrew इंस्टॉलेशन
    • कमांड: brew install hammerspoon --cask

शुरुआती सेटअप और उपयोग

प्रोजेक्ट का इतिहास

  • Hammerspoon की शुरुआत Mjolnir प्रोजेक्ट के फोर्क के रूप में हुई
    • Mjolnir न्यूनतम application structure पर केंद्रित था, और extensions को बाहरी Lua packages के रूप में मैनेज करता था
    • Hammerspoon को इसी आधार पर अधिक एकीकृत user experience देने के लिए विकसित किया गया

प्रोजेक्ट की आगे की दिशा

  • system API expansion का दायरा बढ़ाना
  • extension modules के बीच integration मजबूत करना
  • user experience में सुधार

तकनीकी संरचना और आँकड़े

  • प्रमुख भाषा संरचना: Objective-C 51%, Lua 24.7%, C 16.3%, HTML 5.6%, Shell 0.7%, Python 0.5%
  • GitHub आँकड़े: 14.9k stars, 678 forks, 133 contributors
  • लाइसेंस: MIT License
  • आधिकारिक वेबसाइट: www.hammerspoon.org

प्रमुख विषय टैग

  • macOS, automation, lua, objective-c, osx, mjolnir, hammerspoon, irc

1 टिप्पणियां

 
GN⁺ 2026-03-15
Hacker News टिप्पणियाँ
  • Hammerspoon मेरे Mac को एक साथ जोड़े रखने वाले गोंद जैसा है
    मैं Safari tabs को Obsidian documents में dump करता हूँ, या Hyper key combination (Ctrl+Opt+Cmd) से Safari, Finder, Terminal, VS Code, Notes जैसी मुख्य apps को नई window में खोलता हूँ
    AeroSpace के साथ integrate करके windows को दूसरे monitor पर भेजना, दो windows को साथ-साथ रखना, swap करना, या सभी windows को एक workspace में इकट्ठा करना जैसी कई automations सेट कर रखी हैं
    साथ ही, अगर background app crash हो जाए तो उसे अपने-आप restart करता है, और जब disk image को Trash में भेजा जाए तो unmount करने का prompt भी दिखाता है
    Skim के साथ integrate करके Markdown link से PDF के किसी खास section पर jump करने की सुविधा भी है

    • मैं इसे सिर्फ दो कामों के लिए इस्तेमाल करता हूँ — Teams window list देखकर अगर meeting चल रही हो तो HomeAssistant को webhook भेजकर lighting preset बदल देता हूँ, और ical calendar डाउनलोड करके अगर 15 मिनट के भीतर meeting हो तो “pending” preset पर switch कर देता हूँ
      पहले Outlook shared link इस्तेमाल करता था, लेकिन बाद में authentication ज़रूरी हो गया, इसलिए अब Apple Calendar के ज़रिए करता हूँ। फिर भी schedules का सिर्फ 40% sync होना अब तक रहस्य है
    • Safari tabs को Obsidian में dump करने का तरीका जानना चाहता हूँ। क्या यह कोई simple feature है, या आपके पास share करने लायक script है?
    • यह सच में प्रभावशाली ‘spooning’ है। मैं इसे सिर्फ window management के लिए इस्तेमाल करता हूँ, लेकिन इससे macOS बहुत ज़्यादा उपयोगी हो गया है
    • क्या आप अपनी config file share कर सकते हैं?
    • इन examples की वजह से मुझे भी इसे इस्तेमाल करने के ideas मिले
  • पहले मुझे tiling window manager पसंद थे, लेकिन Mac पर मैं बहुत सारे visually complex apps इस्तेमाल करता हूँ, इसलिए screen layout ज़्यादा अहम हो गया
    Mail, IDE, browser, terminal, chat app — हर एक के लिए अलग window size preset बनाए हैं, और Hammerspoon shortcuts से उनके बीच switch करता हूँ
    IDE build कर रहा हो तब भी browser खोलने पर नीचे के logs देख सकता हूँ, और modal shortcuts से app switching भी तेज़ हो जाती है
    multi-stage modal concept काफ़ी दिलचस्प है

  • Hammerspoon के maintainer के रूप में, मैं अभी Lua से JavaScript में जाने वाला v2 विकसित कर रहा हूँ

    • मुझे Lua पसंद है, और Hammerspoon मेरे लिए Lua इस्तेमाल करने की लगभग एकमात्र वजह था, इसलिए JS में बदलाव थोड़ा अफ़सोसजनक है, लेकिन यह practical choice लगती है
    • लंबे समय से user होने के नाते Lua से हटने की वजह जानना चाहता हूँ, लेकिन जो भी हो, इस शानदार app के लिए धन्यवाद
    • “क्या 18 दिनों बाद release है?” कहकर मज़ाकिया उत्साह दिखाया गया
    • v2 की vision, architecture changes की वजह, और JS चुनने का background जानना चाहता हूँ
    • यह भी जानना चाहता हूँ कि AppleScript के JavaScript support के साथ कोई synergy बनेगी या नहीं
  • मेरा project Spacehammer Spacemacs/Doom से प्रेरित Hammerspoon modal toolkit है
    “alt+spc a b” से browser खोल सकते हैं, “alt+spc m j/k” से volume control कर सकते हैं, या किसी भी app के text को Emacs में edit कर सकते हैं
    यह Fennel में लिखा गया है, REPL के ज़रिए real-time development हो सकता है, और Yabai जैसे window manager के साथ भी अच्छी तरह integrate होता है

    • “volume control keys तो keyboard पर हैं…” कहकर मज़ाक किया गया। हालांकि Touch Bar Mac users को यह समझ आएगा
  • मैंने Hammerspoon से fake tiling window manager बनाया है
    windows को screen ratio के हिसाब से rearrange करता हूँ, और shortcut से monitors के बीच move भी कर सकता हूँ

    • AeroSpace की सिफारिश की गई। i3 users के लिए परिचित तरीके से बढ़िया काम करता है
    • मैं भी ऐसा ही इस्तेमाल करता हूँ, लेकिन left·center·right placement तक जोड़ा है। गणित से window size निकालना अजीब लेकिन शानदार लगता है
    • मैं hammerspoon-shiftit इस्तेमाल करता हूँ। यह बंद हो चुके ShiftIt का बेहतरीन पुनर्निर्माण है
    • मैं भी hyper+arrow से windows move करता हूँ, और hyper+enter से fullscreen toggle करता हूँ। window movement का natural feel मुझे बहुत पसंद है
    • मुझे miro-windows-manager plugin पसंद है। half/third split layouts को cycle करने के लिए बढ़िया है
  • हाल ही में मैंने पहली बार Hammerspoon इस्तेमाल किया, और menu bar app के option पर direct shortcut bind करने के लिए ChatGPT ने AppleScript में script लिख दी
    यह वाकई शानदार है, और आगे और automation आज़माने का सोच रहा हूँ

  • मैंने Zoom के screen sharing controls को छिपाने की script बनाई, ताकि ESC दबाने पर भी वे फिर से न दिखाई दें

    • इस पर प्रतिक्रिया आई, “सिर्फ इसके लिए भी install करना वाजिब है”
  • मेरी पूरी config सिर्फ एक लाइन की है
    ctrl + D से grid interface खुलता है और window को मनचाही जगह adjust कर सकता हूँ
    यह दूसरे window managers की तुलना में ज़्यादा simple और intuitive है

    • “मुझे पता ही नहीं था कि यह feature है” जैसी प्रतिक्रिया आई। hs.grid.setGrid('4x4') से grid size बदल सकते हैं, या hs.grid.ui.textSize से text size adjust कर सकते हैं
    • मैं भी similar feature इस्तेमाल करता हूँ, लेकिन सिर्फ एक तरफ resize करने जैसी ज़्यादा flexible setup बनाई है
    • कई devices के बीच settings sync करना dotfile hell बन सकता है। फिर भी mouse के बिना windows control करने वाले कुछ गिने-चुने modern tools में से एक है
    • क्या यह terminal में Ctrl+D से conflict नहीं करता?
  • मैं भी Hammerspoon की वजह से window switching stress से मुक्त हो गया
    Cmd+1~9 से Chrome windows switch करता हूँ, और Cmd+0 से selection dialog खोलता हूँ
    मेरी config file देखें; इसमें window names याद रहते हैं और restart के बाद भी बने रहते हैं

  • Hammerspoon, Mac के Automator से ज़्यादा शक्तिशाली है
    जैसे Automator अब JavaScriptCore support करता है, वैसे अगर Hammerspoon भी Lua की जगह JS इस्तेमाल करे तो Node packages को सीधे इस्तेमाल किया जा सकेगा
    अगर Lua में दोबारा लिखना पड़े, तो काफ़ी मेहनत लगेगी