J'utilise différentes résolutions d'écran en fonction de l'activité que j'exerce au cours de la journée.
Par exemple, lorsque je code, je préfère avoir plus d'espace disponible.
Est-il possible d'associer un raccourci clavier pour modifier la résolution de l'écran ?
(voir la capture d'écran ci-jointe)
Réponses
Trop de publicités?Oui, vous pouvez tout à fait y parvenir sans utiliser d'applications supplémentaires. Sur mon système, j'ai créé deux scripts différents. Un scripts pour ajuster la résolution d'affichage à la hausse et un autre pour ajuster la résolution d'affichage à la baisse. Sur mon système, j'ai simplement activé les deux scripts en tant que commandes de dictée, mais si vous créez un nouveau service via Automator, vous pouvez assigner des raccourcis clavier à ces services
Tout d'abord, voici les deux scripts avec lesquels j'ai commencé.
Celle-ci permet d'augmenter la résolution de l'écran : si la résolution de mon écran est déjà à la position par défaut
tell application "System Preferences"
reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays"
end tell
tell application "System Events" to tell process "System Preferences" to tell window "Built-in Retina Display"
click radio button "Scaled" of radio group 1 of tab group 1
click radio button 4 of radio group 1 of group 1 of tab group 1
end tell
quit application "System Preferences"
L'exécution de ce script donnera ce résultat :
Le script suivant sert à abaisser la résolution de l'écran : si la résolution de mon écran n'est pas réglée sur la valeur par défaut
tell application "System Preferences"
reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays"
end tell
tell application "System Events" to tell process "System Preferences" to tell window "Built-in Retina Display"
click radio button "Scaled" of radio group 1 of tab group 1
click radio button 3 of radio group 1 of group 1 of tab group 1
end tell
quit application "System Preferences"
Après m'être assuré que les deux scripts fonctionnent correctement, j'ai ouvert Automator et créé un nouveau service pour la résolution d'affichage plus élevée et ajouté le scripts approprié, comme le montre l'image suivante. J'ai enregistré ce fichier sous le nom rez_higher.workflow.
À partir de là, j'ai ouvert les préférences système/clavier/raccourcis/services. J'ai localisé le nouveau service que j'ai créé et je lui ai attribué un raccourci clavier
Ensuite, il suffit de suivre les mêmes procédures pour créer un nouveau flux de travail et un nouveau service pour la résolution d'affichage inférieure.
J'ai écrit l'outil en ligne de commande gratuit afficheur pour modifier les résolutions/rotations des bureaux à un ou plusieurs moniteurs. Vous pouvez déclencher un "profil" (exemple ci-dessous) via un raccourci clavier avec Automator comme l'a expliqué wch1zpink, BetterTouchTool, etc.
displayplacer 'id:69731906 res:1440x900 scaling:on origin:(0,0) degree:0'
Correction de la réponse de wch1zpink sur MacOS 12.0.1, grâce à l'application UI Browser :
tell application "System Preferences"
reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays"
end tell
tell application "System Events"
tell application process "System Preferences"
repeat until (exists radio button "Scaled" of radio group 1 of group 1 of window "Displays")
delay 0.1
end repeat
tell window "Displays"
set isScaled to value of radio button "Scaled" of radio group 1 of group 1
if isScaled = 0 then
click radio button "Scaled" of radio group 1 of group 1
click button 1 of UI element 3 of group 1
else
click radio button "Default for display" of radio group 1 of group 1
end if
end tell
end tell
end tell
quit application "System Preferences"
Correction de la réponse de wch1zpink sur MacOS 10.15.4 :
tell application "System Preferences"
reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays"
end tell
tell application "System Events" to tell process "System Preferences" to tell window "Built-in Retina Display"
set isScaled to value of radio button "Scaled" of tab group 1
if isScaled = 0 then
click radio button "Scaled" of tab group 1
click radio button 1 of radio group 1 of group 1 of tab group 1
else
click radio button "Default for display" of tab group 1
end if
end tell
quit application "System Preferences"
Ce qui fonctionne pour moi en 2022 sur MacOS 12.1 sur MacBook Pro
Disposer d'un raccourci clavier unique permettant de basculer entre 2 résolutions :
- Automator > Fichier > Nouveau > Action rapide > Choisir
- Recherchez "Run AppleScript" et double-cliquez sur le résultat.
- Remplacez le code script par défaut par ce que je fournis ci-dessous.
- Essayez de cliquer plusieurs fois sur le bouton Exécuter pour voir si le basculement fonctionne.
- Enregistrez sous "toggle_display_resolution". (Plus tard, si vous souhaitez le modifier, vous ouvrirez le fichier
/Users/your_username/Library/Services/toggle_display_resolution.workflow
dans Automator). - Fermer l'automate.
- Préférences système > Clavier > Raccourcis > Services
- Attribuez un raccourci clavier au nouveau service que vous avez créé (qui se trouvera probablement en bas de la liste).
Par ailleurs, il se peut que vous deviez modifier votre rubrique "Sécurité et confidentialité" > Accessibilité. Voir répondre .
on run {input, parameters}
# https://apple.stackexchange.com/a/436069/53510
tell application "System Preferences"
reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays"
end tell
tell application "System Events"
tell application process "System Preferences"
repeat until (exists radio button "Scaled" of radio group 1 of group 1 of window "Displays")
delay 0.1
end repeat
tell window "Displays"
set isScaled to value of radio button "Scaled" of radio group 1 of group 1
if isScaled = 0 then
click radio button "Scaled" of radio group 1 of group 1
# button '5' means highest resolution (smalled font):
click button 5 of UI element 3 of group 1
else
click radio button "Default for display" of radio group 1 of group 1
end if
end tell
end tell
end tell
# The next line is optional and could be commented out by prepending with a hash (#).
quit application "System Preferences"
return input
end run
P.S. Un grand merci à wch1zpink y Zade dont les réponses ont conduit aux miennes. Ajoutez un Upvote à leurs réponses également.
P.P.S. Je suis curieux de savoir si je pourrais plus facilement action cette action / ce service rapide.
Depuis MacOS 12.2.1 et l'introduction des raccourcis, vous n'avez plus besoin d'un raccourci clavier. Quoi qu'il en soit, un grand merci à Ryan qui ont fourni la base de mon code. Le voici :
on run {input, parameters}
# https://apple.stackexchange.com/a/436069/53510
tell application "System Preferences"
activate
reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays"
delay 2 #Make longer if needed
tell application "System Events"
tell application process "System Preferences"
tell window 1
click button 1 #Monitor settings
delay 0.7 #Make longer if needed
select row 2 of outline 1 of scroll area 1 of sheet 1 #Row=monitor number
click radio button 2 of radio group 1 of sheet 1 #Select "Scaled"
click button 2 of UI element 6 of sheet 1 #Select resolution
click button 2 of sheet 1 #Done
click button 4 #Close System Preferences
end tell
end tell
end tell
end tell
return input
end run
Des délais sont nécessaires en raison du temps d'ouverture des fenêtres, sinon l'indexation est interrompue. Si l'indexation est toujours interrompue, il suffit de prolonger les délais. Pour le numéro de ligne, si vous voulez influencer par exemple votre troisième moniteur, écrivez "ligne 3" à la place. Si vous en faites un deuxième pour augmenter votre résolution et que scaled est déjà sélectionné, vous pouvez vous débarrasser de cette ligne.
EDIT : pour MacOS 12.3, remplacer le bouton 4 par le bouton 5
- Réponses précédentes
- Plus de réponses