Я пытаюсь выяснить, существует ли какой-либо эквивалентный однострочный инструмент командной строки, который воспроизводит точно идентичные функциональные возможности опции меню «Блокировка экрана», доступной через приложение связки ключей в OS X 10.6
Мне известны все «обычные» решения (настройки режима сна / заставки, требующие пароль для повторной активации), но они мне не подходят.
Я также знаю об этой опции:
/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend
что тоже не подходит для меня.
Идеальной функциональностью является опция «Блокировка экрана», однако я пока не нашел элегантного способа назвать это.
В данный момент я звоню через Automator, что не элегантно!
Я много читал об этой проблеме, и я понимаю, что никто еще не нашел «святой Грааль», но мне было интересно, могло ли это измениться.
источник
Ответы:
В OS X 10.9 и позже:
Сама по себе эта команда вызывает только спящий режим отображения, в результате чего появляется черный экран. Настраивая ваш компьютер так, чтобы он запрашивал пароль сразу после сна, эта однострочная команда работает как команда «заблокировать компьютер». Настройки доступны в Системных настройках> Безопасность и конфиденциальность> Общие .
Источник: Как заблокировать экран на MacBook Air?
источник
Примечание. Это уникальное решение состоит в том, что оно использует функциональность состояния строки меню Keychain Access, но не требует включения этой
Show keychain status in menu bar
опции, как это делают методы AppleScript.Я также искал решение для этого. Сегодня у меня было немного времени, чтобы поиграть, и я нашел способ программно вызвать функциональность из плагина брелка меню. Это решение прекрасно работает, пока Apple не меняет соответствующие части в плагине брелка меню. Вы можете создать небольшой бинарный файл для блокировки экрана, вставив его в свой терминал ...
Запустите программу, набрав:
источник
instance method '-_lockScreenMenuHit:' not found
, но приложение блокировки экрана работает, тем не менее. Однако при двойном щелчке открывается окно терминала, прежде чем он блокирует экран. После разблокировки вы должны закрыть окно вручную. Есть ли способ закрыть это окно автоматически?Я использую Альфреда →
Универсальная горячая клавиша позволяет мне активировать ее с помощью клавиатуры.
источник
ОБНОВЛЕНИЕ: 2019.
Экран блокировки для связки ключей больше не доступен в текущей версии MacOS Mojave & High Sierra.
Apple теперь добавила пункт меню блокировки экрана в меню Apple. Это сочетание клавиш по умолчанию crtl + cmd + Q
------------- Старый ответ для предыдущей ОС ниже --------------
Ответ @Bart Arondson состоит в использовании некоторых кодов клавиш для навигации по меню экрана блокировки цепочки для ключей.
Все коды клавиш можно обойти, используя GUI Scripting для непосредственного попадания в пункты меню.
Использование кодов клавиш для навигации по меню можно ударить и пропустить. И так же, как мне не нравятся сценарии с графическим интерфейсом, потому что они также могут быть хитами и миссами, но в этом случае они меньше поражают.
Этот код appleScript: (обновлено 18.05.2016, получено из раздела Использование AppleScript для блокировки экрана , подтверждено, что он работает в El Capitan)
Может использоваться в действии Automator «Запуск приложения» в рабочем процессе службы Automator.
Затем вы предоставляете сервису сочетание клавиш. Обычным способом в сочетаниях клавиш.
Обслуживание:
источник
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")
Установите настройки для блокировки экрана, когда хранитель экрана активен.
Затем вы можете использовать эту команду терминала для запуска заставки.
/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
Насколько я могу судить, это именно то, что делает пункт меню Keychain.
источник
Я думаю, что ответ на ваш вопрос: «Нет, для этого нет командной строки».
Поскольку это пункт меню, к нему нельзя легко получить доступ с помощью Keyboard Maestro или другого аналогичного инструмента.
Однако, если вы не против решения с использованием стороннего приложения, QuickLock позволит вам сделать это.
Это бесплатное приложение (принимаются пожертвования), которое позволит вам назначить сочетание клавиш для блокировки экрана. Также есть пункт меню, который вы можете щелкнуть, чтобы заблокировать экран.
Приложение позволит вам установить пароль (отдельно от пароля вашей учетной записи).
Это не требует использования пароля с заставкой, все это совершенно отдельно.
Вы можете посмотреть его видео в действии на http://www.youtube.com/watch?v=SBHwykPB19o.
ps когда экран заблокирован, введите пароль, чтобы разблокировать его. Я был сбит с толку, потому что ожидал увидеть поле пароля. Здесь ничего нет. Вы просто вводите пароль.
pps Я использовал это только в течение нескольких минут, так что могут быть некоторые другие проблемы, о которых я не знаю, но это, кажется, отвечает всем требованиям.
источник
Mac не предназначен, чтобы предоставить вам такую возможность. Однако в этой статье описывается обходной путь с использованием QuickSilver. Хотя я не могу понять, почему вам не нравится решение, которое Apple предоставляет изначально, я желаю вам удачи в поиске решения.
источник
Быстрый способ уснуть вашу машину с помощью командной строки с помощью AppleScript
Это не блокирует ваш экран, если у вас не настроен немедленный запрос пароля, что я не люблю делать. Я просто отмечаю это для потомков.
источник
Легкий псевдоним. Добавьте это к вашему bashrc
введите
afk
свой терминал для выполнения.источник
Я использовал код, указанный выше jnk. Затем я использовал appify, чтобы превратить его в приложение для OS X, mathiasbynens.be/notes/shell-script-mac-apps . Затем я использовал Quicksilver, чтобы назначить собственное сочетание клавиш (я выбрал cmd + L). Терминал не открывается / остается открытым (как некоторые были обеспокоены) тем, как я его настроил, потому что вместо этого я запускаю приложение OS X.
источник
Я тоже столкнулся с этой проблемой.
/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend
заставляет систему приостанавливать все задачи, а не блокировать экран.JordanBtucker был на правильном пути, вот полная функция, которую я использую:
Это сохраняет пользователю его собственные настройки, но надежно блокирует экран :)
источник
defaults write com.apple.screensaver askForPassword -bool TRUE
иdefaults write com.apple.screensaver askForPasswordDelay -int 10
это мои значения по умолчанию. Теперь приведенный выше скрипт будет вести себя так, как описано.Я использую BetterTouchTool для этой цели и назначил сочетание клавиш для «Переключиться на экран входа в систему» (то есть экран блокировки): не соответствует требованию командной строки, но в любом случае может быть полезным для вас.
источник
Я не совсем уверен, что понимаю вашу проблему здесь. Если вам требуется пароль на заставке, он не остановит процессы и не заблокирует вам удаленный доступ к вашему Mac. У меня установлен этот параметр (с помощью ControlPlane для активации его на работе и деактивации дома), и у меня никогда не было системы, отказывающейся отвечать на подключение к удаленному рабочему столу, VNC или SSH. Во всех случаях, когда требуется доступ к GUI, мне просто нужно ввести пароль; SSH использует пару ключей, поэтому пароль не запрашивается. Если вы не хотите, чтобы приложения спали, убедитесь, что настройки питания системы таковы, что они не перейдут в спящий режим системы, прежде чем вы вернетесь. Просто установите тайм-аут сна с большой задержкой. Если вы не хотите вводить пароль, когда сидите перед компьютером и работаете,
Я использую Ctrl-Shift-Eject для блокировки экрана. Это быстро, просто и работает. Это встроенный способ блокировки экрана. Никто, скорее всего, не предложит альтернативу просто потому, что репликация функций, уже встроенных в ОС, слишком избыточна для того, чтобы тратить на нее много времени.
Насколько я могу судить, в 10.8 в Keychain нет опции «блокировка экрана», поэтому ваше предпочтительное решение не будет существовать, если вы когда-нибудь обновитесь.Редактировать: не заметил этого в настройках Keychain; да, это все еще там в 10.8.Если вы используете Automator для этого, вы не можете просто упаковать скрипт как приложение и назначить комбинацию горячих клавиш или оставить ее в Dock для быстрого доступа?
источник
Точно так же, как задающий вопрос, я искал способ быстрого использования экрана блокировки цепочки для ключей.
Объединяя знания из старой подсказки Mac OS X и некоторых приложений, я придумал следующее:
Сначала следуйте инструкциям из связанной подсказки Mac OS X, чтобы добавить сочетание клавиш для функции блокировки экрана цепочки для ключей.
Для меня (на 10.8.4) это не решило проблему, так как мне пришлось нажать ctrl+, F8чтобы сместить фокус на строку состояния, нажать, downчтобы открыть строку меню связки ключей, а затем нажать ctrl+, F9чтобы заблокировать экран. Я автоматизировал этот процесс с помощью следующего Applescript:
Откройте Automator, создайте новый Сервис, добавьте
Run Applescript
модуль, скопируйте и вставьте приведенный выше код и сохраните Сервис Automator под желаемым именем. Теперь перейдите к сочетания клавиш в системных настройках и добавьте сочетание клавиш для недавно созданной службы Automator. Я установил мой на ctrl+ cmd+ L.Теперь нажмите сочетание клавиш в любом приложении, и ваш экран будет мгновенно заблокирован.
Для тех, кто интересуется, почему бы просто не пойти с другими методами, вот мое мнение о них:
Быстрое переключение пользователей / экран блокировки.
С помощью этого метода я выхожу из своей корпоративной сети WPA2. Это нехорошо, поскольку повторное подключение иногда занимает много времени.
Заставка + пароль
Копирует функциональность, но это означает, что если мой ноутбук неактивен в течение некоторого времени, пока я читаю рядом с ним бумагу, экран будет заблокирован, когда я захочу снова его использовать. Это нежелательно. Соединение этого метода с «горячим углом» имеет побочный эффект: неопытные пользователи Mac могут вызвать «горячий угол» случайно, что приведет к блокировке экрана. Я также иногда случайно сталкиваюсь с горячим поворотом, что значительно останавливает мой рабочий процесс.
Сторонние приложения
Все это хорошо, но зачем запускать сторонние приложения, если они изначально доступны в ОС?
источник
На 10.14.6 Mojave я запускаю движок заставки, используя эту команду:
/System/Library/CoreServices/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
источник
Я использую настройку пароля Заставки с помощью нажатия клавиши (Ctrl + Shift + Eject) на 10.6.8, и из того, что я вижу, он делает то же самое, что и элемент «Блокировка экрана» на значке панели задач «Доступ к цепочке ключей».
Я знаю, что это похоже на некоторые другие ответы, но вместо «горячего угла» он использует нажатие клавиши, что для меня более удобно.
Это решение описано здесь более подробно, вот откуда я его получил: http://osxdaily.com/2011/01/17/lock-screen-mac/
Пользуюсь этим уже несколько лет без проблем.
источник
Ну, просто объедините два из приведенных выше ответов. Запустите эту команду:
После настройки параметров безопасности и конфиденциальности немедленно запросить пароль. Создайте псевдоним для своей оболочки, если вы хотите сделать команду проще для выполнения.
источник
FWIW, я понимаю вашу ситуацию и сам искал хорошее решение. Я наткнулся на эту тему, потому что я искал более быстрый метод, чем тот, который я в итоге придумал. Я придумал что-то, что, хотя и не совсем то, на что я надеялся, работает и является приемлемым компромиссом. Я использую те же команды сценариев GUI, что и @markhunte, показывает (немного другая структура, но та же идея), но вместо того, чтобы просто поместить их в рабочий процесс службы Automator, я разделил их на пакет .app, созданный с помощью Platypus. Я сделал это, потому что в своих путешествиях и тестировании я обнаружил, что службы Automator работают очень медленно при определенных условиях. Если ваш Mac находится под каким-либо стрессом, например, выполняется сканирование диска, что-то делает программное обеспечение A / V, Mail сносит электронную почту и т. Д., ОС, кажется, выдвигает сервисы на задний план. Это приводит к тому, что требуется несколько секунд, прежде чем рабочий процесс запускается (иногда), а иногда даже несколько секунд, прежде чем команды GUI в службе запускаются. Весьма раздражает, если вы пытаетесь «быстро» заблокировать экран, и на это уходит 10 секунд!
Наличие автономного «приложения» также имеет то преимущество, что вы можете использовать буквально десятки различных сторонних приложений для его запуска или просто использовать Spotlight или службу Automator для запуска приложения. Любой из них работает. Быстрее всего я нашел старую утилиту под названием Spark, которая чудесным образом работает даже в 10.8.4. Не спрашивайте меня, как с тех пор, как в последний раз разрабатывался враг 10.4! Spark можно найти здесь - Spark
В дополнение ко всему этому, я боролся с проблемой команд GUI, которые иногда работают медленно, связывая в cocoaDialog и вызывая его первым, когда приложение запускается, чтобы показать небольшой плавающий пузырь в середине экрана, указывающий на происходящий экран блокировки. Обычно блокировка происходит сразу после этого, но если есть задержка, это по крайней мере дает некоторую визуальную «обратную связь» о том, что вы нажали правые клавиши. Я также сделал его самовосстанавливающимся - если «Включить доступ к вспомогательным устройствам» не включен, он предупреждает вас с помощью диалогового окна и позволяет сразу же включить его. Он также будет следить за тем, чтобы в строке меню отображалось меню доступа брелка, так как это является обязательным требованием, или не удается выполнить разбор сценариев GUI.
источник
Ctrl- Shift- ⏏ Eject(на старых Mac),
Ctrl- Shift- ⌽ Power(на новых Mac )
источник