Otwórz nowe okno terminala w bieżącej przestrzeni, niezależnie od innych otwartych terminali w innych przestrzeniach


14

Podczas używania Spaces w systemie Mac OS X próba otwarcia nowej instancji terminala powoduje skupienie się na dowolnym miejscu, w którym ostatnio uzyskiwano okno terminala. Za pomocą Findera mogę kliknąć pulpit, a następnie użyć -, Naby utworzyć nowe okno Findera. To, czego szukam, to metoda wykonywania tej samej funkcji dla okien terminala.

Jak mogę utworzyć nową instancję Terminala w bieżącej przestrzeni, niezależnie od tego, czy istnieje inna instancja Terminalu w co najmniej jednej innej przestrzeni.

Dzięki.


podoba mi się pytanie, ale myślę, że powinno to dotyczyć superużytkownika.

Odpowiedzi:


4

Możesz utworzyć nową usługę za pomocą automatora (z folderu aplikacji). W górnej części okna automatyzatora wpisz: Usługa otrzymuje „brak danych wejściowych” w „dowolnej aplikacji”. Następnie w przepływie pracy dodaj „Uruchom applecript”. Spraw, by skrypt jabłkowy zawierał następujące elementy:

on run {input, parameters}

    tell application "Terminal"
        do script ""
        activate
    end tell

    return input
end run

(Możesz dodać dowolne polecenie do wiersza do script między „” (np. Coś przydatnego do uruchomienia, gdy terminal otworzy się po raz pierwszy, uptimejeśli chcesz, lub po prostu pozostaw puste).

Zapisz usługę jako „Otwarty terminal” lub dowolną inną nazwę. Powinien teraz pojawić się w menu usług.

Następnie, jeśli chcesz dodać skrót klawiaturowy, wystarczy przejść do Preferencji systemowych -> Klawiatura -> karta Skróty klawiaturowe, wybrać usługi w menu po lewej stronie i znaleźć nową usługę (prawdopodobnie u dołu). Po prostu kliknij spację po prawej stronie nazwy usługi i przypisz dowolny skrót klawiaturowy, jaki chcesz, i hej presto! wszystko powinno działać


1
Należy zauważyć, że faktycznie zapewnia to żądaną funkcjonalność. Jako drobna zmiana, potrzebujesz do shell script " "linii, aby otworzyć nowe okno w bieżącej przestrzeni, ale nie ma potrzeby, aby skrypt powłoki był pustą przestrzenią. Jeśli jest to puste miejsce, powoduje, że Terminal uruchamia puste miejsce jako polecenie, co prowadzi do opóźnień wykonania i dodatkowej linii w nowym oknie Terminala. Po prostu uczyń go całkowicie pustym ciągiem: do shell script ""a następnie otwiera nowe okno Terminalu, ale nie wydaje w nim żadnych poleceń.
Dakota,

Tak, masz rację. Zaktualizowałem odpowiedź, aby usunąć spację między cytatami. Jednak, aby działać, musi być do script "", a nie do shell script "", jak sugerował
@dakota

3

W przypisaniach aplikacji w Preferencjach systemowych -> Miejsca, ustaw Terminal na „Every Space” lub usuń wpis. Wtedy nie powinno być problemu, aby otworzyć nowe okno Terminalu, gdziekolwiek chcesz, np. Klikając menu kontekstowe dokowania „Nowe okno” (działa, nawet jeśli masz opcję „Podczas przełączania do aplikacji, przełącz się na przestrzeń z otwartymi oknami z tego okna” aplikacja ”włączona).


O ile wiem, pierwsze zdanie jest nieistotne. Ustawienie na „Every Space” nadal zmienia Space podczas otwierania nowego okna za pomocą czegoś takiego jak AppleScript lub skrót klawiszowy, a menu kontekstowe dokowania nigdy nie zmienia spacji niezależnie od tego ustawienia. Jedną interesującą rzeczą w tej odpowiedzi jest opcja „Podczas przełączania do aplikacji przełącz się na przestrzeń z otwartymi oknami z tej aplikacji”. Wyłączenie go „naprawia” przypadek przypisania klawiszy / AppleScript, ale niestety „psuje” kartę poleceń. Gdyby tylko OS-X miał odpowiednie przypisanie klawiszy „cyklicznego okna”, które działało we wszystkich oknach we wszystkich aplikacjach na wszystkich przestrzeniach.
Laurence Gonsalves

@LaurenceGonsalves, możesz przełączać się między wszystkimi oknami terminala we wszystkich przestrzeniach za pomocą klawisza Command-Left / Right Arrow. To pomaga?
Chris Page

@Chris To ciekawy zestaw skrótów, dzięki, ale nie rozwiązują problemu, o którym mówię. Jeśli ustawienie „Podczas przełączania do aplikacji ...” jest wyłączone, a użytkownik znajduje się w miejscu bez okien terminala i po naciśnięciu klawisza Command na „Terminal” nie przełącza się na miejsce, które ma okno Terminal, i Polecenie Cofnij nic nie zrobi. O dziwo, strzałka w lewo / w prawo nie robi nic w tym przypadku (przynajmniej w Snow Leopard). Te klucze będą się przełączać między oknami w przestrzeniach, jeśli okno w bieżącej aplikacji ma fokus, ale jeśli żadne okno nie ma fokusa, nic nie robią.
Laurence Gonsalves,

2
tell application "Terminal"
    do script ""
    activate
end tell

Aby to działało pod Lionem, wpisz powyższe w nowym oknie AppleScript i zapisz je. Wywołaj skrypt za pomocą programu uruchamiającego polecenia, takiego jak QuickSilver, lub przypisz go do skrótu klawiaturowego. Powinno to działać, nawet jeśli ustawiono opcję „Podczas przełączania do aplikacji, przełącz się na przestrzeń z otwartymi oknami dla aplikacji” włączoną w Kontroli misji. Sztuką jest wykonanie polecenia aktywacji na końcu, a nie na początku.


Alternatywnie, stwórz usługę za pomocą Automatora i zaktualizuj ją za pomocą skrótu klawiaturowego ustawionego w Preferencjach systemowych: apple.stackexchange.com/a/13655/36722
Dakota,

0

Jeśli użyjesz menu dokowania, aby otworzyć nowe okno, otworzy się ono w bieżącym miejscu.


Czy można to zrobić za pomocą klawiatury?
Laurence Gonsalves

Control-F3 to „Przenieś fokus do Docka”. Za pomocą klawiszy strzałek można poruszać się po menu ikony Docku terminala. Możesz także wpisać, aby wybrać pozycje menu według nazwy, np. „N” lub „Nowy W”. Zobacz Preferencje systemowe> Klawiatura> Skróty klawiaturowe> Klawiatura i wprowadzanie tekstu, aby zobaczyć wszystkie skróty klawiaturowe do wybierania i poruszania się po interfejsie użytkownika.
Chris Page

Można to zrobić. Musisz utworzyć specjalną usługę za pomocą Automatora, którą możesz następnie powiązać ze skrótem klawiaturowym z Preferencji systemowych: apple.stackexchange.com/a/13655/36722
Dakota,

0

Możesz wyłączyć spacje przełączające OSX automatycznie podczas przełączania aplikacji za pomocą następujących poleceń:

defaults write com.apple.dock workspaces-auto-swoosh -bool NO
killall Dock

Działa na 10.6.8


Jest to również ustawienie GUI, jest to w „Mission Control”.
SilverWolf - Przywróć Monikę
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.