Jak umieścić niestandardowy program uruchamiający w Docku (Mavericks)

14

Jestem nowy w systemie Mac OS (obecnie używam Mavericks) i przeprowadziłem wyszukiwanie w Google, a także w StackExchange dotyczące mojego pytania, ale dyskusje, na które natrafiłem, nie odpowiadają na moje pytanie.

Pochodzę ze świata linux i dla mnie trywialne jest ustawienie niestandardowego polecenia w panelu gnome, a następnie wstawienie dowolnego argumentu, który mi się podoba; wiele z tych poleceń wywołuje Xterm.

Załóżmy na przykład, że chcę utworzyć program uruchamiający, aby połączyć się ze zdalnym serwerem za pomocą wielu argumentów, jak poniżej.

xterm -fg orange -bg black -e ssh me@myserver

Obchodzę post, który sugeruje, że używam automatu. Nie jestem jednak w stanie tego zrobić z powodzeniem.

Do tej pory mam w automatorze

open -a "/opt/X11/bin/xterm" --args "-fg orange -bg black -e ssh me@myserver"

jednak to polecenie nie działa poprawnie i nie jestem pewien, jak rozwiązać ten problem.

Dzięki Les ps Zauważ, że jeśli uruchomię Terminal i napiszę Xterm, uruchomi się zgodnie z oczekiwaniami

Lee Sande
źródło
Dlaczego nie skorzystać z wbudowanego terminala? Jest bardzo wysoce konfigurowalny i możesz emulować X-term. Terminal ma wiele zalet, takich jak tryb pełnoekranowy, kopiowanie / wklejanie za pomocą + ci + v. Pozwala także budować własne profile niestandardowe, pozwalając na niestandardowe czcionki, przezroczystość, a nawet domyślne polecenia uruchamiane przy uruchamianiu (np. Uruchamianie sesji SSH).
Alexander - Przywróć Monikę

Odpowiedzi:

16

Możesz napisać go jako skrypt powłoki w akcji Uruchom skrypt powłoki w Automatorze:

Automator

Zapisz go z typem aplikacji (zamiast przepływu pracy) i umieść w folderze aplikacji. Można go teraz umieścić w Docku.

Alexander - Przywróć Monikę
źródło
2
Masz pomysł, jak mogę zmienić ikonę tego pliku wykonywalnego?
Lee Sande,
1
Możesz zmienić ikonę praktycznie dowolnego woluminu / folderu / pliku, naciskając + ii wklejając dowolny plik obrazu do studni dobrze w lewym górnym rogu
Alexander - Przywróć Monikę
Dziękuję za odpowiedź. Zrobiłem Apple + I, a następnie przeciągnąłem i upuściłem obraz (plik png); jednak ikona zmienia się w ogólną ikonę typu MIME pliku „PNG”, a nie rzeczywisty obraz. Czy muszę mieć określony format pliku dla ikon? Wykonałem także kroki tutaj ( 365icon.com/icon-styles/dock-icons/how-to-change-mac-dock-icons ), ale nawet po wklejeniu nowego obrazu (po wybraniu ikony w lewym górnym rogu) nowy obraz nie pojawia się (po ponownym uruchomieniu programu).
Lee Sande
2
Ups, powinienem był lepiej wyjaśnić: musisz wkleić sam obraz, a nie plik obrazu. Najszybszym sposobem, w jaki mogę to zrobić, jest dwukrotne kliknięcie pliku obrazu (aby otworzyć go w Preview.app), naciśnięcie + a, skopiowanie zaznaczenia i wklejenie go do obrazka
Alexander - Przywróć Monikę
1
Nie mogę oceniać, ponieważ nie mam wystarczającej reputacji, aby to zrobić. Przepraszam.
Lee Sande,
2

Automator i AppleScript to najlepsze sposoby tworzenia niestandardowych skryptów / aplikacji wykonujących polecenia zgodnie z opisem. Każdy ma swoje zalety i wady. Do większości zadań wolę pisać AppleScripts, prawdopodobnie dlatego, że sam jestem programistą oraz dlatego, że są one łatwo dostępne i edytowane.

Do pisania AppleScripts możesz użyć dostarczonego programu OS X o nazwie „AppleScript Editor”. Edytor AppleScript umożliwia pisanie skryptów AppleScript i zapisywanie ich jako rzeczywistych plików AppleScript z rozszerzeniem .scpt lub jako aplikacja (.app), którą można uruchomić z dowolnego miejsca.

Jeśli zapiszesz swój AppleScript w formacie AppleScript (.scpt) i za pomocą aplikacji o nazwie FastScripts (dostępnej również w Mac App Store), wszystkie osobiste skrypty i skrypty systemowe mogą być łatwo dostępne w pasku narzędzi. Szybkie skrypty zapewniają dodatkową korzyść polegającą na przypisywaniu do nich skrótów klawiaturowych. Możesz zrobić to samo z przepływami pracy Automatora, po prostu uważam, że łatwiej jest to zrobić z AppleScripts i FastScripts.

Oto przykładowy plik AppleScript, który utworzyłem wcześniej na tablicach, który przełącza widoczność ukrytych plików w systemie OS X. Jest to jeden z moich bardziej podstawowych skryptów, dlatego pokazuję go jako przykład tego, jak proste jest to napisać AppleScript. Za pomocą FastScripts ustawiłem skrót klawiaturowy ^+ + +, .aby aktywować ten skrypt.

tell application "System Events"

    set hiddenFilesDisplayStatus to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    set hiddenFilesNewDisplayStatus to "NO"

    if hiddenFilesDisplayStatus is "NO" then
        set hiddenFilesNewDisplayStatus to "YES"
    end if

    do shell script "defaults write com.apple.finder AppleShowAllFiles " & hiddenFilesNewDisplayStatus
    do shell script "killall Finder"

end tell

Mam wiele innych skryptów AppleScript, które wykonują różne zadania, więc jeśli byłbym tobą, najpierw spójrz na AppleScripts, a następnie skorzystaj z Automatora. Istnieje wiele zasobów pomocnych w tworzeniu AppleScripts, a przekonasz się, że istnieje wiele innych, które już napisały AppleScripts, które mogą już robić to, czego szukasz.

Aby odpowiedzieć na konkretny przypadek użycia

Spróbuj utworzyć AppleScript za pomocą następującego polecenia, zwróć uwagę na pełną ścieżkę do xterm. Na mojej maszynie było inaczej niż twoje. Ważne jest, aby pamiętać, że mam XQuartz zainstalowany na moim komputerze, ponieważ Mavericks nie jest już dostarczany z X11.

do shell script "/usr/X11/bin/xterm -fg orange -bg black -e ssh me@myserver"

Próbowałem powyższego polecenia, wskazałem na mój serwer i działało dobrze. Byłoby naprawdę fajnie, gdybyś działał z tym AppleScript, że możesz nawet skonfigurować AppleScript, aby prosił o podanie nazwy użytkownika i serwera, z którym chcesz się połączyć, i ustawi to w poleceniu skryptowym powłoki a jeśli nic nie zostanie podane, możesz ustawić domyślną nazwę użytkownika / serwer. :)

Do Twojej wiadomości, doszedłem do rozwiązania problemu patteringu Xterma, korzystając z tego artykułu SO: /programming/11206872/open-xterm-telnet-connection-mac-os-x

Anil Natha
źródło
Dziękujemy za odpowiedź i link do problemu ze ścieżką w Xterm.
Lee Sande,