Au cas où vous utiliseriez une application qui ne réagit PAS à AXZoomWindow de manière standard (comme BBEdit) ou si vous avez des réglages "favoris" différents pour Windows de différentes applications (j'aime Mail moins large que Safari), j'ai écrit un script qui maximise la fenêtre la plus en avant d'une application et la réinitialise selon vos préférences individuelles.
Voici quelques problèmes que j'ai rencontrés et que j'ai dû résoudre :
1.) Le "processus le plus en avant" quand il est appelé dans un script est "Événements système" ou "ScriptEditor". - fixer la valeur de "visible" à 0.
(Ne s'applique PAS aux raccourcis en mousqueton).
2.) Les valeurs maximales du bureau sont définies par size of scroll area 1 of process "Finder"
3.) La hauteur de la barre de menu sur mon système est de 22px, j'ai donc dû les soustraire à différents endroits.
4.) J'ai combiné les valeurs de position et de taille dans une variable mutuelle par application. Remplacez-les par les vôtres !
5.) Afin de n'adresser que les applications que vous voulez "Zoomer", il y a "maxMin" pour exclure d'autres -
ajouter ou supprimer des applications à votre guise
6.) Bien sûr, vous devrez enregistrer le script/app avec "Assistive Access" (Security/System Prefs)
7.) Soit raccourcir ce script comme un "Service" (via Automator) dans Sys-Prefs, Keyboard, shortcuts, .
8.) ou utiliser l'ingénieux key-remapper Karabiner Elements avec une simple "Modification complexe" :
"from": {"key_code": "m", "modifiers": {"mandatory": ["left_option"]} },
"to": [{"shell_command": "osascript ~/.config/myScpts/maxMin_zoom.app"}], **
"type": "basic"
(** path and name: your choice)
qui fournit un raccourci approprié sur place - j'ai choisi "Opt-M" car la plupart des combos "Z" sont utilisés.
Voici le script (SUPPRIMEZ les lignes 2 & 3 pour Karabiner) :
tell application "System Events"
set visible of first process whose frontmost is 1 to 0
delay 0.2
set dTopSize to size of scroll area 1 of process "Finder" as list
set maxPos to {0, 22}
set realApp to first process whose frontmost is true
set froAppName to (name of first process whose frontmost is true) as string
set maxMin to true
if (froAppName is "BBEdit") then
set appBounds to {0, 22, 888, (item 2 of dTopSize) - 22}
else if (froAppName is "Safari") then
set appBounds to {38, 22, 1372, (item 2 of dTopSize) - 22}
else if (froAppName is "Mail") then
set appBounds to {53, 22, 1314, (item 2 of dTopSize) - 22}
else
set maxMin to false
end if
if maxMin then
if item 1 of (size of window 1 of realApp as list) is not equal to ¬
item 1 of dTopSize then
set position of window 1 of realApp to maxPos
set size of window 1 of realApp to {(item 1 of dTopSize), ¬
(item 2 of dTopSize) - 22}
else
set size of window 1 of realApp to {item 3 of appBounds, ¬
item 4 of appBounds}
set position of window 1 of realApp to {item 1 of appBounds, ¬
item 2 of appBounds}
end if
end if
tell realApp to set frontmost to true
end tell
0 votes
Le bouton vert n'a jamais signifié "maximiser", du moins dans le sens de maximiser une fenêtre dans Windows, et a toujours été une sorte de "hit-or-miss" quant à ce qu'il fait réellement. Récemment, cependant, il a changé de fonction pour fonctionner comme "passer en plein écran". C'est la fonction du bouton, donc votre script fonctionne correctement pour ce que vous lui demandez de faire.
0 votes
Par "maximiser", j'entendais "maximiser" dans le sens Mac, c'est-à-dire agrandir une fenêtre. Je sais que la fonction du bouton vert a changé dans Yosemite. Toutefois, le comportement du bouton vert dépend de la pression ou non d'Option (par exemple, Safari). Lorsque l'option est activée, le bouton se comporte de manière "classique" (agrandissement d'une fenêtre plutôt que plein écran). Par exemple, voir ce [lien]( osxdaily.com/2014/10/28/maximize-zoom-Windows-os-x-mac ).
0 votes
J'étais en train de chercher la même chose et j'ai décidé de créer un raccourci clavier pour activer le "Zoom" (puisque l'enregistrement de mon automate était différent pour le même bouton vert dans différentes applications). Un raccourci clavier répondrait-il à votre objectif final ou faites-vous quelque chose de plus sophistiqué ?