Есть ли способ скрыть определенные приложения из меню вкладки cmd +?

39

Есть ли способ скрыть определенные приложения от cmd+ tab?

Проблема, с которой я сталкиваюсь, заключается в том, что у меня всегда открыты некоторые приложения (например, iTunes и, конечно, Finder). Но когда я работаю и переключаюсь между подходящими для меня приложениями (Chrome, Sublime, Terminal) с cmd+, tabя всегда буду видеть эти «нерелевантные» приложения в меню.

Благодарность

WPP
источник

Ответы:

37

Да, это возможно, однако единственный способ, которым я знаю, также скрывает значок док-станции.

Вы должны изменить файл с именем «Info.plist» внутри пакета приложения (т.е. Sherlock.app/Contents/Info.plist). Откройте этот файл в вашем любимом текстовом редакторе и добавьте следующий раздел (если он уже есть, просто измените 0 на 1 в строковом теге):

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

Источник: Скрыть значок Dock любой программы - Macworld Mac OS X Советы

В новейшей версии macOS строка не должна быть установлена ​​для LSUIElement. Вместо этого вам нужно использовать логическое значение следующим образом:

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

До OS X 10.8 используйте это вместо этого (обратите внимание на NS вместо LS):

<key>NSUIElement</key>
<string>1</string>
Grg
источник
Святой дым, который работал лучше, чем ожидалось, большое спасибо!
wpp
1
Два комментария. Во-первых, вышеупомянутый формат [STRING] не будет работать в 10.8 - вам нужно использовать логический тип. Во-вторых, помимо сокрытия приложения от переключателя приложений, изменение NSUIElement также скрывает строку меню, поэтому использование «скрытых» приложений становится довольно сложным.
Кент
Вам повезло с LSUIElement в Mavericks?
atreat
2
Да, я скачал обновление, теперь они поддерживают его в своей версии v1.4.2. github.com/binaryage/totalterminal/issues/…
atreat
4
В Маверикс это вылетает для меня. Я пробовал пару разных приложений.
Sandover
7

Вы можете установить LSUIElement на 1 в виде строки в Info.plist:

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

Он удаляет приложения из переключателя приложений, Dock и окна принудительного выхода. Он также удаляет строку меню, поэтому его нельзя использовать с Finder или iTunes.

Редактирование Info.plist приводит к сбою некоторых приложений, таких как TextEdit и Chess, при запуске в 10.8. Он также делает недействительными подписи кода подписанных приложений, поэтому им не разрешается автоматически обращаться к цепочкам ключей.

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

NSUIElement амортизируется. Тем не менее, я отчетливо помню, как несколько лет назад работал в Apple (Apple DTS), что NSUIElement и LSUIElement отображали одно и то же (по крайней мере, это было тогда, когда я был там, и я сомневаюсь, что это изменилось бы). Хотя NSUIElement устарел (NS, конечно, означает следующий шаг!, А LS - сервисы запуска), они абсолютно одинаковы для всех целей и задач.

Оба LSUIElement и NSUIElement по-прежнему работают, и оба также могут быть установлены в true или 1 как целое число.

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

Информация Список свойств Ключ Ссылка: Launch Services Keys :

LSUIElement( String- OS X) указывает, работает ли приложение как приложение агента. Если для этого ключа установлено значение «1», Launch Services запускает приложение как приложение агента. Приложения агента не отображаются в Dock или в окне принудительного выхода. Хотя они обычно запускаются как фоновые приложения, при желании они могут выйти на передний план, чтобы представить пользовательский интерфейс. Щелчок по окну, принадлежащему приложению агента, переводит это приложение в режим обработки событий.

Dock и loginwindow - это два приложения, которые работают как агентские приложения.

Ведьма имеет возможность игнорировать приложения:

Я только что отключил переключатель приложений и Dock. В основном я использую сочетания клавиш и Альфред для переключения приложений.

LRI
источник
Установка LSUIElementв info.plist Слэка вызвала его падение при запуске для меня.
Тейлор Эдмистон
3

Отказ от ответственности: я разработал GhostTile

Короткий Anwser: просто попробуйте GhostTile . Это платно, но вы можете попробовать так долго, как сможете (украсть идею из Sublime Text)

Длинный ответ:

AFAIK, Есть два способа добиться этого:
1. Установить приложение в качестве агента. Например, добавьте LSUIElementключ в Info.plist приложения или установите политику активации приложения в NSApplicationActivationPolicyAccessory.
2. Подключите Dock или другой связанный системный процесс, чтобы игнорировать некоторые приложения. Благодаря SIP (Rootless) на El Captian. Это не рекомендуется делать.

GhostTile фокусируется на сокрытии приложений от Dock. Он прост в использовании и предоставляет несколько способов управления скрытыми приложениями. На диске нет изменений, поэтому вы не нарушите кодовую подпись приложений.

Другие свойства:

  • Вы по-прежнему можете получать уведомления о стыковочной активности приложения
  • Expose-like Обзор
  • Альфред Рабочий процесс
hewigovens
источник
Только что попробовал это приложение, и ни одно из приложений, которые я пробовал, "еще не поддерживается". Искатель, Почта, iOS Симулятор ...
pkamb
1
@pkamb Извините, но все ваши приложения защищены защитой системной интеграции (SIP), представленной в El Capitan. Не могли бы вы попробовать другие сторонние приложения? или выключить SIP?
Hewigovens
Справедливо, спасибо за ответ. Я бы предложил более информативное сообщение об ошибке или ссылку на FAQ!
pkamb
Как скрыть Ghost Title из панели запуска Cmd + Tab? Я попытался добавить <key> NSUIElement </ key> <string> 1 </ string> в Info.plist и перезапустить приложение. Это не сработало
Mac
@mac Есть опция предпочтений под названием «Скрыть GhostTile от дока»
hewigovens
1

Извините, что опоздал на вечеринку, но, как говорится в предыдущих ответах и ​​комментариях, это может привести к сбою некоторых приложений при запуске. Я не могу заставить это работать в Yosemite, хотя я мог заставить это работать раньше на другом Mac. Изменение TotalTerminal Info.plist ничего не делало, а изменение Applications/Utilities/Terminal/Info.plistвызвало сбой.

Как @atreat упоминались в одном из комментариев, ребята из TotalTerminal которые теперь поддерживают эту шкурку с помощью простой команды:

defaults write com.apple.Terminal TotalTerminalHideDockIcon -bool YES

Это отлично сработало для меня.

Рауль Рене
источник