Mogę wybrać w Syst Prefs, aby zawsze wyświetlać pasek menu lub ukrywać się z auto-show (auto-show jest pokazywany po najechaniu myszą, lub pokazany za pomocą skrótu klawiaturowego).
Ale kiedy pracuję, pasek menu powinien być zawsze widoczny. A kiedy odtwarzam, zwykle chcę to ukryć.
Podoba mi się to ze stacją dokującą, którą mogę nacisnąć, commandoptiondaby pokazać lub ukryć stację dokującą, i pozostaje ona widoczna lub ukryta, dopóki nie naciśnie tego samego skrótu.
Chciałbym, aby pasek menu również działał w ten sposób. Czy można w jakiś sposób stworzyć taki skrót?
⌃⌘M
i działa świetnie! Znacznie lepiej niż jako powiązanie klucza usługi Automatora i Preferencji systemowych.Odpowiedzi:
Wprowadzamy drobne poprawki w oryginalnym kodzie z odpowiedzi użytkownika3439894. Uruchomienie tego poprawionego kodu nie spowoduje wyświetlenia aplikacji preferencji systemowych.
W niektórych komentarzach do mojej odpowiedzi wskazano, gdzie mam w skrypcie polecenie opóźnienia, co powoduje, że skrypt nie działa. W moim systemie ten skrypt działa.
Jednak ten skrypt w moim systemie nie będzie działać, jeśli wstawię polecenie opóźnienia przed zdarzeniem systemowym.
źródło
delay
! W takim przypadku należy zaznaczyć pole wyborudelay
przedSystem Events
kliknięciem , aby umożliwić dostęp do elementu i nie musi on istnieć wcześniej, zwłaszcza gdy jest zagnieżdżony, jak napisane jest moje.quit
delay
że masz to miejsce, ale gdy kod, jak napisano, zawodzi w moim systemie, a nie twój, to dlatego niektóre skrypty interfejsu użytkownika nie zawsze są wiarygodne dla każdej osoby system. Wyłącznie z programowego punktu widzenia, pole wyboru musi być dostępne, zanim będzie można na nie zareagować, z tego samego powodu, dla którego nie można zamknąć aplikacji przed działaniem i dlaczego opóźnienie jest właściwie odpowiednie w dowolnym miejscu (lub z jakichś powodów potrzebne) ) i może wymagać różnych wartości w zależności od konkretnego systemu i jego ogólnego wykorzystania.Zapytałeś: „ Czy można utworzyć skrót w celu przełączania widoczności paska menu (który zachowałby się tak, jak robi to stacja dokująca)? ”, A krótka odpowiedź brzmi: tak .
Jednak dłuższą odpowiedzią jest, chociaż technicznie i natywnie jest możliwe utworzenie przepływu pracy usługi Automatora, do którego przypisany jest skrót klawiaturowy do ukrywania / odkrywania paska menu w OS X 10.11 i nowszych, w tym w bieżącym systemie macOS, nie jest bez problemów.
Możliwe obejście drugiego punktu powyżej byłoby, gdyby istniała aplikacja innej firmy, którą można globalnie ustawić tak, aby uruchamiała przepływ pracy usługi Automator (lub kod AppleScript jako skrypt AppleScript lub aplikacja nie korzystająca z usługi Automator). Może to obejmować aplikacje takie jak Alfred, FastScripts, Karabiner, Karabiner-Elements, Keyboard Maestro itp., A ponieważ nie testowałem aplikacji innych firm w tym konkretnym scenariuszu, mogę tylko to zaoferować.
A co powiesz na aplikację AppleScript, którą możesz umieścić w Docku, więc można ją łatwo kliknąć, aby przełączyć stan paska menu? Musisz tylko dodać tę aplikację AppleScript do Preferencji systemowych> Bezpieczeństwo i prywatność> Prywatność> Dostępność, aby działała.
Zamiast aplikacji innej firmy lub jako usługi Automatora i tak jak zwykłej aplikacji AppleScript, masz wbudowany skrót klawiaturowy za pomocą Spotlight, w którym naciskasz ⌘spacei pierwszą lub dwie litery nazwy, którą nadałeś aplikację AppleScript, a następnie naciśnij enter. Na przykład nazwij go tmb.app, aby przełączyć pasek menu, po którym naciśnij, ⌘spacetmenteraby uruchomić aplikację AppleScript. W końcu podwójnie masz już zainstalowaną aplikację o nazwie tm .
Jednak powiedziawszy, nie jest również pozbawione możliwych problemów, ponieważ polega na skryptowaniu interfejsu użytkownika, co oznacza, że musi otworzyć Preferencje systemowe w ustawieniach ogólnych i kliknąć pole wyboru „Automatycznie ukryj i pokaż pasek menu” i zamknąć Preferencje systemowe. Oznacza to, że po uruchomieniu aplikacji musisz ją uruchomić, a nie ręcznie wykraść fokus z Preferencji systemowych podczas zdarzeń skryptowych interfejsu użytkownika. Innymi słowy, musisz przerwać wielozadaniowość na kilka sekund.
Częściowo jednym z problemów związanych z używaniem AppleScript i / lub skryptów interfejsu użytkownika do ukrywania / odkrywania paska menu jest to, że nie jest tak wdzięczne, jak ukrywanie Docka za pomocą wbudowanego skrótu klawiaturowego, ale jest to przynajmniej wykonalne.
To powiedziawszy, oto kod AppleScript, którego można użyć w skrypcie / aplikacji AppleScript, usłudze Automator lub ewentualnie w aplikacji innej firmy, która przełącza stan paska menu w OS X 10.11 i nowszych za pomocą skryptów interfejsu użytkownika.
Uwaga: nie ma sprawdzania błędów, aby upewnić się, że ten kod działa w systemie OS X 10.11 i nowszych, więc nie próbuj używać go w wersjach systemu OS X wcześniejszych niż 10.11. Należy również pamiętać, że wartość
delay
polecenia może wymagać dostosowania w zależności od warunków pracy systemu.źródło
activate
naset bounds of window 1 to {0, 0, 0, 0}
i tak nie widać okno Preferencje systemowe, ale to sprawia, że zmiany. Możesz po prostu pominąć oba te elementy i nie powinieneś widzieć interfejsu użytkownika.tmb
a następnie kolejne wyszukiwania tylko tm show tmb przed Time Machine . To powiedziawszy, możesz nazwać to czymś innym, co prawie nie pasuje do niczego innego. Właśnie zaproponował TMB , jak to sprawia, że łatwe do zapamiętania dla Przełącz pasku menu , którego pełna nazwa tak nie przyniesie aż Time Machine ale aby mógł złapać się na innych rzeczach też. Musisz dowiedzieć się, która konwencja nazewnictwa działa najlepiej, gdy musisz wpisać tylko jeden lub dwa znaki po⌘space
.Zamieszczam to jako drugą odpowiedź zamiast edycji mojej oryginalnej odpowiedzi, ponieważ ta nowa wersja przykładowego kodu AppleScript rozwiązuje problemy podniesione przy użyciu polecenia i gdzie została umieszczona w kodzie przedstawionym przez wch1zpink i mnie między naszymi wersjami kod .
delay
Nowy kod owija znacznie mniejszą wartość dla
delay
komendy wrepeat
pętli , co powoduje, że w ciągu całego kodu działają szybciej przy jednoczesnym różnicę rozrządu na podstawie specyfikacji systemowych komputera to było uruchomić na. Dodatkowo, ze względu na użycie skryptów interfejsu użytkownika , dwierepeat
pętle zapewniają, że elementy interfejsu użytkownika są dostępne i / lub zostały odpowiednio zmienione przed przejściem dalej w kodzie .Ten kod został przetestowany w systemie macOS High Sierra i działał jako aplikacja AppleScript , usługa Automator , jak opisano w mojej oryginalnej odpowiedzi, oraz jako plik .scpt AppleScript uruchamiany przez FastScripts z przypisanym skrótem klawiaturowym, podobnie jak w przypadku usługi Automator .
Przykładowy kod AppleScript :
Przewiń w razie potrzeby, aby wyświetlić pełny kod .
Uwaga: Przykładowy kod AppleScript jest właśnie taki i, oprócz uwzględnionej obsługi błędów, nie zawiera żadnej dodatkowej obsługi błędów, która może być odpowiednia. Obowiązek polega na dodaniu obsługi błędów, które mogą być odpowiednie, potrzebne lub pożądane. Zajrzyj do instrukcji try i instrukcji błędu w Przewodniku językowym AppleScript . Zobacz także Praca z błędami .
Pamiętaj też, że nie jestem związany z Red Sweater Software , twórcą FastScripts , tylko zadowolony użytkownik ich produktu.
źródło
Instrukcje tutaj: https://appleinsider.com/articles/18/03/14/how-to-create-keyboard-shortcuts-to-launch-apps-in-macos-using-automator
źródło