Czy istnieje sposób na ukrycie niektórych aplikacji w menu cmd + tab?

39

Czy istnieje sposób na ukrycie niektórych aplikacji przed cmd+ tab?

Problem, przed którym stoję, polega na tym, że niektóre aplikacje (takie jak iTunes i oczywiście Finder) zawsze są otwarte. Ale kiedy pracuję i przełączam między aplikacjami, które są dla mnie odpowiednie (Chrome, Sublime, Terminal) za pomocą cmd+ tab, zawsze zobaczę te „nieistotne” aplikacje w menu.

Dzięki

wpp
źródło

Odpowiedzi:

37

Tak, jest to możliwe, jednak jedyny znany mi sposób to ukrywanie ikony doku.

musisz zmodyfikować plik o nazwie „Info.plist” w pakiecie aplikacji (tj. Sherlock.app/Contents/Info.plist). Otwórz ten plik w swoim ulubionym edytorze tekstu i dodaj następującą sekcję (jeśli jest już obecny, po prostu zmień 0 na 1 w znaczniku łańcucha):

<key>LSUIElement</key>
<string>1</string>

Źródło: Ukryj ikonę Docka dowolnego programu - Macworld Mac OS X Wskazówki

W najnowszej wersji systemu macOS ciąg znaków nie powinien być ustawiony dla LSUIElement. Zamiast tego musisz użyć wartości logicznej w następujący sposób:

<key>LSUIElement</key>
<true/>

Przed OS X 10.8 użyj tego zamiast tego (uwaga NS zamiast LS):

<key>NSUIElement</key>
<string>1</string>
grg
źródło
święte dymy, które działały lepiej niż się spodziewaliśmy dzięki bardzo!
wpp
1
Dwa komentarze. Po pierwsze, powyższy format [STRING] nie będzie działał w wersji 10.8 - musisz użyć typu logicznego. Po drugie, oprócz ukrywania aplikacji przed przełącznikiem aplikacji, modyfikowanie NSUIElement spowoduje również ukrycie paska menu, więc korzystanie z „ukrytych” aplikacji staje się dość trudne.
Kent
Czy miałeś jakieś szczęście z LSUIElement w Mavericks?
atreat
2
Tak, pobrałem aktualizację, teraz obsługują ją natywnie w wersji v1.4.2. github.com/binaryage/totalterminal/issues/…
atreat
4
W Mavericks to się dla mnie rozbija. Wypróbowałem kilka różnych aplikacji.
sandover
7

Możesz ustawić LSUIElement na 1 jako ciąg w Info.plist:

<key>LSUIElement</key>
<string>1</string>

Usuwa aplikacje z przełącznika aplikacji, Docka i okna wymuszonego zakończenia. Usuwa także pasek menu, więc nie można go używać w Finderze ani iTunes.

Edycja Info.plist powoduje, że niektóre aplikacje, takie jak TextEdit i Chess, ulegają awarii podczas uruchamiania w wersji 10.8. Unieważnia również podpisy kodów podpisanych aplikacji, więc nie mają one automatycznego dostępu do pęków kluczy.

http://www.cocoabuilder.com/archive/cocoa/141753-lsuielement-and-lsbackgroundonly.html :

NSUIElement jest amortyzowany. Jednak wyraźnie pamiętam z pracy w Apple (Apple DTS) kilka lat temu, że NSUIElement i LSUIElement odwzorowują to samo (przynajmniej tak było, kiedy tam byłem i wątpię, by to się zmieniło). Chociaż NSUIElement jest amortyzowany (NS oznacza oczywiście następny krok! A LS oznacza usługi uruchamiania), są one dokładnie takie same dla wszystkich celów i celów.

Zarówno LSUIElement, jak i NSUIElement nadal działają i oba mogą być również ustawione na true lub 1 jako liczba całkowita.

