Live data from Hacker News

Hammerspoon

github.com

71–80 of 154 posts

Re: Hammerspoon

#71
post #68

Hammerspoon maintainer here - I'm enjoying reading all the comments, and hoping that everyone isn't going to be annoyed that I'm mostly working on a v2 atm, which switches from Lua to JavaScript :D

> a v2 atm, which switches from Lua to JavaScript :D

Presumably that'll be released in [checks calendar] 18 days?

Re: Hammerspoon

#72
post #17

I'd love to have a global "toggle Teams mute" button.

What do you mean? Like muting the entire application so no sound comes from Teams or muting yourself while on a call? For the latter, I thought 'Option + Space' worked (or used to)?

Cmd+Shift+m mutes/un-mutes your Mic when focus is on teams window.

I think GP is asking about a global (from any application) mute/unmute teams Mic. I have wished for one for ever.

Re: Hammerspoon

#73
post #68

Hammerspoon maintainer here - I'm enjoying reading all the comments, and hoping that everyone isn't going to be annoyed that I'm mostly working on a v2 atm, which switches from Lua to JavaScript :D

I'm curious if the switch was for dev ergonomics or the mindshare of the languages?

Re: Hammerspoon

#74

Hammerspoon is the glue that holds my Mac together. For a starter list of things to do with this app, a partial list of the things that I'm using it for: - Dumping all open Safari tabs to an Obsidian doc - Adding 'hyper' (Ctrl-Opt-Cmd) keybinds to pop a new window for: - Safari - Finder - Terminal / Ghostty - VS Code - Notes - Editing Hammerspoon/AeroSpace/Sketchybar config - Reloading Hammerspoon config - Reloading…

I pretty much only use it for two (related) things these days:

- check the list of open Teams windows; if there's a non-standard one, assume I'm in a meeting and webhook to HomeAssistant to select the "active"[2] preset on my meeting light[0].

- download my work ical[1] and, if there's a pending meeting ([0] Just a short strip of WS2812B connected to an ESP32 running WLED.

[1] Originally this was a simple HTTP to my shared link on outlook.com but then they started requiring authentication (because that's exactly what you want on a SHARED link, you gufftarts); had a look at the Azure SDK and ... bag of milky spanners that is; ended up having to import my work ical into Apple Calendar and then use the ical link for that in Hammerspoon. Oh how we laughed. Especially when I realised it only has about 40% of the actual meetings because somehow "my calendar" is actually 4 or 5 bastardised conglomerations of pain and the ical for "my calendar" is actually just for one of those. AND NOT THE USEFUL ONE EITHER.

[2] There's various - "camera" for "the one meeting I'm forced to have my camera on", "active" is "I probably have to talk", "passive" is "I'm not going to be talking", and "silent" for things like company presentations where it's just watching a boring Powerpoint over Teams.

Re: Hammerspoon

#75
post #68

Hammerspoon maintainer here - I'm enjoying reading all the comments, and hoping that everyone isn't going to be annoyed that I'm mostly working on a v2 atm, which switches from Lua to JavaScript :D

Hammerspoon is basically my only reason to write Lua, a language which I really like. I am sure JavaScript is a more pragmatic choice but I will be slightly saddened by it regardless.

Re: Hammerspoon

#77
post #59

Hammerspoon is the glue that holds my Mac together. For a starter list of things to do with this app, a partial list of the things that I'm using it for: - Dumping all open Safari tabs to an Obsidian doc - Adding 'hyper' (Ctrl-Opt-Cmd) keybinds to pop a new window for: - Safari - Finder - Terminal / Ghostty - VS Code - Notes - Editing Hammerspoon/AeroSpace/Sketchybar config - Reloading Hammerspoon config - Reloading…

> - Dumping all open Safari tabs to an Obsidian doc I'd love to do this too. Would you mind sharing how you do it? Or is it trivially easy and not worth explaining? (I haven't looked too deeply into HS yet.)

I have no idea how that person is doing it, but I suspect it could be using osascript. Here's how I do it from my homegrown Go bookmark tool:

  const fetchTabsScript = `
  tell application "Brave Browser"
      set output to ""
      repeat with w in windows
          repeat with t in tabs of w
              set output to output & (URL of t) & "|||" & (title of t) & "\n"
          end repeat
      end repeat
      return output
  end tell
  `  
  
  func GetOpenTabs() ([]Tab, error) {
   cmd := exec.Command("osascript", "-e", fetchTabsScript)
   output, err := cmd.Output()
    // ...
  }

Re: Hammerspoon

#80
post #68

Hammerspoon maintainer here - I'm enjoying reading all the comments, and hoping that everyone isn't going to be annoyed that I'm mostly working on a v2 atm, which switches from Lua to JavaScript :D

Will this lead to some synergy with AppleScript, which added JavaScript a few years ago?
Post reply on HN