A raycast script command to start lowfi
I recently create a Raycast script command to start the lowfi command effortlessly, so I can enjoy the lowfi music in no time and control it just using keyboard.
Here is the gist , just place the lowfi.sh to the Raycast Script Directory . Run it the first time, a wezterm window will be created if lowfi process isn’t running, run it the second time, the wezterm window will be brought to the front.
Problem of using /opt/hombrew/bin/wezterm
While i thought it was a simple task, it tooks me 1 hour to finished it. I encountered a totally unexpected problem: osascript can’t control the wezterm window that running lowfi process.
I installed wezterm using homebrew cask, when launching WezTerm using the Homebrew-installed binary (/opt/homebrew/bin/wezterm
), the window was created with a NULL bundleID, which made it impossible for AppleScript/System Events to properly control it. This is because the Homebrew version doesn’t properly register itself with macOS’s window management system.
I was only able to debug this problem thanks to the amazing aerospace command
aerospace debug-windows
The solution was to always use the full application path /Applications/WezTerm.app/Contents/MacOS/wezterm
for all WezTerm operations, ensuring proper window management integration with macOS.
When launching WezTerm using the full application path (/Applications/WezTerm.app/Contents/MacOS/wezterm
), the window is created with the proper bundleID com.github.wez.wezterm
. This allows:
- System Events to properly identify and control the window
- AppleScript to manipulate the window through accessibility actions (AXRaise, AXMain)
- Proper window focusing and bringing to front