Czy mogę utworzyć skrót, aby otworzyć konkretną aplikację w systemie OS X?


51

Chcę utworzyć skrót klawiaturowy, aby np. Otworzyć Firefox podczas pracy w innej aplikacji. Wiem, że mogę używać ⌘ CMD+, Tgdy jestem w przeglądarce Firefox, aby otworzyć nową kartę.

Nie znalazłem sposobu na utworzenie tego rodzaju skrótów w Preferencjach systemowych.

Jakieś pomysły?


1
Masz na myśli skróty klawiaturowe ?
Rabarberski

Spójrz na Usługi w menu aplikacji, każda rozsądnie napisana aplikacja Cocoa będzie miała te i można im przypisać klucze. Niestety myślę, że Firefox nie jest napisany, aby z nich korzystać. Można tu korzystać z Safari
użytkownik151019,

Być może nie była to opcja w 2011 r., Kiedy pytanie zostało zadane po raz pierwszy, ale teraz jest dość łatwe do zrobienia za pomocą Automatora. Samouczek można znaleźć na howtogeek.com/209725/ ...
Edward Falk

Dość zdumiewające jest dla mnie, że Apple, ze swoją chlubną użytecznością, nie widziało, aby wbudowanie w MacOS było prostym sposobem przypisania skrótu klawiszowego do uruchomienia aplikacji.
Teemu Leisti

Odpowiedzi:


44

Elementy karabinka (10.12 i nowsze)

Karabiner przestał działać w 10.12 z powodu zmian w architekturze jądra, a Karabiner został przepisany jako Karabiner-Elements, który używa nowego formatu JSON dla plików konfiguracyjnych.

