Utwórz polecenie, aby skupić określone okno z dowolnego miejsca w systemie operacyjnym


10

Podczas programowania dla Internetu często przeskakuję między edytorem tekstu a przeglądarką. Chciałbym ustawić skrót klawiaturowy na poziomie systemu operacyjnego, który pozwala mi przeskakiwać do określonego, definiowalnego okna za każdym razem. Jeszcze lepsza byłaby możliwość wydania tej aplikacji polecenia wykonania polecenia, ale zachowam to na później.

Czy są dostępne technologie, które pozwolą mi to zrobić? Musi być coś pomiędzy C i AppleScript, które pozwoli mi stworzyć tego rodzaju interakcję. Czy ktoś wie od czego zacząć?

Dzięki.

Odpowiedzi:


2

Powinieneś spróbować Automatora. Możesz „Nagrać” nową usługę (którą możesz później opublikować dla wszystkich aplikacji i przypisać skrót klawiaturowy), która kliknie aplikację w Docku. W rzeczywistości możesz dodać więcej akcji i wykonać polecenie „powiedz tej aplikacji, aby coś wykonała”.

Próbowałem utworzyć taki (który jest względnie bezużyteczny, ale działa), który kliknie Mail w moim Docku, a następnie kliknie ikonę pobierania nowej poczty na pasku narzędzi. Zabawa ;)

W załączeniu znajduje się strzał wyniku Automatora:

Automator

Użyłem przycisku Nagrywaj w prawym górnym rogu, a następnie sam wykonałem czynności (kliknąłem ikonę dokowania Poczty, następnie kliknąłem ikonę Pobierz nową pocztę na pasku narzędzi, a następnie kliknąłem „Zatrzymaj rejestrowanie”). Proszę zauważyć, że wybrałem „Usługa odbiera [brak danych]” w pierwszym polu kombi, ponieważ nie byłem zainteresowany żadnymi danymi wejściowymi.

Daje to wiele możliwości posiadania kilku usług, które pozwalają przeglądać TextEditor i przeglądarkę.

Automator znajduje się za pomocą Spotlight i pisania Automator (znajduje się również w /Applications/Automator.app)

W tym przypadku stworzyłem nową „usługę”, ale prawdopodobnie możesz uciec, tworząc „skrypty”. Nie jestem pewien, który z nich byłby szybszy. Eksperyment. Automator jest twoim przyjacielem.


5

Możesz zrobić coś takiego z AppleScript:

tell application "Terminal"
    activate
    windows where name contains "bash"
    if result is not {} then set index of item 1 of result to 1
end tell

Lub za pomocą Zdarzenia systemowe:

tell application "System Events" to tell process "Terminal"
    set frontmost to true
    windows where title contains "bash"
    if result is not {} then perform action "AXRaise" of item 1 of result
end tell

1

Używam BetterTouchTool do ustawiania różnych skrótów klawiaturowych lub gestów gładzika w Mac OS X. Jedną z akcji, które można uruchomić, jest polecenie Wykonaj polecenie terminalu

Więc w ustawieniach polecenia podaję następujące:

osascript -e 'tell application "NameOfTheApplicationHere" to activate'

Oto przykład z preferencji BetterTouchTool:

wprowadź opis zdjęcia tutaj


1

Miałem wiele problemów z uruchomieniem tego z iTerm2. Oto rozwiązanie jednego polecenia:

  osascript -e 'tell application "System Events" to tell process "iTerm2"' \
            -e 'set frontmost to true' \
            -e 'if windows is not {} then perform action "AXRaise" of item 1 of windows' \
            -e 'end tell'
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.