osxdotool is a drop-in xdotool replacement for macOS users.
osxdotool utilizes CLSwift, a CLI framework for Swift. CLSwift is still in active early development so the public api is subject to breaking changes.
Below is a list of commands that need to be ported from xdotool. You can see a complete list here. I've bolded the ones that are probably pretty easy. Anything to do with windows and desktops might need to use accesability libraries. Not really sure right now, but I'll start really pulling appart the AmethystWM when I get to that point.
- key
- window
- clearmodifiers
- delay
- keydown
- window
- clearmodifiers
- delay
- keyup
- type
- delay
- window
- clearmodifiers
- mousemove
- window
- screen
- polar
- clearmodifiers
- sync
- mouseMoveRelative
- sync
- polar
- clearmodifiers
- click
- clearmodifiers
- repeat
- delay
- window
- mousedown
- clearmodifiers
- repeat
- delay
- window
- mouseup
- clearmodifiers
- repeat
- delay
- window
- getMouseLocation
- shell
- behaveScreenEdge
- delay
- quiesce
- search
- class
- classname
- maxdepth
- name
- onlyvisible
- pid
- screen
- desktop
- limit
- title
- all
- any
- sync
- selectWindow
- behave
- getWindowPID
- getWindowName
- getWindowGeometry
- shell
- getWindowFocus
- windowSize
- usehints
- sync
- windowMove
- sync
- relative
- windowFocus
- sync
- windowMap
- sync
- windowMinimize
- sync
- windowRaise
- windowReparent
- windowKill
- windowUnmap
- sync
- setWindow
- name
- iconName
- role
- classname
- class
- overridedirect
- windowActivate
- sync
- getActiveWindow
- setNumDesktops
- getNumDesktops
- getDesktopViewport
- shell
- setDesktopViewport
- setDesktop
- relative
- getDesktop
- setDesktopForWindow
- getDesktopForWindow
- sleep