Estou tentando descobrir se existe algum tipo de linha de comando equivalente que replique a funcionalidade exatamente idêntica da opção de menu 'Tela de bloqueio' disponível através do aplicativo Keychain no OS X 10.6
Estou ciente de todas as soluções 'usuais' (preferências de suspensão / proteção de tela para exigir uma senha na reativação), mas elas não são adequadas para mim.
Também estou ciente dessa opção:
/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend
o que também não é adequado para mim.
A funcionalidade perfeita é a opção 'Tela de bloqueio', mas ainda não encontrei uma maneira elegante de chamá-lo.
No momento, estou ligando via Automator, o que não é elegante!
Eu li muito sobre esse assunto e meu entendimento é que ninguém ainda encontrou o 'Santo Graal', mas estava pensando se isso poderia ter mudado.
fonte
Respostas:
No OS X 10.9 e posterior:
Por si só, esse comando apenas faz com que a exibição fique inativa, resultando em uma tela preta. Ao configurar o seu computador para exigir uma senha imediatamente após o sono, esse one-liner funciona como um comando "bloquear computador". A preferência está disponível em Preferências do sistema> Segurança e privacidade> Geral .
Fonte: Como bloquear a tela no MacBook Air?
fonte
Nota: Esta solução é única, pois usa a funcionalidade de status da barra de menus Acesso às Chaves, mas não requer que você ative a
Show keychain status in menu bar
opção, como fazem os métodos AppleScript.Eu também estava procurando uma solução para isso. Hoje, tive apenas um tempo para brincar e encontrei uma maneira de chamar programaticamente a funcionalidade no plug-in de menu de chaves. Esta solução funciona perfeitamente desde que a Apple não altere as partes relevantes no plug-in do menu de chaves. Você pode criar um pequeno binário para bloquear sua tela colando-o no seu terminal ...
Execute o programa digitando:
fonte
instance method '-_lockScreenMenuHit:' not found
, mas o aplicativo de tela de bloqueio funciona mesmo assim. No entanto, ao clicar duas vezes, ele abre uma janela do Terminal antes de bloquear a tela. Após o desbloqueio, você deve fechar a janela manualmente. Existe uma maneira de fechar essa janela automaticamente?Eu uso Alfred →
A tecla de atalho universal permite ativá-la usando um teclado.
fonte
ATUALIZAÇÃO: 2019.
A tela de bloqueio para chaveiro não está mais disponível na versão atual do MacOS Mojave & High Sierra.
A Apple agora adicionou um item do menu Lock Screen no menu Apple. Isso tem o atalho de teclado padrão de crtl + cmd + Q
------------- Resposta antiga para o SO anterior abaixo --------------
A resposta do @Bart Arondson é usada para usar alguns códigos de teclas para navegar no menu Tela de bloqueio de chaveiro.
Todos os códigos de chave podem ser ignorados usando scripts da GUI para realmente atingir diretamente os itens de menu.
O uso de códigos de teclas para navegar nos menus pode ser um erro. E, por mais que eu não goste de scripts de GUI, porque também pode ser atingido e errado, é menos atingido neste caso.
Este código AppleScript: (atualizado em 18/05/2016, originado em Usando o AppleScript para bloquear a tela , confirmou o trabalho em El Capitan)
Pode ser usado em uma ação 'Executar Applescript' do Automator em um fluxo de trabalho de serviço do Automator.
Em seguida, você fornece ao serviço um atalho de teclado. Da maneira usual em Atalhos do teclado.
O serviço:
fonte
tell application "System Events" to tell process "SystemUIServer" to click (first menu bar item of menu bar 1 whose description is "Keychain menu extra") tell application "System Events" to click (menu item "Lock Screen" of menu 1 of menu bar item 1 of menu bar 1 of application process "SystemUIServer")
Defina as preferências para bloquear a tela quando o protetor de tela estiver ativo.
Em seguida, você pode usar este comando do terminal para iniciar a proteção de tela.
/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
Até onde eu sei, é exatamente isso que o item de menu Chaveiro faz.
fonte
Acho que a resposta para sua pergunta é "Não, não há uma maneira de fazer isso na linha de comando".
Como este é um item da barra de menus, não é algo que você possa acessar facilmente usando o Keyboard Maestro ou outra ferramenta semelhante.
No entanto, se você não tem aversão a uma solução usando um aplicativo de terceiros, o QuickLock permitirá que você faça isso.
É um aplicativo gratuito (aceito doações) que permite atribuir um atalho de teclado para bloquear a tela. Há também um item da barra de menus no qual você pode clicar para bloquear a tela.
O aplicativo permitirá que você defina uma senha (separada da senha da sua conta).
Não requer o uso de senha com protetor de tela, é tudo completamente separado.
Você pode ver um vídeo em ação em http://www.youtube.com/watch?v=SBHwykPB19o
ps quando a tela estiver bloqueada, digite sua senha para desbloqueá-la. Fiquei confuso porque esperava ver um campo de senha. Não há nenhum. Você acabou de digitar a senha.
pps Eu usei isso apenas por alguns minutos, por isso pode haver outros problemas com os quais não estou ciente, mas parece atender à conta.
fonte
O Mac não foi projetado para fornecer essa opção. No entanto, este artigo explica uma solução alternativa usando o QuickSilver. Embora eu não entenda por que você não gosta da solução que a Apple fornece nativamente, desejo-lhe sorte em encontrar uma solução.
fonte
Uma maneira rápida de dormir sua máquina via linha de comando com a ajuda do AppleScript é
Isso não bloqueia sua tela, a menos que você a configure para exigir uma senha imediatamente, o que eu não gosto de fazer. Estou apenas observando isso para a posteridade.
fonte
Alias fácil. Adicione isso ao seu bashrc
digite
afk
seu terminal para executar.fonte
Eu usei o código postado acima pelo jnk. Então usei o appify para transformá-lo em um aplicativo do OS X, mathiasbynens.be/notes/shell-script-mac-apps . Em seguida, usei o Quicksilver para atribuir meu próprio atalho de teclado (escolhi cmd + L). O terminal não está abrindo / permanecendo aberto (como alguns estavam preocupados) com a configuração, porque estou lançando um aplicativo OS X.
fonte
Eu também tive esse problema.
/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend
faz com que o sistema suspenda todas as tarefas, em vez de bloquear a tela.JordanBtucker estava no caminho certo, aqui está a função completa que eu uso:
Isso preserva as configurações do usuário, mas bloqueia a tela com segurança :)
fonte
defaults write com.apple.screensaver askForPassword -bool TRUE
edefaults write com.apple.screensaver askForPasswordDelay -int 10
esses são meus valores padrão. Agora, o script acima se comportará como descrito.Eu uso o BetterTouchTool para esse fim e atribui um atalho de teclado a "Alternar para a tela de login" (que é a tela de bloqueio): não atende aos requisitos da linha de comando, mas pode ser útil para você de qualquer maneira.
fonte
Não tenho muita certeza de entender seu problema aqui. Se você precisar de uma senha no protetor de tela, ela não interromperá a execução dos processos nem o impedirá de acessar remotamente o seu Mac. Eu tenho essa opção definida (usando o ControlPlane para ativá-lo no trabalho e desativá-lo em casa) e nunca tive o sistema se recusado a responder a uma conexão de Área de Trabalho Remota, VNC ou SSH. Em todos os casos em que o acesso à GUI é necessário, basta inserir a senha; O SSH usa o par de chaves, portanto, nenhuma senha é solicitada. Se você não deseja que os aplicativos durmam, verifique se as configurações de energia do sistema são tais que não entrem no modo de suspensão do sistema antes de retornar. Basta definir o tempo limite do sono para um longo atraso. Se você simplesmente não quiser se incomodar em digitar uma senha quando estiver sentado na frente do computador e trabalhando,
Eu uso ctrl-shift-eject para bloquear a tela. É rápido, simples e funciona. Essa é a maneira integrada de bloquear a tela. É provável que ninguém encontre uma alternativa simplesmente porque replicar as funções já inseridas no sistema operacional é um pouco redundante para alguém dedicar muito tempo à sua execução.
Até onde eu sei, não há opção de "tela de bloqueio" no Keychain na versão 10.8, então sua solução preferida não existirá se você atualizar.Edit: Não percebeu isso nas preferências do Keychain; sim, ainda está lá em 10.8.Se você estiver usando o Automator para isso, não pode simplesmente empacotar o script como um aplicativo e atribuir uma combinação de teclas de atalho ou deixá-lo no Dock para acesso rápido?
fonte
Assim como o autor da pergunta, eu estava procurando uma maneira de usar a Tela de bloqueio de chaveiro de maneira rápida.
Combinando o conhecimento de uma dica antiga do Mac OS X e alguns scripts da Apple, vim com o seguinte:
Primeiro, siga as etapas da dica vinculada do Mac OS X para adicionar um atalho de teclado para a funcionalidade Keychains Lock Screen.
Para mim (na versão 10.8.4), isso não resolveu o problema, pois tive que pressionar ctrl+ F8para mudar o foco para a barra de status, pressionar downpara abrir a barra de menus Chaveiro e pressionar ctrl+ F9para bloquear a tela. Automatizei esse processo com o seguinte Applescript:
Abra o Automator, crie um novo Serviço, adicione um
Run Applescript
módulo, copie e cole o código acima e salve o Serviço do Automator com o nome desejado. Agora vá para Atalhos de teclado nas Preferências do sistema e adicione um atalho de teclado para o recém-criado Serviço Automator. Defino o meu como ctrl+ cmd+ L.Agora pressione o atalho do teclado em qualquer aplicativo e sua tela será bloqueada instantaneamente.
Para aqueles que se perguntam por que não usar apenas outros métodos, aqui está minha opinião:
Troca rápida de usuário / tela de bloqueio
Com esse método, sou desconectado da minha rede WPA2 corporativa. Isso não é bom, já que a reconexão às vezes leva anos.
Protetor de tela + senha
Duplica a funcionalidade, mas isso significa que, se meu laptop estiver inativo por algum tempo enquanto eu estiver lendo um jornal ao lado, a tela será bloqueada quando eu quiser usá-lo novamente. Isso é indesejável. O acoplamento desse método a um hot-corner tem o efeito colateral de que usuários inexperientes do Mac possam acioná-lo por acidente, levando ao bloqueio da tela. Às vezes, também atingia um canto quente por acidente, o que atrasava consideravelmente o meu fluxo de trabalho.
Aplicativos de terceiros
Tudo bem, mas por que executar um aplicativo de terceiros se ele estiver disponível nativamente no sistema operacional?
fonte
No 10.14.6 Mojave, inicio o mecanismo de proteção de tela usando este comando:
/System/Library/CoreServices/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
fonte
Eu uso a configuração de senha do Screensaver com um pressionamento de tecla (Ctrl + Shift + Eject) na 10.6.8 e, pelo que posso ver, faz o mesmo que o item Lock Screen do ícone da barra de tarefas Keychain Access.
Eu sei que isso é semelhante a algumas das outras respostas, mas em vez do "canto quente", ele usa um pressionamento de tecla, o que é mais conveniente para mim.
Esta solução é descrita em mais detalhes aqui, é de onde eu a obtive: http://osxdaily.com/2011/01/17/lock-screen-mac/
Já o usam há vários anos sem problemas.
fonte
Bem, basta combinar duas das respostas acima. Execute este comando:
Depois de definir as preferências de Segurança e Privacidade, solicite uma senha imediatamente. Crie um alias para o seu shell se você quiser facilitar a execução do comando.
fonte
FWIW, eu entendo sua situação e tenho procurado uma boa solução para isso. Passei por esse segmento porque estava procurando por um método um pouco mais rápido do que o que acabei inventando. Eu criei algo que, embora não seja exatamente o que eu esperava, funciona e é um compromisso aceitável. Estou usando o mesmo tipo de comandos de script da GUI que o @markhunte mostra (estrutura ligeiramente diferente, mas a mesma ideia), mas em vez de apenas colocar tudo em um fluxo de trabalho de serviço do Automator, eu o separei em um pacote .app criado com o Platypus. Fiz isso porque em minhas viagens e testes descobri que os serviços do Automator são executados muito lentamente sob certas condições. Se o seu Mac estiver sofrendo algum tipo de estresse, ou seja, uma verificação de disco em execução, o software A / V fazendo alguma coisa, o recebimento de e-mail pelo correio etc. o sistema operacional parece empurrar os serviços para o final da linha. Isso pode levar alguns segundos antes da execução do fluxo de trabalho (algumas vezes) e, ocasionalmente, alguns segundos antes da execução dos comandos da GUI no serviço. Muito chato se você está tentando "rapidamente" bloquear a tela e leva 10 segundos para fazer isso!
Ter um "aplicativo" independente também tem a vantagem de poder usar literalmente dezenas de aplicativos de terceiros diferentes para executá-lo, ou apenas usar o Spotlight ou um serviço Automator para iniciar o aplicativo. Qualquer um deles funciona. O mais rápido que encontrei é um antigo utilitário chamado Spark, que milagrosamente ainda funciona até na 10.8.4. Não me pergunte como desde a última vez que foi desenvolvido, o inimigo 10.4! Spark pode ser encontrado aqui - Spark
Além de tudo isso, lutei contra a questão dos comandos da GUI, às vezes executando lentamente, agrupando o cocoaDialog e chamando-o primeiro quando o aplicativo é executado para mostrar uma pequena bolha flutuante no meio da tela, indicando que uma tela de bloqueio está acontecendo. Normalmente, o bloqueio acontece logo depois, mas se houver um atraso, isso ao menos dará algum "feedback" visual de que você pressionou as teclas certas. Eu também fiz o auto-reparo - se "Habilitar acesso a dispositivos de assistência" não estiver ativado, ele alerta você com uma caixa de diálogo e permite que você a habilite imediatamente. Ele também garantirá que o Menu de acesso ao chaveiro seja exibido na barra de menus, pois isso é um requisito ou a falha na execução dos scripts da GUI.
fonte
Ctrl- Shift- ⏏ Eject(em Macs mais antigos),
Ctrl- Shift- ⌽ Power(em Macs mais recentes)
fonte