15 votes

Raccourci clavier : retournement de l'écran

Comment créer un raccourci clavier qui fait basculer mon écran à l'envers ?

Je sais comment activer ce paramètre dans les préférences système, mais je veux pouvoir le lier à un raccourci.

Est-il possible de faire en sorte que le même raccourci clavier ramène l'écran à son orientation normale ?

enter image description here

14voto

user3439894 Points 52496

Les éléments suivants ont été testés sous MacOS Sierra 10.12.5 y MacOS High Sierra 10.13.3 et fonctionne sans aucun problème sur mon système.

Utilisation de la exemple AppleScript code de ma réponse originale, sauvegardée comme un AppleScript application nommé Retourner l'écran à 180 et ajouté à Préférences du système > Sécurité et confidentialité > Vie privée > Accessibilité afin de lui permettre de traiter le code j'ai ensuite utilisé un Automator flux de services également nommé Retourner l'écran à 180 pour ouvrir le AppleScript application du même nom, tout en attribuant les éléments suivants raccourci clavier : R

  • Notez que le raccourci clavier F qui a travaillé sous la direction de OS X 10.8.5 était en conflit avec un système par défaut raccourci clavier sous MacOS 10.12.5 , MacOS 10.13.3 et pourquoi je l'ai changé. Vous devrez peut-être utiliser un autre raccourci clavier et comme d'habitude, vous devez en choisir un qui n'est pas déjà assigné dans une application qui a le focus lorsqu'on appuie dessus pour l'activer. Automator flux de services .

  • J'ai également exécuté ce qui suit commande en Terminal afin de ne pas montrer le Carreaux de quai pour le AppleScript application sur le Quai :

      defaults write '/Applications/Flip Display 180°.app/Contents/Info.plist' LSUIElement -bool yes

Cela dit, si le UI para Affiche sur Préférences du système sur MacOS High Sierra sur votre système est différent pour une raison non divulguée, alors les exemple AppleScript code devra être modifié pour tenir compte des différences entre ce qui fonctionne sur mon système et le vôtre. S'il faut le modifier, j'imagine que ce ne sera pas très difficile à comprendre.


Les images suivantes montrent les détails pertinents :

Préférences du système > Affiche > Afficher comme indiqué sur mon système :

enter image description here

AppleScript application , nommé Retourner l'écran à 180 :

enter image description here

Automator flux de services également nommé Retourner l'écran à 180 :

Code : open -a 'Flip Display 180°'

enter image description here

Préférences du système > Sécurité et confidentialité > Vie privée > Accessibilité :

enter image description here

Préférences du système > Clavier > Raccourcis > Services > Général > Retourner l'écran à 180

enter image description here


Pour l'instant, je laisse ma réponse originale dans la partie inférieure de cette réponse, car elle fonctionne comme indiqué ci-dessous. OS X 10.8.6 et peut être bénéfique pour d'autres utilisateurs.

Réponse originale :

Je sais que vous utilisez MacOS High Sierra et peut-être que vous pouvez utiliser ce qui fonctionne pour moi sous OS X 10.8.6 .

Les éléments suivants exemple AppleScript code utilisé dans un Exécuter AppleScript action dans un Automator flux de services retourne le Afficher 180° quand j'appuie : F

if running of application "System Preferences" then
    quit application "System Preferences"
    delay 1
end if

tell application "System Preferences"
    reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays"
    delay 1
    tell application "System Events"
        tell pop up button "Rotation:" of tab group 1 of window 1 of application process "System Preferences"
            if (value) contains "Standard" then
                click
                click menu item "180°" of menu 1
                my clickConfirmButton()
            else
                click
                click menu item "Standard" of menu 1
            end if
        end tell
    end tell
    quit
end tell

on clickConfirmButton()
    set wasClicked to false
    repeat until wasClicked
        delay 0.5
        tell application "System Events"
            try
                click button "Confirm" of sheet 1 of window 1 of application process "System Preferences"
                set wasClicked to true
            end try
        end tell
    end repeat
end clickConfirmButton
  • Notez que le valeur de la delay commandes peuvent avoir besoin d'être ajustées pour votre système, et ou des delay commandes peut ou non être nécessaire. Ajustez valeurs de et ou ajouter/supprimer le delay commandes le cas échéant.

Note : Le site exemple AppleScript code est juste cela et n'emploie pas d'autres traitement des erreurs que ce qui est montré et n'a pour but que de montrer une des nombreuses façons d'accomplir une tâche. Il incombe toujours à l'utilisateur d'ajouter ou d'utiliser les outils appropriés. traitement des erreurs selon les besoins/la volonté.


Automator flux de services :

enter image description here

7voto

Jake Hilborn Points 1086