Możesz teraz dodać taką regułę do karabiner.json( https://pqrs.org/osx/karabiner/json.html ):

{
  "from": {
    "key_code": "t",
    "modifiers": {
      "mandatory": [
        "right_option"
      ]
    }
  },
  "to": [
    {
      "shell_command": "open -aterminal"
    }
  ],
  "type": "basic"
}

To powoduje, że krótkie naciśnięcie prawego klawisza poleceń otwiera Emacsa:

{
  "from": {
    "key_code": "right_command",
    "modifiers": {
      "optional": [
        "any"
      ]
    }
  },
  "to": [
    {
      "key_code": "right_command",
      "lazy": true
    }
  ],
  "to_if_alone": [
    {
      "shell_command": "open -aemacs"
    }
  ],
  "type": "basic"
}

Karabiner (10.11 i wcześniejsze)

Zapisz taki plik jako private.xml :

<?xml version="1.0"?>
<root>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_Safari</name>
    <url>file:///Applications/Safari.app</url>
  </vkopenurldef>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_iTunes</name>
    <url>file:///Applications/iTunes.app</url>
  </vkopenurldef>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_EMACS</name>
    <url>file:///Applications/Emacs.app</url>
  </vkopenurldef>
  <item>
    <name>custom</name>
    <identifier>custom</identifier>
    <autogen>__KeyToKey__ KeyCode::F11, KeyCode::VK_OPEN_URL_Safari</autogen>

    <!-- change the right option key into an extra modifier key -->
    <autogen>__KeyToKey__ KeyCode::OPTION_R, KeyCode::VK_MODIFIER_EXTRA1</autogen>

    <autogen>__KeyToKey__ KeyCode::I, ModifierFlag::EXTRA1, KeyCode::VK_OPEN_URL_iTunes</autogen>

    <!-- make a short press of the right command open Emacs -->
    <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_R, KeyCode::COMMAND_R, KeyCode::VK_OPEN_URL_EMACS</autogen>
  </item>
</root>

Alfred 2

Jeśli kupiłeś Powerpack dla Alfreda 2, możesz utworzyć taki przepływ pracy:

Klawisze skrótów mają domyślnie krótkie opóźnienie, ale można je zmniejszyć, zmieniając opcję „Zachowanie wyzwalacza” z „Symuluj zwolnione klawisze modyfikujące” na „Przekaż klawisze modyfikujące (najszybsze)”:

Usługi automatora

Otwórz Automator, wybierz „Usługa” jako typ dokumentu, zmień „Usługa odbiera” z „tekstu” na „brak danych wejściowych”, dodaj akcję „Uruchom aplikację” i zapisz usługę. Następnie przypisz skrót klawiaturowy do usługi z „Preferencji systemowych> Klawiatura> Skróty> Usługi”.

Nie polecam tej opcji, ponieważ przynajmniej w moim systemie opóźnienie jest w przybliżeniu około pół sekundy, zanim aplikacja zostanie skoncentrowana za pomocą skrótu klawiaturowego utworzonego za pomocą tej metody, a opóźnienie jest często jeszcze dłuższe. Wystąpił również błąd od 10.7, w którym skróty klawiaturowe dla usług Automatora nie zawsze działają, dopóki nie najedziesz myszą na menu usług z paska menu. (Edycja: minęło już 8 lat od napisania tej odpowiedzi, a błąd nadal nie został naprawiony.) Również skróty klawiaturowe dla usług nie są dostępne w niektórych aplikacjach, takich jak Emacs.


3
private.xml GDZIE? Gdziekolwiek? Czy to już istnieje? Nie mogę tego znaleźć Dokąd to zmierza?
boulder_ruby

@boulder_ruby, /Library/Application Support/Karabiner/private.xml. Lub otwórz Karabiner GUI> zakładkę misc & uninstall> zakładkę „Open private.xml”. Miałem dokładnie taką samą trudność.
Alexander Bird

Karabiner-Elements jest niesamowity, teraz kiedy wiem, że mogę modyfikować jego ustawienia bezpośrednio w pliku json. Dzięki! 😃
Quinn Comendant

2
Ułóż jeden automatyzator na górze, co jest najłatwiejsze dla większości ludzi
Harry

8

Alfred

Alfred w wersji Power Pack może mapować skróty do aplikacji, a także wiele innych funkcji.


5

Jeśli nie chcesz korzystać z aplikacji innych firm.
Następnie możesz użyć Automatora (Usługi) i wbudowanych skrótów klawiaturowych.

Oto jak w odpowiedzi na podobne pytanie.

Bardzo proste.

W kroku 3 tworzenia usługi.
Ustaw na „dowolną aplikację”.

tzn.
ustaw Usługa odbiera na: „brak danych wejściowych” w „dowolnej aplikacji” (zrób to, korzystając z rozwijanych menu u góry).


Miło wiedzieć, dlaczego głosowano w tej sprawie w dół. Brak komentowania głosów oddanych nie jest pomocny dla nikogo
markhunte 15.04.13


5

Pobierz Quicksilver, http://www.blacktree.com/ , pozwoli to ustawić skróty klawiaturowe do otwierania aplikacji. W rzeczywistości jest o wiele więcej aplikacji, które to robią (Alfred, Keyboard Maestro itp.)

Mac OS X faktycznie ma wbudowaną funkcję tego, ale nie działa w przeglądarce Firefox, ponieważ nie obsługuje usług! http://hints.macworld.com/article.php?story=20090903085255430

Aktualizacja styczeń 2012: Blacktree nie aktualizuje już Quicksilver - programista poszedł do Google i wydał Google Quick Search Box . Quicksilver żyje, ale ma nowy dom na qsapp.com .


Dzięki. Był dla mnie bardzo pomocny. używał Google, ale nie znalazł twojego linku.
politicus

Fajnie, więc przyszedłeś?
Paul Eccles,

1
"Tak". Zainstalowany Quicksilver (bardzo potężny, z pewnością lepszy niż tylko skrót). Wypróbowana klawiatura Maestro. Teraz odpocznij, zanim
nauczysz się

Quicksilver jest świetny. Dziękuję bardzo za radę. Stworzyłem skrypt bash do otwierania Gmaila, a drugi do otwierania mysms w przeglądarce. Następnie użyłem skryptu appify, aby utworzyć aplikacje dla systemu OS X. Stamtąd mogłem użyć Quicksilver, aby mieć skróty klawiaturowe, aby je uruchomić. Bardzo miło mieć. mathiasbynens.be/notes/shell-script-mac-apps
jbrock

2

Jest tu wiele dobrych opcji, ale chciałem dodać moją ulubioną, z której korzystam od 10.5 i nadal działa w 10.11.2: Spark 3 .

http://www.shadowlab.org/Software/spark.php

Jest darmowy i niezwykle łatwy w konfiguracji. Oto opis programisty:

Spark to potężny i łatwy w obsłudze menedżer skrótów. Za pomocą Spark możesz tworzyć Klawisze skrótów, aby uruchamiać aplikacje i dokumenty, uruchamiać AppleScript, sterować iTunes i więcej ... Możesz także eksportować i importować bibliotekę Klawiszy skrótów lub zapisać ją w formacie HTML, aby wydrukować. Spark jest darmowy, więc używaj go bez moderacji!

Oto zrzut ekranu interfejsu:

Interfejs użytkownika Spark


2

Zauważyłem, że Apptivate jest najłatwiejszy w użyciu. Wystarczy wybrać aplikację i przypisać skrót globalny. Otóż ​​to.


1

Wiem, że Alfred już został wspomniany, ale pomyślałem, że powiem trochę o wyborze klawiszy skrótu. Na początku nie było dla mnie oczywiste, jaki byłby dobry zestaw skrótów, który był (a) łatwy do zapamiętania, (b) łatwy w użyciu i (c) nie powodował konfliktu z innymi klawiszami skrótów systemowych lub aplikacyjnych.

Skończyło się na tym, że użyłem klawisza „alt” jako podstawy i ogólnie polegałem na klawiszach, które mogą być uruchamiane lewą ręką, i wybrałem litery opisowe (np. X dla Excela). pozwala to trzymać mysz w prawej ręce, a klawisze skrótów uruchamiane lewą.

Kolejną zaletą korzystania z Alfred Hotkeys do aktywacji aplikacji jest to, że jeśli aplikacja jest ukryta, zostanie ona ukryta.

Oto zrzut ekranu, jak to skonfigurowałem: przykładowa konfiguracja alfredowego skrótu


1

Aby otworzyć terminal za pomocą skrótu klawiaturowego bez oprogramowania innych firm:

  • Otwórz Automator ( ⌘ + spacja , a następnie wpisz Automator)
  • Przejdź do Plik -> Nowy
  • Wybierz Szybkie działanie (lub Usługa , w zależności od wersji komputera Mac)
  • Tam, gdzie jest napisane, że Workflow odbiera , wybierz brak danych :

jak otworzyć terminal Mac za pomocą skrótu klawiaturowego

  • W kolumnie Działania wyszukaj tekst Uruchom AppleScript i przeciągnij go do prawej kolumny
  • Wklej to w obszarze skryptu:

    on run {input, parameters}
    
        tell application "Terminal"
            do script ""
            activate
        end tell
    
    end run
    

PS: Usuń, do script ""jeśli nie chcesz nowej instancji terminala za każdym razem, gdy naciskasz klawisz skrótu.

  • Kliknij Plik -> Zapisz i nadaj mu dowolną nazwę

Mac otwarty terminal ze skrótem klawiaturowym

  • Teraz zamknij Automator i otwórz Preferencje systemowe -> Klawiatura -> Skróty
  • W lewej kolumnie kliknij „Usługi”
  • Przewiń w dół do samego dołu, powinieneś zobaczyć właśnie zapisany skrypt. Kliknij none, aby przypisać do niego skrót.

Należy jednak pamiętać, że skrót klawiszowy musi być unikalny we wszystkich aplikacjach. Jeśli przypiszesz wspólny klawisz skrótu, taki jak ⌘ + T , i spróbujesz otworzyć terminal podczas przeglądania, będzie on w konflikcie z klawiszem skrótu większości przeglądarki, aby otworzyć nową kartę, więc nie będzie działać. Dlatego powinieneś wypróbować skrót, który nie spowoduje konfliktu z żadną aplikacją.

Wybrałem ⌘ + ⌥ + F12 . Działa całkiem dobrze.

Aktualizacja

Jeśli używasz iTerm2 + Oh My zsh , wystarczy zastąpić Run AppleScript z uruchomieniu aplikacji w Automator i wybierz iTerm.app z listy.


Nie musisz używać AppleScript: istnieje akcja Uruchom aplikację.
benwiggy

1

Jeśli aplikacja jest terminalem, ma to już klawisze skrótów skonfigurowane w Preferencjach: Preferencje systemowe Skróty klawiaturowe Nowy terminal w folderze ^+ +T

Nowy terminal w folderze kart + ^+ +T


Zauważ, że odpowiedziałbym na to klawiszem skrótu do pytań uruchamiających Terminal. Jednak nie można na nie odpowiedzieć, ponieważ są oznaczone jako duplikaty tego pytania.
Max MacLeod

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.