6 votes

Centrer la fenêtre à l'écran

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).

4voto

thatisvaliant Points 314

J'aime utiliser SizeUp pour gérer les fenêtres, dont une est l'option de centrage à l'écran. Bonne chance.

2voto

Tim Points 131

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.

2voto

Tim Moore Points 216

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.

2voto

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)
  • 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

1voto

Asmus Points 7195

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.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X