76 votos

Comando de pantalla de bloqueo One-Liner

Estoy tratando de averiguar si hay algún tipo de línea de comandos equivalente que replique la funcionalidad idéntica de la opción de menú "Pantalla de bloqueo" disponible a través de la aplicación Llavero en OS X 10.6

Conozco todas las soluciones "habituales" (preferencias de reposo/salvapantallas para requerir una contraseña en la reactivación) pero no me convienen.

También conozco esta opción:

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

que tampoco es adecuado para mí.

La funcionalidad perfecta es la opción de "Pantalla de bloqueo", aunque todavía no he encontrado una forma elegante de llamarla.

Por el momento, estoy llamando a través de Automator, lo que no es elegante.

He leído mucho sobre este tema y tengo entendido que nadie ha encontrado aún el "santo grial", pero me preguntaba si eso podría haber cambiado.

0 votos

¿Cómo se llama con Automator?

0 votos

Lo siento, debería haber sido más claro... He grabado un 'Watch Me Do' en Automator (ligado a un atajo de teclado del sistema) que, literalmente, mueve el ratón hasta la opción del menú y la selecciona. Funciona, pero es lento y nada elegante.

3 votos

¿Qué hay de malo en configurar las preferencias de seguridad para que se requiera una contraseña cuando el protector de pantalla esté activo y luego usar una esquina caliente para activar el protector de pantalla? Eso es rápido y elegante, pero usted dijo que no le gustaba esa solución.

71voto

Vaibhav Agrawal Puntos 11

En OS X 10.9 y posteriores:

pmset displaysleepnow

Por sí mismo, este comando sólo hace que la pantalla se duerma, lo que resulta en una pantalla negra. Configurando su ordenador para que requiera una contraseña inmediatamente después de la suspensión, este comando funciona como un comando de "bloqueo del ordenador". La preferencia está disponible en Preferencias del Sistema > Seguridad y Privacidad > General .

Fuente: ¿Cómo bloquear la pantalla en el Macbook Air?

13 votos

Sólo para completar, esto funciona sólo si la opción de seguridad "Rerquire password after sleep or screen saver begin" está activada en las preferencias del sistema

1 votos

Esto parece más equivalente a CTRL+SHIFT+Eject.

0 votos

Esto no es equivalente al elemento de la barra de menús del llavero. No bloquea la pantalla; sólo pone el ordenador en reposo.

41voto

Gary B Puntos 1

Nota: Esta solución es única, ya que utiliza la funcionalidad del estado de la barra de menús de Keychain Access, pero no requiere para habilitar el Show keychain status in menu bar como los métodos de AppleScript.

Yo también estaba buscando una solución para esto. Hoy he tenido algo de tiempo para jugar y he encontrado una forma de llamar programáticamente a la funcionalidad del plugin del menú del llavero. Esta solución funciona perfectamente siempre y cuando Apple no cambie las partes relevantes en el plugin del menú del llavero. Puedes crear un pequeño binario para bloquear tu pantalla pegando esto en tu 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

Ejecute el programa escribiendo:

./lockscreen

0 votos

¿Podría explicar con más detalle cómo utilizarlo? ¿Debo copiar y pegar esto en un flujo de trabajo de Automator? ¿O hago un Applescript con esto? Tal y como está ahora es difícil hacer algo con tu respuesta.

1 votos

Este es un simple programa de Objective-C. Cópialo en un archivo llamado main.m. Luego ejecuta 'clang -framework Foundation main.m -o lockscreen' para compilar el programa. El programa se ejecuta y bloquea la pantalla.

0 votos

Lo he probado, funciona como se describe. La compilación genera una advertencia instance method '-_lockScreenMenuHit:' not found pero la aplicación de la pantalla de bloqueo funciona de todos modos. Sin embargo, al hacer doble clic se abre una ventana de Terminal antes de bloquear la pantalla. Tras el desbloqueo hay que cerrar la ventana manualmente. ¿Hay alguna manera de cerrar esa ventana automáticamente?

18voto

Malik hassan Puntos 16

ACTUALIZACIÓN: 2019.

La pantalla de bloqueo para el llavero ya no está disponible en la versión actual de macOS Mojave y High Sierra.

Apple ha añadido un menú de pantalla de bloqueo en el menú de Apple. Esto tiene el atajo de teclado por defecto de crtl + cmd + Q

enter image description here


------------- Respuesta antigua para el sistema operativo anterior a continuación --------------

La respuesta de @Bart Arondson entra en el uso de algunos códigos clave para navegar por el menú de la pantalla de bloqueo del llavero.

Todos los códigos clave puede ser evitado usando GUI Scripting para realmente golpear los elementos del menú directamente.

Utilizar los códigos de las teclas para navegar por los menús puede ser un acierto. Y aunque no me gustan los scripts de la interfaz gráfica de usuario porque también pueden ser un éxito y un fracaso, creo que en este caso es menos exitoso.

Este código applescript: (actualizado el 18 de mayo de 2016, obtenido de Uso de AppleScript para bloquear la pantalla (se confirma que funciona en El Capitán)

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

Se puede utilizar en una acción de Automator 'Run Applescript' en un flujo de trabajo de servicio de Automator.

enter image description here

A continuación, asigna al servicio un atajo de teclado. De la forma habitual en Los atajos de teclado.

enter image description here

El servicio:

enter image description here

0 votos

Esto funcionó muy bien para lo que necesitaba, ¡gracias!

0 votos

También se puede ejecutar un comando de terminal desde automator, así que lo usé. me pareció más "elegante" :). ¡muy buena solución!

3 votos

Utilicé esta solución durante mucho tiempo, pero desde osX El Capitán ya no funciona :(.

17voto

Kevin Goff Puntos 725

Yo uso Alfred →

enter image description here

La tecla de acceso directo universal me permite activarla mediante el teclado.

0 votos

¡Impresionante! ¿La tecla de acceso directo universal está incorporada o forma parte del paquete de energía?

1 votos

Está incorporado ...

2 votos

Lamentablemente esto no es así - también apaga la conexión a Internet, mientras que el uso del bloqueo del menú del llavero no lo hace.

8voto

Artem Tikhomirov Puntos 4501

Configure las preferencias para bloquear la pantalla cuando el protector de pantalla esté activo.

Security & Privacy Preference Pane

A continuación, puede utilizar este comando de terminal para iniciar el protector de pantalla.

/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine

Por lo que sé, esto es exactamente lo que hace el elemento de menú Llavero.

0 votos

Gracias por tu comentario, pero esto es lo que he luchado durante mucho tiempo y estoy tratando de encontrar una alternativa.

1 votos

Sólo para aclarar y completar, debo que lo anterior efectivamente inicia el salvapantallas, pero no hace lo que ofrece la función del menú "Bloquear pantalla".

1 votos

Entonces tiene que ser más específico en cuanto a lo que busca exactamente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X