TotalTerminal funktioniert nicht mit Vollbild-Apps

TotalTerminal (ehemals Visor) ist ein großartiges Plugin für Terminal, das es in eine Konsole im Quake-Stil verwandelt, die auf einer Tastenkombination nach unten gleitet.

TotalTerminal

Dies ist für die Entwicklung enorm nützlich, da ich Befehle eingeben kann, während ich Code schreibe oder ohne zusätzliche Fensterhektik surfe.

Leider spielt TotalTerminal nicht gut mit Vollbild-Apps. Wenn ich Sublime Text in den Vollbildmodus versetze und Terminal auslöse, scrollt Mission Control zum nächsten verfügbaren Nicht-Vollbildbereich und zeigt erst dann das Terminal an.

Das ist sehr ärgerlich. Ist es möglich, dieses Problem zu beheben oder zu umgehen?

Antworten (3)

Dies ist ein bekanntes Problem und der Autor plant nicht, es zu beheben.

Ich ermutige jemanden, weiter zu gehen und es zu implementieren, da ich persönlich derzeit keine Vollbild-Apps verwende und nicht vorhabe, dies in absehbarer Zeit zu beheben.

Glücklicherweise gibt es eine Problemumgehung , die von vvlad beschrieben wird .

Als Problemumgehung können Sie LSUIElementin Terminals Info.plist festlegen

Es hat mehrere Nachteile , funktioniert aber ansonsten wie ein Zauber:

  • Terminal wird nicht mehr im Dock angezeigt;
  • Es gibt einen Platz in der Größe der oberen Leiste über jedem TotalTerminal-Visier, das in Vollbild-Apps-Fenstern geöffnet wird;
  • Sie können nicht mehr zu normalen Terminalfenstern wechseln;
  • Sie können den Kill-Terminal-Prozess nicht erzwingen.

So wird es aussehen:

TotalTerminal in einer Vollbild-App

Wie es funktioniert

LSUIElement (String - Mac OS X) gibt an, ob die Anwendung als Agent-Anwendung ausgeführt wird. Wenn dieser Schlüssel auf „1“ gesetzt ist, führt Launch Services die Anwendung als Agent-Anwendung aus. Agentenanwendungen werden nicht im Dock oder im Fenster „Beenden erzwingen“ angezeigt. Obwohl sie normalerweise als Hintergrundanwendungen ausgeführt werden, können sie bei Bedarf in den Vordergrund treten, um eine Benutzeroberfläche darzustellen. Ein Klick auf ein Fenster, das zu einer Agentenanwendung gehört, bringt diese Anwendung nach vorn, um Ereignisse zu verarbeiten.

Das Dock und das Anmeldefenster sind zwei Anwendungen, die als Agentenanwendungen ausgeführt werden.

Wie es geht

  1. Terminal öffnen (vorausgesetzt, Sie haben TotalTerminal bereits installiert)
  2. Laufensudo nano /Applications/Utilities/Terminal.app/Contents/Info.plist
  3. Fügen Sie diese beiden Zeilen direkt nach dem öffnenden <dict>Tag hinzu:

    <key>LSUIElement</key>
    <true />
    
  4. Speichern und schließen Sie die Datei, indem Sie auf drücken^O Enter ^X
  5. Beenden Sie Terminal und starten Sie es erneut
TotalTerminal hat jetzt eine Option dafür in seinem Einstellungsfenster, ich habe eine neue Antwort mit einem Screenshot gepostet
Ich kann dies in OSX Yosemite 10.10 nicht richtig zum Laufen bringen. Immer wenn TotalTerminal angezeigt wird, wechselt es zurück zum primären Space.
@rossipedia - Siehe meine Antwort unten für Yosemite Fix.

Yosemite-Benutzer

Apple hat die Funktionsweise des LSUIElements in Yosemite geändert. Dies führt dazu, dass die App als Agent ausgeführt wird, aber nicht mehr dazu führt, dass sie den Vollbildmodus von Windows überlagert.

Um das Problem zu beheben, öffnen Sie die Datei Info.plist gemäß den Anweisungen anderer Personen und fügen Sie die folgenden zwei Elemente hinzu:

<key>LSUIElement</key>
<true/>
<key>LSUIPresentationMode</key>
<string>4</string>

LSUIPresentationMode (Zahl – OS X) identifiziert den anfänglichen Benutzeroberflächenmodus für die App. Sie würden dies in Apps verwenden, die möglicherweise Teile des Bildschirms übernehmen müssen, die UI-Elemente wie das Dock und die Menüleiste enthalten. Die meisten Modi wirken sich nur auf UI-Elemente aus, die im Inhaltsbereich des Bildschirms angezeigt werden, d. h. im Bereich des Bildschirms, der nicht die Menüleiste enthält. Sie können jedoch auch verlangen, dass alle UI-Elemente ausgeblendet werden.

4 - Alle unterdrückter Modus. In diesem Modus sind alle UI-Elemente ausgeblendet, einschließlich der Menüleiste. UI-Elemente können sich automatisch als Reaktion auf Mausbewegungen oder andere Benutzeraktivitäten anzeigen. Diese Option ist nur in OS X v10.3 und höher verfügbar.

Quelle

TotalTerminal hat jetzt eine Option in seinem Einstellungsfenster, um dieselbe zugrunde liegende Option zu aktivieren. Die Antwort von @Dan zeigt die manuelle Einstellung:

Screenshot der TotalTerminal-Einstellungen