cmd + tabメニューから特定のアプリを非表示にする方法はありますか?


39

特定のアプリをcmd+ から非表示にする方法はありますtabか?

私が直面している問題は、いくつかのアプリ(iTunesやもちろんFinderなど)が常に開いていることです。しかし、作業中に、cmd+でtab自分に関連するアプリ(Chrome、Sublime、Terminal)を切り替えると、これらの「無関係な」アプリがメニューに常に表示されます。

ありがとう

回答:


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より前では、代わりにこれを使用します(LSではなくNSに注意してください):

<key>NSUIElement</key>
<string>1</string>

予想以上にうまく機能した聖煙。
wpp

1
2つのコメント。まず、上記の[STRING]形式は10.8では機能しません。ブール型を使用する必要があります。第二に、アプリケーションスイッチャーからアプリを非表示にする以外に、NSUIElementを変更するとメニューバーも非表示になるため、「非表示」アプリケーションを使用することは非常に困難になります。
ケント

MavericksのLSUIElementで幸運はありましたか?
-atreat

2
うん、私はアップデートをダウンロードしました、彼らは今v1.4.2リリースでネイティブにそれをサポートしています。github.com/binaryage/totalterminal/issues/...
atreat

4
マーベリックスでは、これがクラッシュします。いくつかの異なるアプリケーションを試しました。
サンドオーバー14

7

Info.plistで文字列としてLSUIElementを1に設定できます。

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

アプリケーションスイッチャー、Dock、および強制終了ウィンドウからアプリケーションを削除します。また、メニューバーも削除されるため、FinderまたはiTunesで実際に使用することはできません。

Info.plistを編集すると、10.8で起動時にTextEditやChessなどのアプリケーションがクラッシュします。また、署名されたアプリケーションのコード署名も無効になるため、キーチェーンに自動的にアクセスすることはできません。

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

情報プロパティリストのキーリファレンス:サービスキーの起動

LSUIElementString-OS X)アプリがエージェントアプリとして実行されるかどうかを指定します。このキーが「1」に設定されている場合、Launch Servicesはアプリをエージェントアプリとして実行します。エージェントアプリは、Dockまたは強制終了ウィンドウに表示されません。通常、バックグラウンドアプリとして実行されますが、必要に応じてフォアグラウンドに移動してユーザーインターフェイスを表示できます。エージェントアプリに属する​​ウィンドウをクリックすると、そのアプリがイベントを処理できるようになります。

Dockとloginwindowは、エージェントアプリとして実行される2つのアプリです。

魔女にはアプリケーションを無視するオプションがあります:

アプリケーションスイッチャーとDockを無効にしました。主にキーボードショートカットとAlfredを使用してアプリケーションを切り替えます。


LSUIElementSlackのinfo.plistを設定すると、起動時にクラッシュしました。
テイラーエドミストン

3

免責事項:GhostTileを開発しました

短いアンカー:GhostTileを試してください。有料ですが、できる限り試してみてください(Sublime Textからアイデアを盗みます)

ロングアンサー:

私の知る限り、これを達成するには2つの方法があり
ます:1.エージェントとしてアプリをセットアップします。たとえばLSUIElement、アプリのInfo.plist にキーを追加したり、アプリのアクティベーションポリシーをに設定しNSApplicationActivationPolicyAccessoryます。
2. Dockまたはその他の関連システムプロセスをフックして、一部のアプリを無視します。El CaptianのSIP(Rootless)に感謝します。推奨されていません。

GhostTileは、Dockからアプリを非表示にすることに重点を置いています。使いやすく、非表示のアプリを管理するための複数の方法を提供します。ディスク上の変更はないので、アプリのコードサイン署名を壊すことはありません。

その他の機能:

  • アプリのDockアクティビティの通知を受け取ることができます
  • 公開のような概要
  • アルフレッドワークフロー

このアプリを試してみましたが、試したアプリはどれも「まだサポートされていません」。ファインダー、メール、iOSシミュレーター...
pkamb

1
@pkamb申し訳ありませんが、試したアプリはすべて、エルキャピタンで導入されたシステム統合保護(SIP)によって保護されています。他のサードパーティのアプリを試してみてください。またはSIPをオフにしますか?
-hewigovens

まあ、答えてくれてありがとう。より有益なエラーメッセージまたはFAQへのリンクをお勧めします。
pkamb

Cmd + Tabランチャーからゴーストタイトルを非表示にするにはどうすればよいですか?Info.plistに<key> NSUIElement </ key> <string> 1 </ string>を追加して、アプリを再起動してみました。それは仕事didntの
Macの

@mac「DockからGhostTileを隠す」という設定オプションがあります
-hewigovens

1

パーティーに遅れてすみませんが、実際、以前の回答やコメントが述べているように、これにより一部のアプリケーションが起動時にクラッシュする可能性があります。以前に別のMacで動作させることはできましたが、この動作をYosemiteで動作させることはできません。TotalTerminal Info.plistを変更しても何も行われず、変更するApplications/Utilities/Terminal/Info.plistとクラッシュが発生しました。

@atreatがコメントの1つで言及したように、TotalTerminalのメンバーは、単純なコマンドでこの非表示サポートしています。

defaults write com.apple.Terminal TotalTerminalHideDockIcon -bool YES

これは私にとって完璧に機能しました。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.