4 puan yazan GN⁺ 2026-03-15 | 1 yorum | WhatsApp'ta paylaş
  • macOS ortamını Lua betikleriyle kontrol etmeyi sağlayan açık kaynaklı bir otomasyon aracıdır; işletim sistemi ile betik motoru arasında köprü görevi görür
  • Çeşitli genişletme modülleri (extensions) aracılığıyla sistem işlevlerini açığa çıkarır; bunlar birleştirilerek pencere yönetimi, giriş denetimi gibi karmaşık işler otomatikleştirilebilir
  • Kurulum Homebrew veya manuel indirme yöntemiyle desteklenir; çalışması için kullanıcının ~/.hammerspoon/init.lua yapılandırma dosyasını doğrudan yazması gerekir
  • Proje, Mjolnir'den fork edilerek daha bütünleşik bir kullanıcı deneyimi sunar ve sürekli olarak sistem API'lerini genişletmeyi ve uzantılar arası entegrasyonu güçlendirmeyi hedefler
  • Geliştiricilerin ve ileri düzey kullanıcıların macOS'u ayrıntılı biçimde kontrol edebilmesini sağlayan gelişmiş bir otomasyon platformu olarak konumlanır

Hammerspoon'a genel bakış

  • Hammerspoon, macOS'un (eski adıyla OS X) güçlü bir otomasyon aracıdır ve işletim sistemi ile Lua betik motoru arasında köprü olarak çalışır
    • Kullanıcılar Lua betikleri aracılığıyla sistemin çeşitli işlevlerini kontrol edebilir
  • Temel özellikler genişletme modülleri (extensions) üzerinden sunulur; bu modüller sistemin belirli işlevlerini açığa çıkarır
    • Bunlar kullanılarak pencere yönetimi, ses kontrolü, giriş aygıtı ayarları gibi çeşitli otomasyon görevleri gerçekleştirilebilir

Kurulum yöntemi

  • Manuel kurulum
    • GitHub'daki en son sürümü indirin
    • Hammerspoon.app dosyasını Applications klasörüne taşıyın
  • Homebrew ile kurulum
    • Komut: brew install hammerspoon --cask

İlk yapılandırma ve kullanım

Projenin geçmişi

  • Hammerspoon, Mjolnir projesinin bir fork'u olarak başladı
    • Mjolnir, minimal bir uygulama yapısını hedefler ve genişletmeleri harici Lua paketleri olarak yönetir
    • Hammerspoon ise bunun üzerine, daha bütünleşik bir kullanıcı deneyimi sunmak için geliştirildi

Projenin gelecekteki yönü

  • Sistem API kapsamını genişletme
  • Genişletme modülleri arasındaki entegrasyonu güçlendirme
  • Kullanıcı deneyimini iyileştirme

Teknik yapı ve istatistikler

  • Başlıca dil dağılımı: Objective-C 51%, Lua 24.7%, C 16.3%, HTML 5.6%, Shell 0.7%, Python 0.5%
  • GitHub istatistikleri: 14.9k stars, 678 forks, 133 katkıda bulunan
  • Lisans: MIT License
  • Resmî web sitesi: www.hammerspoon.org

Başlıca konu etiketleri

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

