Próbuję dowiedzieć się, czy istnieje jakiś równoważny liniowy wiersz poleceń, który replikuje dokładnie identyczną funkcjonalność opcji menu „Blokuj ekran” dostępnej za pośrednictwem aplikacji pęku kluczy w OS X 10.6
Jestem świadomy wszystkich „zwykłych” rozwiązań (preferencje trybu uśpienia / wygaszacza ekranu, które wymagają hasła przy ponownej aktywacji), ale nie są one dla mnie odpowiednie.
Mam również świadomość tej opcji:
/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend
co też nie jest dla mnie odpowiednie.
Idealną funkcjonalnością jest opcja „Zablokuj ekran”, ale nie znalazłem jeszcze eleganckiego sposobu, aby to nazwać.
W tej chwili dzwonię za pośrednictwem Automatora, co nie jest eleganckie!
Dużo czytałem na ten temat i rozumiem, że nikt jeszcze nie znalazł „świętego Graala”, ale zastanawiałem się, czy to mogło się zmienić.
źródło
Odpowiedzi:
W OS X 10.9 i nowszych:
Samo to polecenie powoduje tylko uśpienie wyświetlacza, co powoduje czarny ekran. Konfigurując komputer tak, aby wymagał hasła natychmiast po uśpieniu, ten jednowarstwowy działa jako polecenie „zablokuj komputer”. Preferencje są dostępne w Preferencjach systemowych> Bezpieczeństwo i prywatność> Ogólne .
Źródło: Jak zablokować ekran na MacBooku Air?
źródło
Uwaga: To rozwiązanie jest wyjątkowe, ponieważ wykorzystuje funkcję stanu paska menu Dostęp do pęku kluczy, ale nie wymaga włączenia tej
Show keychain status in menu bar
opcji, tak jak robią to metody AppleScript.Szukałem również rozwiązania tego problemu. Dzisiaj miałem trochę czasu na zabawę i znalazłem sposób, aby programowo wywołać funkcjonalność z wtyczki menu pęku kluczy. To rozwiązanie działa idealnie, dopóki Apple nie zmieni odpowiednich części we wtyczce menu pęku kluczy. Możesz utworzyć mały plik binarny do blokowania ekranu, wklejając go do terminala ...
Uruchom program, wpisując:
źródło
instance method '-_lockScreenMenuHit:' not found
, ale aplikacja blokady ekranu działa mimo to. Jednak po dwukrotnym kliknięciu otwiera okno terminala, zanim zablokuje ekran. Po odblokowaniu musisz ręcznie zamknąć okno. Czy istnieje sposób na automatyczne zamknięcie tego okna?Używam Alfreda →
Uniwersalny skrót pozwala mi aktywować go za pomocą klawiatury.
źródło
AKTUALIZACJA: 2019.
Blokada ekranu pęku kluczy nie jest już dostępna w aktualnej wersji systemu MacOS Mojave i High Sierra.
Apple dodało teraz pozycję menu blokady ekranu w menu Apple. Domyślny skrót klawiaturowy to crtl + cmd + Q
------------- Stara odpowiedź dla poprzedniego systemu operacyjnego poniżej --------------
Odpowiedź @Bart Arondson wymaga użycia niektórych kodów kluczowych do poruszania się po menu Blokada pęku kluczy.
Wszystkie kody kluczy można ominąć za pomocą skryptów GUI, aby faktycznie trafić bezpośrednio w pozycje menu.
Używanie kodów kluczowych do poruszania się po menu może być niemożliwe. I o ile nie lubię skryptów GUI, ponieważ można je również trafiać i tracić imho, w tym przypadku jest mniej trafień.
Ten kod AppleScript: (zaktualizowano 18.05.2016, pochodzi z Korzystanie z AppleScript do blokowania ekranu , potwierdzono działanie w El Capitan)
Może być użyty w akcji Automatora „Uruchom Applescript” w przepływie pracy usługi Automatora.
Następnie dajesz tej usłudze skrót klawiaturowy. W zwykły sposób w Skrótach klawiszowych.
Usługi:
źródło
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")
Ustaw preferencje, aby blokować ekran, gdy wygaszacz ekranu jest aktywny.
Następnie możesz użyć tego polecenia terminala, aby uruchomić wygaszacz ekranu.
/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
O ile wiem, dokładnie to robi element menu pęku kluczy.
źródło
Myślę, że odpowiedź na twoje pytanie brzmi: „Nie, nie ma na to sposobu z linii poleceń”.
Ponieważ jest to element paska menu, nie jest to coś, do czego można łatwo uzyskać dostęp za pomocą Keyboard Maestro lub innego podobnego narzędzia.
Jeśli jednak nie sprzeciwisz się rozwiązaniu korzystającemu z aplikacji innej firmy, QuickLock pozwoli ci to zrobić.
Jest to darmowa (akceptowana darowizny) aplikacja, która pozwala przypisać skrót klawiaturowy do zablokowania ekranu. Istnieje również element paska menu, który można kliknąć, aby zablokować ekran.
Aplikacja pozwala ustawić hasło (niezależne od hasła do konta).
Nie wymaga użycia hasła do wygaszacza ekranu, wszystko jest całkowicie osobne.
Możesz zobaczyć wideo z tego działania w akcji na http://www.youtube.com/watch?v=SBHwykPB19o
ps, gdy ekran jest zablokowany, wpisz hasło, aby je odblokować. Byłem zdezorientowany, ponieważ spodziewałem się zobaczyć pole hasła. Nie ma żadnego. Po prostu wpisz hasło.
pps Używałem tego tylko przez kilka minut, więc mogą być z tym inne problemy, o których nie wiem, ale wydaje się, że pasują do rachunku.
źródło
Mac nie został zaprojektowany, aby zapewnić taką opcję. Jednak w tym artykule wyjaśniono obejście problemu za pomocą QuickSilver. Chociaż nie rozumiem, dlaczego nie podoba Ci się rozwiązanie oferowane przez Apple, życzę powodzenia w znalezieniu rozwiązania.
źródło
Szybkim sposobem na uśpienie komputera za pomocą wiersza polecenia za pomocą AppleScript jest
To nie blokuje ekranu, chyba że masz ustawione, aby wymagać natychmiastowego hasła, czego nie lubię. Po prostu zauważam to dla potomności.
źródło
Łatwy alias. Dodaj to do swojego bashrc
wpisz
afk
swój terminal, aby wykonać.źródło
Użyłem kodu opublikowanego powyżej przez jnk. Następnie użyłem appify, aby przekształcić go w aplikację OS X, mathiasbynens.be/notes/shell-script-mac-apps . Następnie użyłem Quicksilver do przypisania własnego skrótu klawiaturowego (wybrałem cmd + L). Terminal nie otwiera się / pozostaje otwarty (jak niektórzy się martwili) z tym, jak go skonfigurowałem, ponieważ zamiast tego uruchamiam aplikację OS X.
źródło
Wpadłem również na ten problem.
/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend
powoduje zawieszenie przez system wszystkich zadań zamiast blokowania ekranu.JordanBtucker był na dobrej drodze, oto pełna funkcja, której używam:
To pozwala zachować własne ustawienia, ale bezpiecznie blokuje ekran :)
źródło
defaults write com.apple.screensaver askForPassword -bool TRUE
idefaults write com.apple.screensaver askForPasswordDelay -int 10
to są moje wartości domyślne. Teraz powyższy skrypt będzie działał zgodnie z opisem.W tym celu używam BetterTouchTool i przypisałem skrót klawiaturowy do „Przełącz na ekran logowania” (który jest ekranem blokady): nie spełnia wymagań wiersza poleceń, ale i tak może ci pomóc.
źródło
Nie jestem pewien, czy rozumiem twój problem tutaj. Jeśli potrzebujesz hasła do wygaszacza ekranu, nie spowoduje to zatrzymania procesów ani zablokowania dostępu do komputera Mac. Mam tę opcję ustawioną (używając ControlPlane do aktywacji w pracy i dezaktywacji w domu) i nigdy nie miałem systemu, który odmówił odpowiedzi na połączenie z pulpitem zdalnym, VNC lub SSH. We wszystkich przypadkach, w których wymagany jest dostęp do GUI, wystarczy wprowadzić hasło; SSH używa pary kluczy, więc hasło nie jest wymagane. Jeśli nie chcesz, aby aplikacje były w trybie uśpienia, upewnij się, że ustawienia zasilania systemu są takie, że nie przejdzie ono w tryb uśpienia przed powrotem. Po prostu ustaw długi czas spania. Jeśli po prostu nie chcesz wprowadzać hasła, gdy siedzisz przed komputerem i pracujesz,
Używam ctrl-shift-eject do blokowania ekranu. Jest szybki, prosty i działa. Jest to wbudowany sposób blokowania ekranu. Nikt raczej nie wymyśli alternatywy po prostu dlatego, że replikacja funkcji już zaimplementowanych w systemie operacyjnym jest trochę zbyteczna, aby ktokolwiek mógł poświęcić na to dużo czasu.
O ile mogę stwierdzić, w Keychain w 10.8 nie ma opcji „blokady ekranu”, więc preferowane rozwiązanie nie będzie istnieć, jeśli kiedykolwiek zaktualizujesz.Edycja: Nie zauważyłem tego w preferencjach pęku kluczy; tak, wciąż tam jest w 10.8.Jeśli używasz do tego Automatora, czy nie możesz po prostu spakować skryptu jako aplikacji i przypisać kombinację klawiszy skrótu lub pozostawić go w Docku, aby uzyskać szybki dostęp?
źródło
Podobnie jak pytający, szukałem sposobu na szybkie użycie blokady ekranu pęku kluczy.
Łącząc wiedzę ze starej wskazówki Mac OS X i niektórych skryptów jabłkowych, wymyśliłem:
Najpierw wykonaj kroki z połączonej wskazówki Mac OS X, aby dodać skrót klawiaturowy do funkcji blokady ekranu pęku kluczy.
Dla mnie (w wersji 10.8.4) nie rozwiązało to problemu, ponieważ musiałem nacisnąć ctrl+, F8aby przesunąć fokus na pasek stanu, nacisnąć, downaby otworzyć pasek menu pęku kluczy, a następnie nacisnąć ctrl+, F9aby zablokować ekran. Zautomatyzowałem ten proces za pomocą następującego skryptu Apple:
Otwórz Automator, utwórz nową usługę, dodaj
Run Applescript
moduł, skopiuj i wklej powyższy kod i zapisz usługę Automator pod żądaną nazwą. Teraz przejdź do Skrótów klawiszowych w Preferencjach systemowych i dodaj skrót klawiaturowy do świeżo utworzonej usługi Automator. Ustawiłem mój na ctrl+ cmd+ L.Teraz naciśnij skrót klawiaturowy w dowolnej aplikacji, a ekran zostanie natychmiast zablokowany.
Dla tych, którzy zastanawiają się, dlaczego nie skorzystać z innych metod, oto moja opinia na ich temat:
Szybkie przełączanie / blokowanie ekranu użytkownika
Dzięki tej metodzie wylogowuję się z mojej korporacyjnej sieci WPA2. Nie jest to dobre, ponieważ ponowne łączenie czasem zajmuje wieki.
Wygaszacz ekranu + hasło
Replikuje funkcjonalność, ale oznacza to, że jeśli mój laptop będzie nieaktywny przez jakiś czas, gdy czytam papier obok niego, ekran zostanie zablokowany, gdy będę chciał go ponownie użyć. To jest niepożądane. Połączenie tej metody z „gorącym rogiem” ma taki efekt uboczny, że niedoświadczeni użytkownicy komputerów Mac mogą przez przypadek uruchomić ten „gorący narożnik”, co prowadzi do zablokowania ekranu. Czasem też trafiam przypadkiem w gorący kącik, co znacznie utrudnia mi pracę.
Aplikacje innych firm
Wszystko w porządku, ale po co uruchamiać aplikację trzeciej części, jeśli jest natywnie dostępna w systemie operacyjnym?
źródło
W wersji 10.14.6 Mojave uruchamiam silnik wygaszacza ekranu za pomocą tego polecenia:
/System/Library/CoreServices/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
źródło
Używam ustawienia hasła wygaszacza ekranu z naciśnięciem klawisza (Ctrl + Shift + Eject) na 10.6.8, i z tego co widzę, robi to samo co element Zablokuj ekran z ikony paska zadań Dostęp do pęku kluczy.
Wiem, że jest to podobne do niektórych innych odpowiedzi, ale zamiast „gorącego rogu” używa naciśnięcia klawisza, co jest dla mnie wygodniejsze.
To rozwiązanie jest opisane bardziej szczegółowo tutaj, skąd go mam: http://osxdaily.com/2011/01/17/lock-screen-mac/
Używam tego od kilku lat bez problemów.
źródło
Po prostu połącz dwie powyższe odpowiedzi. Uruchom to polecenie:
Po ustawieniu preferencji Bezpieczeństwo i prywatność, aby natychmiast poprosić o hasło. Utwórz alias dla swojej powłoki, jeśli chcesz, aby komenda była łatwiejsza do wykonania.
źródło
FWIW, rozumiem twoją sytuację i sam szukałem tego rozwiązania. Natknąłem się na ten wątek, ponieważ szukałem nieco szybszej metody niż to, co ostatecznie wymyśliłem. Wymyśliłem coś, co, choć nie do końca to, na co liczyłem, działa i jest akceptowalnym kompromisem. Używam tego samego rodzaju skryptów GUI, co pokazuje @markhunte (nieco inna struktura, ale ten sam pomysł), ale zamiast po prostu umieścić to wszystko w przepływie pracy usługi Automator, podzieliłem go na pakiet .app zbudowany z Platypus. Zrobiłem to, ponieważ podczas moich podróży i testów zauważyłem, że usługi Automatora działają bardzo wolno pod pewnymi warunkami. Jeśli komputer Mac znajduje się pod jakimkolwiek stresem, np. Podczas skanowania dysku, oprogramowania A / V robi coś, Mail ściąga wiadomości e-mail itp., wydaje się, że system operacyjny przesuwa usługi na koniec linii. Ma to wpływ na to, że zajmuje kilka sekund, zanim przepływ pracy zostanie uruchomiony (czasami), a czasami nawet kilka sekund przed uruchomieniem poleceń GUI w usłudze. Dość denerwujące, jeśli próbujesz „szybko” zablokować ekran i zajmuje to 10 sekund!
Posiadanie samodzielnej „aplikacji” ma również tę zaletę, że możesz uruchomić dosłownie dziesiątki różnych aplikacji innych firm lub po prostu użyć Spotlight lub usługi Automator do uruchomienia aplikacji. Każda z nich działa. Najszybsze, jakie znalazłem, to stare narzędzie o nazwie Spark, które w cudowny sposób działa nawet w wersji 10.8.4. Nie pytaj mnie, jak to się stało, odkąd był ostatnim wrogiem 10.4! Spark można znaleźć tutaj - Spark
Oprócz tego wszystkiego zwróciłem uwagę na to, że polecenia GUI czasami działają wolno, łącząc się w cocoaDialog i wywołując go jako pierwszy, gdy aplikacja uruchamia się, aby pokazać małą pływającą bańkę na środku ekranu, co wskazuje na blokadę ekranu. Zazwyczaj blokada następuje zaraz po, ale jeśli wystąpi opóźnienie, to przynajmniej daje wizualne „sprzężenie zwrotne”, że nacisnąłeś odpowiednie klawisze. Uaktywniłem też funkcję samoleczenia - jeśli opcja „Włącz dostęp do urządzeń pomocniczych” nie jest włączona, wyświetla ostrzeżenie w oknie dialogowym i umożliwia jej natychmiastowe włączenie. Sprawi to również, że menu dostępu do pęku kluczy jest wyświetlane na pasku menu, ponieważ jest to wymagane lub w przeciwnym razie skryptowe GUI kończy się niepowodzeniem.
źródło
Ctrl- Shift- ⏏ Eject(na starszych komputerach Mac),
Ctrl- Shift- ⌽ Power(na nowszych komputerach Mac )
źródło