J'ai écrit un programme nommé Plaque d'affichage qui permet de le faire facilement via une commande de terminal. Vous pouvez lier cette commande à un raccourci clavier avec un programme comme BetterTouchTool ou peut-être Automator. Fonctionne avec toutes les versions de MacOS supérieures à 10.6.

Exemple de retournement à 180 : displayplacer 'id:123467890 res:1920x1200 scaling:off origin:(0,0) degree:180'

Exemple pour retourner le 0 : displayplacer 'id:123467890 res:1920x1200 scaling:off origin:(0,0) degree:0'

2voto

Vxider Points 21

Ce script a été testé sur MacOS 10.14 pour les produits suivants Chinois utilisateurs.

Si vous utilisez une autre langue, veuillez modifier le nom du bouton dans votre langue.

Dans script "LG Ultra HD" signifie le nom de votre moniteur, ceci est utile si vous avez plus de 2 moniteurs, sinon, vous pouvez remplacer (first window whose name is "LG Ultra HD") par window 1

if running of application "System Preferences" then
    quit application "System Preferences"
    delay 1
end if

tell application "System Preferences"
    reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays"
    delay 1
    tell application "System Events"
        tell pop up button "" of tab group 1 of (first window whose name is "LG Ultra HD") of application process "System Preferences"
            if (value) contains "" then
                click
                click menu item "270°" of menu 1
                my clickConfirmButton()
            else
                click
                click menu item "" of menu 1
            end if
        end tell
    end tell
    quit
end tell

on clickConfirmButton()
    set wasClicked to false
    set i to 10
    repeat until wasClicked or i  0
        delay 0.5
        tell application "System Events"
            try
                click button "" of sheet 1 of (first window whose name is "LG Ultra HD") of application process "System Preferences"
                set wasClicked to true
            end try
        end tell
        set i to i - 1
    end repeat
end clickConfirmButton

2voto

Mark Sonn Points 121

J'ai pris la solution de l'utilisateur 3439894 et l'ai modifiée pour qu'elle fonctionne sur la même erreur que celle de theonlygusti, car je rencontrais également ce problème.

Le script suivant est un hack massif, mais l'idée générale est que parfois l'onglet de rotation est la fenêtre 1 et parfois la fenêtre 2. Pour résoudre cela, j'ai utilisé un bloc try catch qui va juste essayer la première et s'il y a erreur, il va aussi essayer la deuxième. N'hésitez pas à améliorer ce script, mais je voulais juste quelque chose qui fonctionne.

if running of application "System Preferences" then
    quit application "System Preferences"
    delay 1
end if

tell application "System Preferences"
    reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays"
    delay 1
    tell application "System Events"
        try
            tell pop up button "Rotation:" of tab group 1 of window 2 of application process "System Preferences"
                if (value) contains "Standard" then
                    click
                    click menu item "270°" of menu 1
                    my clickConfirmButton()
                else
                    click
                    click menu item "Standard" of menu 1
                end if
            end tell
        on error errMsg
            tell pop up button "Rotation:" of tab group 1 of window 1 of application process "System Preferences"
                if (value) contains "Standard" then
                    click
                    click menu item "270°" of menu 1
                    my clickConfirmButton()
                else
                    click
                    click menu item "Standard" of menu 1
                end if
            end tell
        end try
    end tell
    quit
end tell

on clickConfirmButton()
    set wasClicked to false
    repeat until wasClicked
        delay 0.5
        tell application "System Events"
            try
                click button "Confirm" of sheet 1 of window 1 of application process "System Preferences"
                set wasClicked to true
            end try
        end tell
    end repeat
end clickConfirmButton

Merci de faire 99% du travail utilisateur3439894

1voto

Birchlabs Points 244

Testé sur MacOS 11.3 Big Sur.

Basé sur la solution de @Vxider, avec des éléments de menu traduits en anglais.

Vous devrez changer les deux occurrences de "LG HDR 4K" pour correspondre au nom de votre moniteur, tel qu'il est présenté dans la fenêtre des préférences système :

enter image description here

if running of application "System Preferences" then
  quit application "System Preferences"
  delay 1
end if

tell application "System Preferences"
  reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays"
  delay 1
  tell application "System Events"
    tell pop up button "Rotation:" of tab group 1 of (first window whose name is "LG HDR 4K") of application process "System Preferences"
      if (value) contains "Standard" then
        click
        click menu item "90°" of menu 1
        my clickConfirmButton()
      else
        click
        click menu item "Standard" of menu 1
      end if
    end tell
  end tell
  quit
end tell

on clickConfirmButton()
  set wasClicked to false
  set i to 10
  repeat until wasClicked or i  0
    delay 0.5
    tell application "System Events"
      try
        click button "Confirm" of sheet 1 of (first window whose name is "LG HDR 4K") of application process "System Preferences"
        set wasClicked to true
      end try
    end tell
    set i to i - 1
  end repeat
end clickConfirmButton

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