1 yorum

 
GN⁺ 2026-03-15
Hacker News yorumları
  • Hammerspoon, Mac’imi bir arada tutan yapıştırıcı gibi
    Safari sekmelerini Obsidian belgelerine döküyorum ya da Hyper tuş kombinasyonu (Ctrl+Opt+Cmd) ile Safari, Finder, Terminal, VS Code, Notes gibi ana uygulamaları yeni pencerede açıyorum
    AeroSpace ile entegre edip pencereleri başka monitöre taşımak, iki pencereyi yan yana yerleştirmek, yerlerini değiştirmek ya da tüm pencereleri tek bir workspace’te toplamak gibi çeşitli otomasyonlar kurdum
    Ayrıca arka plan uygulaması çökerse otomatik yeniden başlatıyor ve disk image çöp kutusuna giderse unmount etmek için bir istem gösteriyor
    Skim ile entegre olup Markdown bağlantısıyla PDF içindeki belirli bir bölüme atlama özelliği de var

    • Ben sadece iki amaçla kullanıyorum — Teams pencere listesini kontrol edip toplantıdaysam HomeAssistant’a webhook göndererek ışık önayarını değiştiriyorum ve ical takvimini indirip 15 dakika içinde toplantı varsa “pending” önayarına geçiyorum
      Eskiden Outlook paylaşım bağlantısını kullanıyordum ama artık kimlik doğrulama gerektiği için Apple Calendar üzerinden gidiyorum. Yine de etkinliklerin yalnızca %40’ının senkronize olması hâlâ bir gizem
    • Safari sekmelerini Obsidian’a nasıl döktüğünü merak ediyorum. Basit bir özellik mi, yoksa paylaşılabilecek bir script var mı bilmek isterim
    • Gerçekten etkileyici bir ‘spooning’. Ben sadece pencere yönetimi için kullanıyorum ama bu sayede macOS çok daha kullanışlı hâle geldi
    • Yapılandırma dosyanı paylaşabilir misin diye merak ediyorum
    • Verdiğin örnekler sayesinde ben de nasıl kullanabileceğime dair fikir edindim
  • Eskiden tiling window manager seviyordum ama Mac’te görsel olarak karmaşık uygulamaları çok kullandığım için ekran yerleşimi daha önemli hâle geldi
    Mail, IDE, tarayıcı, terminal ve sohbet uygulamalarının her biri için pencere boyutu önayarları oluşturup Hammerspoon kısayollarıyla aralarında geçiş yapıyorum
    IDE derleme yaparken tarayıcıyı açsam bile alttaki log’u görebiliyorum ve modal kısayollarla uygulama değiştirmek de hızlı
    Çok aşamalı modal kavramı ilginç geliyor

  • Hammerspoon’ın bakımcısı olarak, şu anda Lua’dan JavaScript’e geçen v2 üzerinde çalışıyorum

    • Lua’yı seviyorum; Hammerspoon da Lua kullanabildiğim neredeyse tek sebepti, bu yüzden JS’ye geçmesi üzücü ama gerçekçi bir seçim gibi geliyor
    • Uzun süredir kullanıcı olarak Lua’dan geçişin nedenini merak ediyorum ama her durumda harika bir uygulama, teşekkürler
    • “18 gün sonra mı çıkıyor?” diye yarı şakalı bir beklenti dile getiriyor
    • v2’nin vizyonunu, mimari değişikliklerin nedenlerini ve neden JS seçildiğini merak ediyorum
    • AppleScript’in JavaScript desteğiyle bir sinerji doğup doğmayacağını da merak ediyorum
  • Spacehammer projem, Spacemacs/Doom esinli bir Hammerspoon modal araç takımı
    “alt+spc a b” ile tarayıcıyı açabiliyor, “alt+spc m j/k” ile ses seviyesini ayarlayabiliyor ya da herhangi bir uygulamadaki metni Emacs’te düzenleyebiliyorsunuz
    Fennel ile yazıldı, REPL üzerinden gerçek zamanlı geliştirme yapılabiliyor ve Yabai gibi pencere yöneticileriyle de iyi entegre oluyor

    • “Ses ayarı tuşları zaten klavyede var...” diye şaka yapıyor. Yine de Touch Bar Mac kullanıcıları için anlaşılır
  • Hammerspoon ile sahte bir tiling window manager kurdum
    Pencereleri ekran oranlarına göre yeniden yerleştiriyorum ve kısayollarla monitörler arasında taşıyabiliyorum

    • AeroSpace öneriliyor. i3 kullanıcılarına tanıdık gelecek bir şekilde iyi çalışıyor
    • Ben de benzer kullanıyorum ama sol-orta-sağ yerleşimleri de ekledim. Pencere boyutlarını matematikle hesaplamak acayip ama harika
    • hammerspoon-shiftit kullanıyorum. Artık ölü olan ShiftIt’i kusursuz şekilde yeniden oluşturan bir proje
    • Ben de hyper+ok ile pencereleri taşıyor, hyper+enter ile tam ekrana alıyorum. Doğal pencere hareketi hissini seviyorum
    • miro-windows-manager eklentisini seviyorum. Yarım / üçe bölünmüş yerleşimleri döngüsel kullanmak için iyi
  • Kısa süre önce ilk kez Hammerspoon kullandım; bir menü çubuğu uygulamasındaki seçeneğe doğrudan kısayol bağlamak için ChatGPT bana AppleScript ile bir script yazdı
    Gerçekten harika ve ileride daha fazla otomasyon denemeyi düşünüyorum

  • Zoom’un ekran paylaşımı kontrollerini gizleyen bir script yaptım; ESC’ye bassanız da tekrar görünmüyor

    • “Sırf bu bile kurmaya değer” diye tepki alıyor
  • Tüm yapılandırmam sadece tek satır
    ctrl + D ile grid arayüzünü açıp pencereyi istediğim konuma ayarlıyorum
    Diğer pencere yöneticilerinden daha basit ve sezgisel

    • “Böyle bir özellik olduğunu bilmiyordum” diye şaşırıyor. hs.grid.setGrid('4x4') ile grid boyutunu değiştirebilir ya da hs.grid.ui.textSize ile yazı boyutunu ayarlayabilirsiniz
    • Ben de benzer bir özellik kullanıyorum ama tek taraftan yeniden boyutlandırma gibi şeylerle daha esnek yapılandırdım
    • Birden fazla cihaz arasında yapılandırma senkronizasyonu dotfile cehennemine dönüşebilir. Yine de fare kullanmadan pencere kontrolü sağlayan az sayıdaki modern araçtan biri
    • Terminal’de Ctrl+D ile çakışıp çakışmadığını merak ediyorum
  • Ben de Hammerspoon sayesinde pencere geçişi stresinden kurtuldum
    Cmd+1~9 ile Chrome pencereleri arasında geçiş yapıyor, Cmd+0 ile seçim diyalogunu açıyorum
    Yapılandırma dosyamda pencere adlarını hatırlayıp yeniden başlattıktan sonra da koruyacak şekilde ayarlı

  • Hammerspoon, Mac’teki Automator’dan daha güçlü
    Automator artık JavaScriptCore desteklediği gibi, Hammerspoon da Lua yerine JS kullanırsa Node paketlerinden doğrudan yararlanabilir
    Bunları Lua ile yeniden yazmak gerekirse epey zahmetli olurdu