Je crée quelques captures d'écran et je voulais centrer exactement mes fenêtres sur mon écran. Y a-t-il un moyen de le faire sur Mac? J'ai trouvé un exemple de script Apple ici (et quelques captures d'écran liées) mais aucun d'entre eux ne prend en charge le centrage vertical du 'Terminal' (bien qu'ils prennent en charge le centrage vertical d'autres applications).
Réponses
Trop de publicités?J'aime utiliser SizeUp pour gérer les fenêtres, dont une est l'option de centrage à l'écran. Bonne chance.
Je ne suis pas sûr si cela pourrait également répondre à ce que vous recherchez, mais Divvy est aussi un logiciel sympa pour organiser les fenêtres.
Je vous suggère de regarder le screencast sur leur site Web pour voir s'il fait ce que vous cherchez, mais en gros, il a une grille où vous pouvez changer la taille et la position de la fenêtre la plus en avant.
Vous pouvez également modifier la grille qu'il affiche pour avoir un contrôle plus précis sur la taille des fenêtres avec lesquelles vous travaillez.
J'espère que cela vous aidera.
Kevin. Je suis l'auteur du post auquel vous avez fait un lien sur incrementalism.net.
La raison pour laquelle la fenêtre du Terminal se déplace vers le haut est simplement un bug dans le support AppleScript de Terminal.
Cette version fait le centrage vertical et contourne le bug de Terminal :
tell application "Finder"
set screenSize to bounds of window of desktop
set screenWidth to item 3 of screenSize
set screenHeight to item 4 of screenSize
J'espère que cela vous aidera, si vous n'avez pas déjà payé pour l'une des autres options. J'ai également ajouté un commentaire avec cette solution de contournement sur le post original.
Réparations pour:
- Le bug avec Terminal
- Noms de processus étranges (firefox-bin)
- Tailles de la barre de menu et du Dock
- Prise en charge de l'Applescript désactivée dans Aperçu
- Les fenêtres presque pleine largeur / hauteur seront redimensionnées en pleine largeur / hauteur
Remarques:
l'arrondi tel qu'enseigné à l'école
n'est pas vraiment nécessaire- la valeur par défaut est
arrondi au plus proche
, qui arrondit 0,5 à l'entier pair le plus proche (par ex. 22,5 à 22)
- la valeur par défaut est
- Vraiment, des noms de variable en mixedCase même ici?
Malgré tout, il y a une douzaine d'autres choses qui pourraient mal tourner. La partie Dock n'est pas vraiment nécessaire si vous avez toujours la dissimulation activée. (Mais si par exemple l'orientation = bas, vous voudrez peut-être régler dth à dth - 4.)
-- defaults write /Applications/Preview.app/Contents/Info NSAppleScriptEnabled -bool yes
tell app "Finder" to set {0, 0, dtw, dth} to bounds of window of desktop
set dtw0 to dtw
set dth0 to dth
tell app "System Events" to tell dock preferences
set hiding to autohide
set edge to screen edge as string
end tell
if hiding then
set docksize to 4
else
tell app "System Events" to tell process "Dock"
set sz to size in list 1
if edge = "bas" then
set docksize to item 2 of sz
else
set docksize to item 1 of sz
end if
end tell
end if
if edge = "bas" then
set dth to dth - docksize
else if edge = "droite" then
set dtw to dtw - docksize
else if edge = "gauche" then
set dtw to dtw + docksize
end if
set a to (path to frontmost application as text)
try
tell app a
set b to bounds of window 1
set w to (item 3 of b) - (item 1 of b)
set h to (item 4 of b) - (item 2 of b)
if w > dtw0 - 40 then set w to dtw
if h > dth0 - 40 then set h to dth
set item 1 of b to {dtw - w} / 2
set item 1 of b to (dtw - w) / 2
set item 2 of b to (dth - h + 22) / 2
set item 3 of b to (dtw + w) / 2
set item 4 of b to (dth + h + 22) / 2
end tell
if app "Terminal" is frontmost then
tell app "Terminal" to set position of window 1 to b
else
tell app a to set bounds of window 1 to b
end if
end try
Si vous souhaitez les centrer exactement (horizontalement et verticalement), vous pouvez utiliser l'exemple donné dans les commentaires sur le site auquel vous avez fait référence, et adapter la réponse postée à cette question stackoverflow.
J'ai fini par obtenir ceci:
tell application "System Events" to tell application "Finder"
set {posx, posy, screenWidth, screenHeight} to bounds of window of desktop
end tell
tell application "Terminal" to set {windowLeft, windowTop, windowRight, windowBottom} to bounds of window 1
set windowWidth to windowRight - windowLeft
set windowHeight to windowBottom - windowTop
set newBounds to {¬
((screenWidth - windowWidth) / 2), ¬
((screenHeight - windowHeight) / 2), ¬
((screenWidth + windowWidth) / 2), ¬
((screenHeight + windowHeight) / 2) ¬
}
set newPosition to {¬
((screenWidth - windowWidth) / 2), ¬
((screenHeight - windowHeight) / 2) ¬
}
tell application "Terminal" to set bounds of window 1 to newBounds
tell application "Terminal" to set position of window 1 to newPosition
Gardez à l'esprit que cela centrera la window 1
, donc si vous utilisez des outils comme Visor, vous devrez utiliser window 2
à la place.
- Réponses précédentes
- Plus de réponses