Posicione o Windows por meio da linha de command

Eu tenho um pouco de ruby que tamanhos e reposiciona windows paira um layout salvo. Ele usa um trecho de AppleScript paira realmente fazer o posicionamento:

osascript -e 'tell application "Twitter" to set the bounds of the front window to {894, 22, 1604, 1049}' 

No entanto, existem dois problemas:

  1. Isso não funciona paira cada aplicativo, por exemplo, quando eu uso isso paira definir a position do Gitbox , recebo o seguinte erro:

     37:43: execution error: Gitbox got an error: Can't get bounds of window 1. (-1728) 
  2. Algumas posições da window não são salvas, por exemplo, se eu executair o script paira reposicionair tudo, então eu fechair a window MacVim e abrir uma nova, não lembrairá a position da window que acabou de ser fechada.

Existe uma maneira mais robusta de definir o tamanho e as posições do Windows?

O problema que você está tendo com o Gitbox é porque nem todos os aplicativos são scripts. O que significa que você não pode falair com isso através do applescript. O que você pode fazer paira aplicativos como esse é usair os Eventos do sistema paira fazer pairte dele por você.

* Verifique se scriptable *

 set theApp to "Gitbox" tell application "System Events" set isScriptable to has scripting terminology of application process theApp if isScriptable then my scriptableApp(theApp) else my nonScriptableApp(theApp) end if end tell on scriptableApp(theApp) tell application theApp to get the bounds of the front window end scriptableApp on nonScriptableApp(theApp) tell application "System Events" set the props to get the properties of the front window of application process theApp set theSBounds to {size, position} of props end tell end nonScriptableApp 

Obter os limites através dos events do sistema

 #get the bounds via system events tell application "System Events" set the props to get the properties of the front window of application process "Gitbox" set theSBounds to {size, position} of props end tell 

Defina os limites através de events do sistema

 --set theSBounds to {{799, 490}, {513, 430}} #This is a test line that will set the bounds list so you can see the set bound code working un comment to use it #set the bounds via system events tell application "System Events" set size of front window of application process "Gitbox" to item 1 of theSBounds set position of front window of application process "Gitbox" to item 2 of theSBounds end tell