74 votes

Commande de l'écran de verrouillage en une phrase

J'essaie de savoir s'il existe une sorte de ligne de commande équivalente qui reproduit exactement la même fonctionnalité que l'option de menu "Écran de verrouillage" disponible via l'application Trousseau de clés dans OS X 10.6.

Je connais toutes les solutions "habituelles" (préférences de mise en veille/écran de veille pour demander un mot de passe à la réactivation) mais elles ne me conviennent pas.

Je suis également conscient de cette option :

/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend

ce qui ne me convient pas non plus.

La fonctionnalité parfaite est l'option "écran de verrouillage", mais je n'ai pas encore trouvé une façon élégante de l'appeler.

Pour l'instant, j'appelle via Automator, ce qui n'est pas élégant !

J'ai beaucoup lu sur le sujet et je crois savoir que personne n'a encore trouvé le "Saint Graal", mais je me demandais si cela avait changé.

0 votes

Qu'est-ce que vous appelez avec Automator ?

0 votes

Désolé, j'aurais dû être plus clair... J'ai enregistré un "Watch Me Do" dans Automator (lié à un raccourci clavier système) qui, littéralement, déplace la souris vers l'option de menu et la sélectionne. Cela fonctionne, mais c'est lent et pas du tout élégant !

3 votes

Qu'y a-t-il de mal à configurer les préférences de sécurité pour exiger un mot de passe lorsque l'écran de veille est actif, puis à utiliser un coin chaud pour activer l'écran de veille ? C'est rapide et élégant, mais vous avez dit que vous n'aimiez pas cette solution.

71voto

jordanbtucker Points 749

Dans OS X 10.9 et plus :

pmset displaysleepnow

Par elle-même, cette commande ne fait que mettre l'écran en veille, ce qui se traduit par un écran noir. En configurant votre ordinateur pour qu'il demande un mot de passe immédiatement après la mise en veille, cette commande unique fonctionne comme une commande de "verrouillage de l'ordinateur". Cette préférence est disponible à l'adresse suivante Préférences système > Sécurité et confidentialité > Général .

Source : Comment verrouiller l'écran du Macbook Air ?

13 votes

Juste pour être complet, cela ne fonctionne que si l'option de sécurité "Redemander le mot de passe après la mise en veille ou le démarrage de l'économiseur d'écran" est activée dans les préférences système.

1 votes

Cela semble plus équivalent à CTRL+SHIFT+Eject.

0 votes

Cette fonction n'est pas équivalente à l'élément Keychain de la barre de menu. Elle ne verrouille pas l'écran ; elle met seulement l'ordinateur en veille.

41voto

mrArkwright Points 511

Nota: Cette solution est unique car elle utilise la fonctionnalité d'état de la barre de menu de Keychain Access, mais elle ne nécessite pas vous permet d'activer le Show keychain status in menu bar comme le font les méthodes AppleScript.

Je cherchais également une solution à ce problème. Aujourd'hui, j'ai eu le temps de jouer et j'ai trouvé un moyen de programmer l'appel de la fonctionnalité du plugin de menu du trousseau. Cette solution fonctionne parfaitement tant qu'Apple ne change pas les parties pertinentes dans le plugin du menu trousseau. Vous pouvez créer un petit binaire pour verrouiller votre écran en collant ceci dans votre terminal...

# Do our work in the temporary directory that gets cleaned on boot
cd /tmp

# Create the source file
cat > main.m <<END_OF_FILE

#import <objc/runtime.h>
#import <Foundation/Foundation.h>

int main () {
    NSBundle *bundle = [NSBundle bundleWithPath:@"/Applications/Utilities/Keychain Access.app/Contents/Resources/Keychain.menu"];

    Class principalClass = [bundle principalClass];

    id instance = [[principalClass alloc] init];

    [instance performSelector:@selector(_lockScreenMenuHit:) withObject:nil];

    return 0;
}

END_OF_FILE

# Compile the source file
clang -framework Foundation main.m -o lockscreen

Exécutez le programme en tapant :

./lockscreen

0 votes

Pourriez-vous nous expliquer comment l'utiliser ? Dois-je le copier-coller dans un flux de travail Automator ? Ou en faire un Applescript ? En l'état actuel des choses, il est difficile de faire quelque chose avec votre réponse.

1 votes

Il s'agit d'un simple programme Objective-C. Copiez-le dans un fichier appelé main.m. Exécutez ensuite 'clang -framework Foundation main.m -o lockscreen' pour compiler le programme. './lockscreen' exécute le programme et verrouille votre écran.

0 votes

Je l'ai essayé, il fonctionne comme décrit. La compilation génère un avertissement instance method '-_lockScreenMenuHit:' not found mais l'application lockscreen fonctionne néanmoins. Cependant, lorsqu'on double-clique dessus, elle ouvre une fenêtre de terminal avant de verrouiller l'écran. Après le déverrouillage, vous devez fermer la fenêtre manuellement. Existe-t-il un moyen de fermer cette fenêtre automatiquement ?

18voto

markhunte Points 11634

MISE À JOUR : 2019.

L'écran de verrouillage du trousseau n'est plus disponible dans la version actuelle de MacOS Mojave et High Sierra.

Apple a maintenant ajouté un élément de menu Écran de verrouillage dans le menu Apple. Le raccourci clavier par défaut est le suivant crtl + cmd + Q

enter image description here


------------- Ancienne réponse pour le précédent OS ci-dessous --------------

La réponse de Bart Arondson porte sur l'utilisation de certains codes clés pour naviguer dans le menu de l'écran de verrouillage du trousseau.

Tous les codes clés peut être contourné en utilisant le GUI Scripting afin de toucher directement les éléments du menu.

L'utilisation de codes clés pour naviguer dans les menus peut être aléatoire. Et même si je n'aime pas les scripts GUI parce qu'ils peuvent aussi être aléatoires, je pense qu'ils le sont moins dans ce cas.

Ce code applescript : (mis à jour le 18/05/2016, tiré de Utilisation d'AppleScript pour verrouiller l'écran , confirmée comme fonctionnant dans El Capitan)

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 of menu bar 1 where description is "Keychain menu extra")
        click
        click menu item "Lock Screen" of menu 1
    end tell
end tell

Peut être utilisé dans une action "Run Applescript" d'Automator dans un flux de travail de service Automator.

enter image description here

Vous donnez ensuite au service un raccourci clavier. De la manière habituelle dans Les raccourcis clavier.

enter image description here

Le service :

enter image description here

0 votes

Cela a bien fonctionné pour ce dont j'avais besoin, merci !

0 votes

Vous pouvez également exécuter une commande de terminal à partir d'automator, c'est ce que j'ai fait. cela me semblait plus "élégant" :). très belle solution cependant !

3 votes

J'ai utilisé cette solution pendant longtemps, mais depuis osX El Captain elle ne fonctionne plus :(.

17voto

Kevin Goff Points 725

Yo uso Alfred →

enter image description here

Le raccourci universel me permet de l'activer à l'aide d'un clavier.

0 votes

Génial ! Le raccourci universel est-il intégré ou fait-il partie du powerpack ?

1 votes

Il est intégré...

2 votes

Malheureusement, ce n'est pas tout : il coupe également la connexion Internet, alors que l'utilisation du verrouillage du menu Keychain ne le fait pas.

14voto

Aritro Paul Points 89

Un alias facile. Ajoutez ceci à votre bashrc

alias afk="osascript -e 'tell application \"System Events\" to keystroke \"q\" using {command down,control down}'"

type afk dans votre terminal pour l'exécuter.

0 votes

Ça a marché. Merci !

0 votes

Cela a marché pour moi aussi

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