Globalny skrót do pokazywania / ukrywania określonej aplikacji w OS X? [duplikować]

10

Możliwa duplikat:
Uruchom aplikację OS X za pomocą skrótu klawiaturowego

Czy można zdefiniować globalny skrót klawiszowy do pokazywania / ukrywania określonej aplikacji w OS X?

Na przykład chcę móc wyświetlać / ukrywać Safari za pomocą Cmd+ Space.

Roman Dolgiy
źródło
Związane z uruchamianiem aplikacji OS X za pomocą skrótu klawiaturowego - superużytkownik . Zredagowałem swoją odpowiedź na to pytanie, aby uwzględnić aplikacje innych firm, które obsługują wyzwalacze typu „pokaż lub ukryj”. Dodałem także AppleScript do wyświetlania lub ukrywania aplikacji.
Lri

Odpowiedzi:

7

Otwórz Automator , wybierz, aby utworzyć usługę , skonfiguruj, aby nie otrzymywała danych wejściowych w żadnej aplikacji .

W bibliotece kliknij dwukrotnie Narzędzia »Uruchom AppleScript i wprowadź następujące polecenie w dużym polu tekstowym:

on run {input, parameters}

    tell application "System Events"
        set names to name of application processes
        if names contains "Safari" then
            tell application process "Safari"
                if visible then
                    set visible to false
                else
                    # use the following to simply have it reappear:
                    set visible to true
                    # use the following to focus Safari:
                    tell application "Safari" to activate
                end if
            end tell
        else
            display dialog "Safari is not running"
        end if
    end tell

    return input
end run

Zapisz pod dowolną nazwą. Przypisz skrót klawiaturowy w Preferencjach systemowych »Klawiatura» Skróty klawiaturowe »Usługi . Pamiętaj, aby wyłączyć skrót Spotlight Cmd-Space.

Daniel Beck
źródło
2
Zamiast tego display dialogmożesz alternatywnie tell application "Safari" to activateuruchomić go, jeśli nie jest uruchomiony.
Daniel Beck
3

Zapisz w AppleScript Editor i przypisz skrót do uruchamiania skryptu w OS X.

tell application (path to frontmost application as text)
    if name is "TextEdit" then
        set bid to id
        tell application "System Events" to tell (process 1 where bundle identifier is bid)
            set visible to false
        end tell
    else
        tell application "TextEdit"
            reopen
            activate
        end tell
    end if
end tell
  • Jeśli docelowa aplikacja jest obecnie na pierwszym planie, ukryj ją
  • W przeciwnym razie aktywuj go
Lri
źródło
Zachowanie tego skryptu jest następujące: Jeśli TextEdit jest aplikacją z przodu, zostanie ukryta, w przeciwnym razie zostanie przeniesiona na przód. Zatem ten skrypt nie ukryje aplikacji, jeśli jest widoczna, ale nie na wierzchu, zamiast tego przenosząc ją na przód.
Daniel Beck
Sprytne zachowanie. Właśnie brakowało mi wyjaśnienia, w jaki sposób skrót zachowuje się w twoim poście - myślę, że byłoby to pomocne.
Daniel Beck
Dziękuję Ci! Zaznaczyłem odpowiedź Daniela jako pierwszego.
Roman Dolgiy,
-3

CMD + W ukryje okna. Działa to globalnie. Jednak, aby do nich wrócić, musisz kliknąć ikony stacji dokującej. W przeglądarce zamknie jednak kartę.

Aleksandr Vysockij
źródło
Nie. Cmd + W zamyka okna.
daviesgeek
Dodatkowo użytkownik pyta o aplikacje , a nie Windows . W OS X jest bardzo duża różnica.
Daniel Beck