grep -A1 [LN]SUIElement /Applications/*/Contents/Info.plist

Lista właściwości informacji Najważniejsze informacje: Klucze usług uruchamiania :

LSUIElement( String- OS X) określa, czy aplikacja działa jako aplikacja agenta. Jeśli ten klucz jest ustawiony na „1”, Launch Services uruchamia aplikację jako aplikację agenta. Aplikacje agentów nie pojawiają się w Docku ani w oknie Force Quit. Mimo że zazwyczaj działają jako aplikacje w tle, mogą wyjść na pierwszy plan, aby w razie potrzeby przedstawić interfejs użytkownika. Kliknięcie okna należącego do aplikacji agenta powoduje przejście tej aplikacji do obsługi zdarzeń.

Okno Dock i loginwindow to dwie aplikacje działające jako aplikacje agenta.

Witch ma opcję ignorowania aplikacji:

Właśnie wyłączyłem przełącznik aplikacji i Dock. Używam głównie skrótów klawiaturowych i Alfreda do przełączania aplikacji.

Lri
źródło
Ustawienie LSUIElementw info.plist Slacka spowodowało awarię podczas uruchamiania dla mnie.
Taylor Edmiston
3

Uwaga: Opracowałem GhostTile

Short Anwser: po prostu spróbuj GhostTile . Jest to płatne, ale możesz spróbować tak długo, jak możesz (ukraść pomysł z Sublime Text)

Długi Anwser:

AFAIK, Istnieją dwa sposoby na osiągnięcie tego:
1. Skonfiguruj aplikację jako agent. Np. Dodaj LSUIElementklucz do aplikacji Info.plist lub Ustaw zasady aktywacji aplikacji na NSApplicationActivationPolicyAccessory.
2. Hook Dock lub inny powiązany proces systemowy, aby zignorować niektóre aplikacje. Dzięki SIP (Rootless) na El Captian. Nie jest to zalecane.

GhostTile koncentruje się na ukrywaniu aplikacji przed Dockiem. Jest łatwy w użyciu i zapewnia wiele sposobów zarządzania ukrytymi aplikacjami. Nie ma modyfikacji na dysku, więc nie złamiesz podpisu aplikacji.

Inne funkcje:

  • Nadal możesz otrzymywać powiadomienia o aktywności Docka w aplikacji
  • Ogólny przegląd
  • Alfred Workflow
hewigovens
źródło
Właśnie wypróbowałem tę aplikację i żadna z wypróbowanych aplikacji nie jest jeszcze „obsługiwana”. Finder, Mail, iOS Simulator ...
pkamb
1
@pkamb Przykro mi, ale wszystkie wypróbowane aplikacje są chronione przez System Integration Protection (SIP) wprowadzony w El Capitan. Czy możesz wypróbować aplikacje innych firm? lub wyłączyć SIP?
hewigovens
W porządku, dziękuję za odpowiedź. Sugeruję bardziej informacyjny komunikat o błędzie lub link do FAQ!
pkamb
Jak ukryć Ghost Title przed uruchomieniem Cmd + Tab? Próbowałem dodać <key> NSUIElement </key> <string> 1 </string> do Info.plist i ponownie uruchomić aplikację. Nie zadziałało
Mac
@mac Istnieje opcja preferencji o nazwie „Ukryj GhostTile przed dokiem”
hewigovens
1

Przykro mi, że spóźniłem się na imprezę, ale w rzeczywistości, jak stwierdzono w poprzednich odpowiedziach i komentarzach, może to spowodować awarię niektórych aplikacji podczas uruchamiania. Nie mogę sprawić, by działało to w Yosemite, chociaż mogłem sprawić, by działało wcześniej na innym komputerze Mac. Zmiana TotalTerminal Info.plist nic nie zrobiła, a zmiana Applications/Utilities/Terminal/Info.plistspowodowała awarię.

Jak @atreat wspomniano w jednym z komentarzy, chłopaki z TotalTerminalobecnie wspieranie tego ukryć za pomocą prostego polecenia:

defaults write com.apple.Terminal TotalTerminalHideDockIcon -bool YES

To działało idealnie dla mnie.

Raul Rene
źródło