EN

Terminal-Benachrichtigungen

Ein Programm im Terminal kann Ihre Aufmerksamkeit verlangen, während Sie anderswo arbeiten: Ein Build-Skript läutet die Glocke, wenn es fertig ist, ein Prompt läutet sie, wenn er auf eine Eingabe wartet, ein Coding-Agent auf einem Server bittet um eine Benachrichtigung, wenn er Ihre Antwort braucht, und in einer für die Shell-Integration eingerichteten Shell teilt ein langer Befehl korTTY mit, wann er beendet ist. korTTY markiert den Tab, aus dem eine solche Anfrage kommt, sodass Sie es in der Tab-Leiste sehen, und kann zusätzlich eine Desktop-Benachrichtigung anzeigen. Es spielt nie einen Ton ab.

Sie können korTTY auch bitten, einen Tab für Sie zu beobachten: Es meldet Ihnen, wenn in einem ruhigen Tab Ausgabe erscheint oder wenn ein Tab, der Ausgabe lieferte, verstummt; siehe Einen Tab auf Aktivität oder Stille überwachen.

Eine eigene Regel der Hervorhebung von Schlüsselwörtern kann dasselbe für ein Wort oder Muster tun: Sie markiert den Tab und benachrichtigt, wenn das Muster in neuer Ausgabe erscheint; siehe Benachrichtigungen bei passender Ausgabe.

Ein Programm kann auch darum bitten, Text in die Zwischenablage zu legen oder sie auszulesen. korTTY erlaubt dies nur, wenn Sie es aktivieren, fragt Sie vor jedem Auslesen ab und die Statusleiste informiert Sie jedes Mal; siehe Programme, die in die Zwischenablage kopieren und Programme, die die Zwischenablage auslesen.

Wann ein Tab als angesehen gilt

korTTY bittet nur in Tabs um Ihre Aufmerksamkeit, die Sie gerade nicht ansehen. Ein Tab gilt als angesehen, solange er der ausgewählte Tab des vordersten Fensters ist, also des Fensters, das den Tastaturfokus hat und nicht minimiert ist. Welcher Bereich eines Tabs mit geteilten Bereichen den Fokus hat, spielt keine Rolle: Der Tab gilt als Ganzes als angesehen. Ein nicht ausgewählter Tab, die Tabs eines korTTY-Fensters, das hinter einem anderen liegt, und alle Tabs, solange eine andere Anwendung im Vordergrund ist, gelten als nicht angesehen.

Die Terminalglocke

Programme läuten die Terminalglocke mit dem Steuerzeichen BEL (Ctrl+G): bash und zsh läuten sie, wenn eine Tab-Vervollständigung nichts findet, less und vim, wenn Sie versuchen, über das Ende einer Datei hinauszugehen, und ein Skript kann sie mit printf '\a' läuten, wenn ein langer Job endet. Die Glocke funktioniert in lokalen Shells und SSH-Sitzungen gleichermaßen, in jeder Terminalemulation, die korTTY anbietet, und braucht keine Einrichtung auf dem Server.

Glockenmarkierung am Tab

Wenn die Glocke in einem Tab läutet, den Sie gerade nicht ansehen, zeigt der Tab 🔔 in seinem Titel, nach dem Coding-Agent-Symbol und vor dem Präfix [group], zum Beispiel ⚡ 🔔 [Ops] web-01. Wenn Sie auf den Tab zeigen, steht in seinem Tooltip Die Glocke hat geläutet, während Sie diesen Tab nicht angesehen haben., sodass die Markierung auch in Worten erklärt ist.

Die Markierung verschwindet, sobald Sie den Tab ansehen: Wählen Sie ihn aus oder holen Sie sein Fenster in den Vordergrund. Eine Glocke in dem Tab, den Sie gerade ansehen, hinterlässt keine Markierung. Die Markierung ist immer aktiv und macht kein Geräusch, daher hat sie keine eigene Einstellung. Viele Glockensignale kurz hintereinander, etwa von cat auf eine Binärdatei, zählen als eines.

Desktop-Benachrichtigung für die Glocke

Mit Desktop-Benachrichtigung, wenn die Glocke in einem Tab klingelt, den Sie nicht ansehen, aktiviert im Einstellungen → Messaging (siehe Messaging-Einstellungen), zeigt eine Glocke in einem Tab, den Sie nicht ansehen, ebenfalls eine Desktop-Benachrichtigung über den Benachrichtigungsdienst des Betriebssystems: Notification Center auf macOS, ein Tray-Ballon unter Windows und der Desktop-Notifikationsserver unter Linux. Durch Anklicken gelangen Sie zum Paneel, siehe Durch Klicken einer Benachrichtigung.

  • Der Titel der Benachrichtigung ist korTTY · und der Name des Tabs, ihr Text besagt, dass ein Programm die Glocke geläutet hat. Sie enthält nie Terminalausgabe. Ein Name, den die Shell für den Tab gesetzt hat, wird zuvor von Steuer- und Bidi-Zeichen bereinigt.
  • Ein Bereich zeigt höchstens alle 10 Sekunden eine Glocken-Benachrichtigung; weitere Glockensignale in dieser Zeit halten nur die Markierung am Tab. Jeder Bereich eines geteilten Tabs zählt für sich, die Bereiche, die an Multi-Exec teilnehmen, zählen jedoch zusammen als einer, in welchen Tabs sie auch liegen. Eine Glocke, die in einem Bereich innerhalb von 2 Sekunden läutet, nachdem Tasten, die Sie in einem anderen Bereich getippt haben, ihn über den Broadcast-Modus oder Multi-Exec erreicht haben, etwa bei einer erfolglosen Tab-Vervollständigung auf allen Servern zugleich, antwortet auf diese Tasten: Sie markiert den Tab nicht und löst keine Benachrichtigung aus.
  • Die Einstellung ist standardmäßig ausgeschaltet, weil Shells bei jeder erfolglosen Tab-Vervollständigung die Glocke läuten. Eine Änderung gilt für die offenen Tabs, sobald Sie speichern.
  • Ein Bereich, in dem korTTY einen Coding-Agent erkannt hat, erhält keine Glocken-Benachrichtigung, solange Desktop-Benachrichtigung, wenn ein Coding-Agent eine Entscheidung braucht oder fertig wird, während Sie seinen Bereich nicht ansehen eingeschaltet ist: Agents läuten die Glocke, wenn sie auf Sie warten, und ihre eigene Benachrichtigung sagt das bereits, mit mehr Details. Der Tab erhält trotzdem seine Markierung.
  • Durch Klicken der Benachrichtigung wird das Fenster nach vorne gebracht, der Tab ausgewählt und das Panel fokussiert, in dem die Glocke geklingelt hat, wie bei jeder Desktop-Benachrichtigung von korTTY (siehe Auf eine Benachrichtigung klicken). Das 🔔 in der Tab-Leiste bleibt, bis Sie den Tab ansehen.

Lange laufende Befehle

In einer für die Shell-Integration eingerichteten Shell markiert die Shell, wann jeder Befehl beginnt und wann er endet, mit seinem Exit-Status. Wenn ein Befehl, der mindestens die Mindestlaufzeit lief, standardmäßig 30 Sekunden, in einem Tab endet, den Sie gerade nicht ansehen, markiert korTTY diesen Tab mit 🔔 und zeigt eine Desktop-Benachrichtigung, zum Beispiel korTTY · web-01 mit dem Text Befehl fehlgeschlagen (Exit-Status 1) nach 2 Min. 14 Sek. Starten Sie einen Build oder ein Upgrade, wechseln Sie zu einem anderen Tab oder einer anderen Anwendung, und korTTY meldet sich, sobald der Befehl fertig ist.

  • Die Laufzeit zählt vom Drücken von Enter bis zum Ende des Befehls, ohne die Zeit, die Sie zum Eintippen gebraucht haben. Ein Befehl, der mit Exit-Status 0 endet, meldet Befehl beendet, jeder andere Status Befehl fehlgeschlagen, und eine Shell, die keinen Status meldet, erhält Befehl beendet nach … ohne Status.
  • Die Benachrichtigung enthält nie den Befehl selbst und auch nichts, was er ausgegeben hat: Befehlszeilen können Passwörter und Token enthalten, und eine Benachrichtigung kann auf dem Sperrbildschirm erscheinen. Wenn Sie auf den markierten Tab zeigen, erscheint derselbe Text in seinem Tooltip.
  • Ein Befehl, der in dem Tab endet, den Sie gerade ansehen, löst nichts aus, ebenso wenig ein Befehl, der kürzer als die Mindestlaufzeit lief. Der Tab erhält seine Markierung auch bei ausgeschalteter Benachrichtigung.
  • Ein Tab zeigt höchstens alle 10 Sekunden eine solche Benachrichtigung. Wenn Broadcast denselben Befehl in mehrere Bereiche eines Tabs getippt hat und sie kurz nacheinander fertig werden, erhalten Sie eine Benachrichtigung, und der Tab bleibt markiert, bis Sie ihn ansehen. Mit Multi-Exec läuft ein Befehl, den Sie einmal tippen, in jedem teilnehmenden Bereich, in welchem Tab oder Fenster auch immer: Sie erhalten dafür eine Benachrichtigung, wie weit auseinander die Bereiche auch fertig werden, jeder ihrer Tabs behält seine Markierung, und diese Bereiche zusammen zeigen höchstens alle 10 Sekunden eine solche Benachrichtigung.
  • Befehle, die der KI-Agent von korTTY in einem Bereich ausführt, markieren weder den Tab noch lösen sie eine Benachrichtigung aus: Der Lauf des Agenten meldet seine eigenen Befehle in seinem Aktivitätspanel.
  • Ein Coding-Agent wie Claude Code ist für die Shell selbst ein Befehl; wenn er in einem Tab endet, den Sie gerade nicht ansehen, wird das daher wie bei jedem anderen Befehl gemeldet.
  • Ohne Shell-Integration ändert sich nichts: korTTY schließt nicht aus Pausen in der Ausgabe darauf, dass ein Befehl beendet ist. Shells ohne die Markierungen, tmux, screen und Mosh-Verbindungen erhalten keine Benachrichtigungen über lange Befehle; siehe die Einschränkungen der Shell-Integration.

Einstellungen → Messaging hat Desktop-Benachrichtigung, wenn ein langlaufender Befehl in einem Tab fertig ist, den Sie nicht ansehen, standardmäßig aktiviert und Mindestlaufzeit eines Befehls: von 1 bis 3 600 Sekunden. Beide sind ausgegraut, solange die Shell-Integration ausgeschaltet ist, und eine Änderung gilt für die offenen Tabs sofort nach dem Speichern. Siehe Messaging-Einstellungen.

Benachrichtigungen von Programmen

Ein Programm kann das Terminal mit einer Escape-Sequenz um eine Desktop-Benachrichtigung bitten: OSC 9 (die iTerm2-Form, ESC ] 9 ; text BEL) oder OSC 777 (die Form von urxvt und foot, ESC ] 777 ; notify ; title ; body BEL). Coding-Agents wie Claude Code oder Codex, die auf einem Server laufen, können damit mitteilen, dass sie auf Ihre Antwort warten oder fertig sind, und Ihre eigenen Skripte ebenso. Viele Agents und Tools haben eine Einstellung, die ihre Benachrichtigungen auf diesem Weg sendet, oft iTerm2-Stil genannt; korTTY versteht beide Formen in lokalen Shells und SSH-Sitzungen gleichermaßen, ohne dass auf dem Server etwas installiert werden muss. Zum Ausprobieren führen Sie Folgendes aus und wechseln innerhalb von fünf Sekunden zu einem anderen Tab:

sleep 5; printf '\e]777;notify;%s;%s\a' 'Backup' 'Finished without errors'

Kommt eine solche Anfrage aus einem Tab, den Sie gerade nicht ansehen, markiert korTTY den Tab mit 🔔, und wenn Sie auf den Tab zeigen, steht in seinem Tooltip Ein Programm in diesem Tab hat eine Benachrichtigung gesendet: mit dem Text. Eine Desktop-Benachrichtigung mit dem Titel korTTY · und dem Namen des Tabs zeigt den Text unter diesem Titel, zum Beispiel Backup: Finished without errors, sodass sie immer angibt, aus welchem Tab sie kommt, und nie als Meldung einer anderen Anwendung durchgeht.

  • Das Programm bestimmt jedes Zeichen des Textes, daher bereinigt korTTY ihn zuerst: Steuerzeichen, Zeilenumbrüche und die unsichtbaren Zeichen, die die Leserichtung ändern, werden entfernt, der Titel wird auf 80 Zeichen gekürzt und der Text auf 200. Die Sequenz selbst zeigt das Terminal nie an.
  • Ein Bereich zeigt höchstens alle 5 Sekunden eine solche Benachrichtigung; was ein Programm in dieser Zeit anfordert, hält nur die Markierung am Tab und wird verworfen, sodass ein Programm, das Benachrichtigungen in einer Schleife ausgibt, Ihren Desktop nicht überfluten kann.
  • Eine Anfrage in dem Tab, den Sie gerade ansehen, löst nichts aus.
  • Ein Bereich, in dem korTTY einen Coding-Agent erkannt hat, erhält keine Benachrichtigung dieser Art, solange Desktop-Benachrichtigung, wenn ein Coding-Agent eine Entscheidung braucht oder fertig wird, während Sie seinen Bereich nicht ansehen eingeschaltet ist, weil die eigene Benachrichtigung des Agents das bereits sagt. korTTY erkennt Agents nur in lokalen Shell-Tabs, daher benachrichtigt ein Agent auf einem Server immer über seine eigene Anfrage.
  • OSC 9 mit einer Zahl am Anfang, etwa die Fortschrittsmeldung ESC ] 9 ; 4 ; 1 ; 50 BEL von ConEmu und Windows Terminal, ist keine Benachrichtigung und wird ignoriert. Andere OSC 777-Befehle sind ebenfalls keine Benachrichtigungen und bleiben unberührt.
  • Diese Funktion braucht keine Shell-Integration, und das Ausschalten der Shell-Integration stoppt sie nicht.
  • In tmux oder screen kommen die Anfragen meist nicht an: Der Multiplexer reicht sie nicht weiter, und korTTY entpackt die Passthrough-Sequenzen von tmux nicht. Mosh-Verbindungen übertragen sie nie.
  • Das eigene Log von korTTY zeichnet den Text nie auf; der Tooltip des Tabs und die Benachrichtigung sind die einzigen Stellen, an denen korTTY ihn zeigt. Ein Terminalprotokoll oder Sitzungsjournal des Bereichs lässt Escape-Sequenzen weg, sodass der Text auch dort nicht ankommt, außer wenn ein Programm die seltene 8-Bit-Form der Sequenz verwendet.

Einstellungen → Messaging hat Desktop-Benachrichtigung, wenn ein Programm in einem Tab, den Sie nicht ansehen, eine solche anfordert (OSC 9, OSC 777), standardmäßig aktiviert. Ausgeschaltet markiert ein Antrag nur den Tab. Eine Änderung gilt für die offenen Tabs, sobald Sie speichern. Siehe Messaging-Einstellungen.

Datenschutz

Eine Desktop-Benachrichtigung zeigt den Namen des Tabs, der ein Servername sein kann, und je nach den Einstellungen Ihres Betriebssystems kann sie auf dem Sperrbildschirm erscheinen; die Benachrichtigung eines Programms zeigt außerdem den Text, den das Programm gesendet hat. Schalten Sie die Desktop-Benachrichtigungen aus, die Sie nicht möchten, oder die Benachrichtigungen für korTTY im Betriebssystem; die Markierung am Tab bleibt innerhalb von korTTY.

Läufe von KI-Agent und KI-Swarm

Läufe von korTTYs eigenem KI-Agent und KI-Swarm melden sich, wenn sie Sie brauchen oder fertig sind, während Sie woanders hinsehen. Wenn ein Lauf in einem Tab, den Sie gerade nicht ansehen, auf Ihre Freigabe eines Befehls wartet, auf ein Passwort wartet, fertig wird oder ohne Abschluss stoppt (ein Fehler, oder der Agent hat blockiert aufgegeben), sagt das eine Desktop-Benachrichtigung mit dem Titel korTTY · und dem Namen des Tabs. Ohne sie würde eine Freigabe, die in einem Fenster hinter einem anderen angefordert wird, den Lauf aufhalten, bis Sie zufällig hinsehen.

  • Der Text ist ein fester Satz, etwa Der KI-Lauf in diesem Tab wartet auf Ihre Freigabe. Er enthält nie Ihren Prompt, den Befehl, der auf Freigabe wartet, den Wortlaut der Passwortabfrage oder irgendeine Ausgabe, denn eine Benachrichtigung kann auf dem Sperrbildschirm erscheinen.
  • Ein Tab zeigt höchstens eine Benachrichtigung derselben Art alle 10 Sekunden, sodass ein Swarm, dessen Agenten nacheinander um Freigaben bitten, Ihren Desktop nicht überflutet; das Ende des Laufs wird trotzdem direkt nach einer Freigabe gemeldet.
  • Ein Terminal-Tab, dessen Agent-Lauf Sie braucht, wird außerdem mit 🔔 markiert, und der Tooltip wiederholt den Satz. Ein KI-Swarm-Tab behält stattdessen seine eigene blinkende Anzeige.
  • Im Tab, den Sie gerade ansehen, passiert nichts, und ebenso wenig, wenn Sie den Lauf selbst abbrechen oder neu starten.

Einstellungen → Messaging hat Desktop-Benachrichtigung, wenn ein KI-Agent oder KI-Schwarm in einem Tab läuft, den Sie nicht ansehen, beendet oder wartet für Sie, standardmäßig aktiviert. Wenn deaktiviert, bleibt ein Terminal-Tab noch markiert. Siehe Messaging-Einstellungen.

Einen Tab auf Aktivität oder Stille überwachen

Klicken Sie mit der rechten Maustaste auf einen Terminal-Tab und wählen Sie Auf Aktivität überwachen oder Auf Stille überwachen, damit korTTY ihn beobachtet, während Sie anderswo arbeiten. Beide sind auch Befehle der Befehlspalette für den Tab, in dem Sie sich befinden, mit einem Häkchen, solange sie eingeschaltet sind. Sie funktionieren in lokalen Shells und SSH-Sitzungen gleichermaßen und brauchen weder Shell-Integration noch etwas auf dem Server.

  • Auf Aktivität überwachen meldet Ausgabe, die im Tab nach mindestens 10 Sekunden ohne Ausgabe erscheint, während Sie ihn gerade nicht ansehen, etwa eine neue Zeile in einem ruhigen tail -f-Log, eine Nachricht in einem Chatprogramm oder einen Prompt, der endlich nach einer Eingabe fragt. Der Tab erhält 🔔, in seinem Tooltip steht Neue Ausgabe kam an, während Sie diesen Tab nicht angesehen haben., und eine Desktop-Benachrichtigung mit dem Titel korTTY · und dem Namen des Tabs meldet Neue Ausgabe in diesem Tab nach mindestens 10 Sekunden Ruhe. Die Überwachung meldet einmal: Weitere Ausgabe wird erst wieder gemeldet, nachdem Sie den Tab angesehen haben, sodass ein Log, das im Hintergrund weiterläuft, Sie einmal benachrichtigt und nicht bei jeder Zeile.
  • Auf Stille überwachen meldet ein Pane des Tabs, das etwas ausgegeben hat und dann für die Zeit ohne Ausgabe bleibt, die bei Auf Stille überwachen meldet nach: in Einstellungen → Messaging festgelegt ist, standardmäßig 30 Sekunden und von 5 bis 3.600 Sekunden. Der Tab bekommt 🔔 und eine Desktop-Benachrichtigung wie Kein Output in diesem Tab für 30 Sekunden. Es ist gedacht für einen Build, eine Kopie oder ein Upgrade, das während der Arbeit ausgibt, auch in einer Shell ohne Shell-Integration, wo korTTY nicht erkennen kann, wann ein Befehl beendet ist. Es meldet einmal und erneut nur, wenn das Pane etwas Neues ausgegeben hat. Schalten Sie es ein, während der Befehl noch ausgibt oder sofort danach: Ausgabe innerhalb des Schwellenwerts vor dem Stopp zählt noch, während ein Pane, das länger still war, nichts meldet, bis es wieder ausgibt.

Beide Schalter gehören zum Tab und sind ausgeschaltet, bis Sie sie einschalten. Ein Tab behält sie, solange er geöffnet ist, auch wenn Sie ihn in ein anderes Fenster verschieben, aber sie werden nie gespeichert: Ein Projekt speichert sie nicht, und sie enden, wenn der Tab geschlossen oder korTTY beendet wird. Wählen Sie den Eintrag erneut, um die Überwachung auszuschalten. In einem Tab mit geteilten Bereichen wird jeder Bereich für sich überwacht, und die Benachrichtigung nennt den Tab.

Es gelten dieselben Regeln wie für die Glocke. In dem Tab, den Sie gerade ansehen, geschieht nichts, und die Markierung verschwindet, wenn Sie den Tab ansehen. Ein Bereich zeigt höchstens alle 10 Sekunden eine Benachrichtigung jeder Art, und die Bereiche, die an Multi-Exec teilnehmen, zählen als einer, in welchen Tabs sie auch liegen. Die Benachrichtigung enthält nie Terminalausgabe. Aktivität und Stille haben keine eigene Benachrichtigungseinstellung: Das Einschalten der Überwachung ist bereits die Bitte um die Benachrichtigung; schalten Sie also die Überwachung aus oder die Benachrichtigungen für korTTY im Betriebssystem, um sie zu beenden.

Als Ausgabe zählt alles, was der Bereich von seiner Sitzung empfängt: das Echo dessen, was Sie dort tippen, ein Prompt, den die Shell neu zeichnet, und, während der KI-Agent von korTTY in einem SSH-Bereich läuft, der Prompt, den die Shell für die Leerzeile ausgibt, die der Agent ab und zu sendet, um die Verbindung offen zu halten. Ausgabe, die innerhalb von etwa 3 Sekunden eintrifft, nachdem Tasten, die Sie in einem anderen Bereich getippt haben, den Bereich über den Broadcast-Modus oder Multi-Exec erreicht haben, ist die Antwort der Shell auf diese Tasten, meist ihr Echo: Sie zählt nicht als Aktivität und startet keine Stille-Zählung, sodass beim gleichzeitigen Tippen in ein Dutzend überwachter Bereiche keiner von ihnen benachrichtigt. Ausgabe nach einer neuen Ruhephase zählt wieder.

Klicken auf eine Benachrichtigung

Klicken Sie auf eine der Desktop-Benachrichtigungen auf dieser Seite – die Glocke, ein beendeter Befehl, eine Programmaufforderung, eine KI-Ausführung, Aktivität oder Stille – wird das Fenster, das den Tab enthält, nach vorne gebracht, der Tab ausgewählt und das Paneel fokussiert, aus dem die Benachrichtigung stammt; eine KI-Swarm-Benachrichtigung wählt den Tab des Swarms. Der Tab wird beim Klicken nachgeschlagen, sodass ein Tab, den Sie inzwischen in ein anderes Fenster verschoben haben, noch gefunden wird, und ein bereits geschlossener Tab bewirkt, dass der Klick nichts tut. Auf macOS funktioniert dies in der installierten korTTY.app, deren Benachrichtigungen die eigenen von korTTY sind, und mit ./gradlew run über den nativen korTTY Notifications-Helper; unter Windows funktioniert es für die neueste Benachrichtigung; unter Linux funktioniert es, wenn der Desktop-Benachrichtigungsserver Aktionen unterstützt, wie GNOME und KDE Plasma tun. Die Details pro Plattform finden Sie in der Tabelle unter Coding-Agents.

Von Ihrer Organisation deaktiviert

Ihre Organisation kann jede Desktop-Benachrichtigung von korTTY mit desktop-notifications = "deny" in der Unternehmensrichtlinie ausschalten. Die Schalter in Einstellungen → Messaging bleiben dann ausgeschaltet. Die Markierungen auf den Tabs bleiben.

Programme, die in die Zwischenablage kopieren (OSC 52)

Programme wie vim, Neovim und tmux können mit der Escape-Sequenz OSC 52 (ESC ] 52 ; c ; <base64 text> BEL) Text in die Zwischenablage des Terminals kopieren, in dem sie laufen. Über SSH ist das für sie der einzige Weg, die Zwischenablage des Computers vor Ihnen zu erreichen: Sie kopieren in vim auf dem Server, und der Text liegt in Ihrer Zwischenablage. korTTY erlaubt das nur, wenn Sie Programmen im Terminal erlauben, Text in die Zwischenablage zu kopieren (OSC 52) in Einstellungen → Terminal einschalten; standardmäßig ist es ausgeschaltet. Zum Ausprobieren schalten Sie es ein und führen Folgendes aus:

printf '\e]52;c;%s\a' "$(printf 'copied from the server' | base64)"
  • Jedes Mal, wenn ein Programm kopiert, meldet die Statusleiste seines Fensters das und nennt den Tab, zum Beispiel Ein Programm im Tab „web-01“ hat 22 Zeichen in die Zwischenablage kopiert (OSC 52). Solange die Einstellung ausgeschaltet ist, meldet die Statusleiste, dass ein Programm es versucht hat, und die Zwischenablage bleibt, wie sie war.
  • Mit OSC 52 können Programme nur in die Zwischenablage schreiben, aber niemals daraus lesen: korTTY beantwortet OSC-52-Abfragen nie, sodass nichts, das Sie woanders kopiert haben, ein Programm im Terminal erreicht. Ein eigenes Einfügekommando eines Programms, das die Zwischenablage auf diese Weise liest, wie das OSC-52-Einfügen von Neovim, erhält daher nichts; fügen Sie stattdessen mit dem Einfüge-Tastenkürzel von korTTY ein, das über den Einfügeschutz läuft. Programme, die das Zwischenablage-Protokoll von kitty sprechen, können das Lesen anfordern, siehe Programme, die die Zwischenablage lesen.
  • Ein Schreibvorgang kann bis zu 256 KiB Text übertragen. Ein größerer Schreibvorgang, einer, der kein gültiges Base64 ist, oder einer, dessen Text kein UTF-8 ist, ändert nichts, und die Statusleiste meldet das. Zeilenumbrüche im Base64, wie base64 ohne -w0 sie schreibt, sind kein Problem.
  • Jede Auswahl, die ein Programm nennt (c, p, q, s, die Cut-Buffer 0 bis 7 oder keine), landet in derselben Zwischenablage; unter Linux ist das die Zwischenablage, nicht die primäre Auswahl. Kopiert ein Programm mehrmals kurz hintereinander, enthält die Zwischenablage am Ende den letzten Text.
  • Mit dem internen Zwischenablagemodus der Unternehmensrichtlinie landet, was Programme kopieren, in der internen Zwischenablage von korTTY und erreicht nie die Zwischenablage des Betriebssystems.
  • Ihre Organisation kann es mit allow-osc52-clipboard-write = false in ihrer Unternehmensrichtlinie verbieten: Die Einstellung ist dann aus und mit dem Hinweis „Verwaltet von Ihrer Organisation“ gesperrt, und die Statusleiste meldet, dass ein Programm es versucht hat.
  • Diese Funktion braucht keine Shell-Integration und funktioniert in lokalen Shells und SSH-Sitzungen gleichermaßen. Innerhalb von tmux reicht set -g set-clipboard on in ~/.tmux.conf die Kopien von tmux und der Programme darin an korTTY weiter. Mosh-Verbindungen übertragen die Sequenz möglicherweise nicht.
  • Außer der Statusleiste weist Sie nichts darauf hin, dass sich die Zwischenablage geändert hat. Text, den ein Programm dort abgelegt hat und den Sie in korTTY einfügen, durchläuft weiterhin den Einfügeschutz, der bei Zeilenumbrüchen und Steuerzeichen nachfragt, andere Anwendungen fügen ihn aber unverändert ein. Lassen Sie die Einstellung ausgeschaltet, solange Sie auf Servern arbeiten, deren Programmen Sie nicht vertrauen.
  • Das eigene Log von korTTY zeichnet nur auf, wie viele Bytes ein Programm kopiert hat, nie den Text. Ein Terminalprotokoll oder Sitzungsjournal des Bereichs lässt Escape-Sequenzen weg, sodass der kopierte Text auch dort nicht ankommt, außer wenn ein Programm die seltene 8-Bit-Form der Sequenz verwendet: Dann enthält die Datei den Text Base64-kodiert.

Die Einstellung wird bei jedem Schreibvorgang gelesen, sodass eine Änderung für offene Tabs gilt, sobald Sie speichern. Siehe Terminal-Einstellungen.

Programme zum Auslesen der Zwischenablage (OSC 5522)

Das Zwischenablage-Protokoll von kitty, OSC 5522, ermöglicht Programmen, die Zwischenablage zu lesen und zu schreiben, und sie zu fragen, ob das Terminal dies unterstützt (CSI ? 5522 $ p). Editoren wie Neovim und das kitten clipboard-Tool nutzen es, auch auf einem Server über SSH. korTTY unterstützt es nach denselben Regeln wie OSC 52, und das Lesen erfordert einen zweiten Schalter sowie Ihre Antwort jedes Mal.

  • Schreiben folgt Programmen im Terminal erlauben, Text in die Zwischenablage zu kopieren (OSC 52) und allow-osc52-clipboard-write: Wenn es deaktiviert ist, wird das Schreiben eines Programms abgelehnt und die Statusleiste meldet, dass ein Programm es versucht hat. Wenn es aktiviert ist, wird der Text in die Zwischenablage übernommen, maximal 256 KiB, und die Statusleiste nennt den Tab, zum Beispiel Ein Programm im Tab „web-01“ hat 22 Zeichen in die Zwischenablage kopiert (OSC 5522).
  • Lesen erfordert Programmen im Terminal erlauben, das Lesen der Zwischenablage anzufragen (OSC 5522) in Einstellungen → Terminal, die standardmäßig deaktiviert ist. Bei aktivierter Option öffnet jeder Lesevorgang einen Prompt, der den Tab, den Namen, den das Programm sich selbst gibt, und die angefragten Typen angibt. Ablehnen ist der Standardbutton, und auch das Schließen des Prompts lehnt ab. Einmal erlauben gibt den Text nur dieses eine Mal heraus.
  • Für dieses Programm erlauben wird nur angezeigt, wenn das Programm bei seiner Anfrage einen Namen und ein Passwort mitsendet. KorTTY übergibt den Text dann an spätere Anfragen mit demselben Namen und demselben Passwort im selben Tab, ohne nachzufragen, bis das Tab geschlossen wird. Dabei wird nichts gespeichert.
  • Wenn Sie einen Lesezugriff verweigern, verweigert der Tab weitere Lesezugriffe 10 Sekunden lang ohne Nachfragen, damit ein Programm Sie nicht mit Prompts überflutet.
  • Einfüge-Ereignisse: Ein Programm kann verlangen, dass Ihre Einfügungen als Ereignis an es gelangen, statt als eingegebener Text (CSI ? 5522 h). Wenn Sie dann mit dem Einfüge-Tastenkürzel von korTTY hineinfügen, liest das Programm die Zwischenablage selbst, ohne ein Prompt, weil die Einfügung Ihre Zustimmung darstellt. KorTTY tut dies nur, während das Lesen aktiviert ist; andernfalls erfolgt die Einfügung auf dem üblichen Weg, über Einfügeschutz. Ein Programm, das über ein Einfüge-Ereignis liest, erhält den Text so, wie er ist, sodass die Einfüge-Warnung von korTTY sie nicht sieht. Wenn Ihre Organisation eine Mindestschwelle für Einfüge-Warnungen festlegt, erfolgt jede Einfügung auf dem üblichen Weg.
  • korTTY tauscht nur Text aus (text/plain). Ein Schreiben ohne Text wird abgelehnt, und ein Lesen erhält den Text und nichts anderes. Das Auflisten des Inhalts der Zwischenablage erfordert keine Berechtigung und meldet text/plain oder nichts. Die Primärauswahl von Linux steht Programmen nicht zur Verfügung.
  • Mit dem internen Zwischenablage-Modus der Unternehmensrichtlinie werden Schreibvorgänge in die interne Zwischenablage von korTTY geleitet und Lesevorgänge liefern die interne Zwischenablage, niemals die des Betriebssystems.
  • Ihre Organisation kann das Lesen mit allow-osc5522-clipboard-read = false in ihrer Unternehmensrichtlinie verbieten: Der Schalter ist dann ausgeschaltet und gesperrt, es öffnet sich kein Prompt und Einfügeereignisse sind deaktiviert.
  • Der strikte Terminalmodus unterdrückt OSC 5522, den Paste-Event-Modus und die Unterstützungsabfrage, sodass ein Programm in einer solchen Sitzung ein Terminal ohne das Protokoll sieht.
  • Das korTTY-Protokoll erfasst, wie viele Bytes ein Programm geschrieben oder gelesen hat, nie den Text.

Um es auszuprobieren, schalten Sie beide Einstellungen ein und führen Sie kitten clipboard --get-clipboard auf einem Computer aus, auf dem die kitty-Tools installiert sind, oder fragen Sie, ob das Terminal das Protokoll unterstützt:

printf '\e[?5522$p'; read -rs -t 1 -d y reply; printf '%q\n' "$reply"

Eine Antwort, die mit 5522;2$ endet, bedeutet, dass korTTY dies unterstützt und Einfügeereignisse deaktiviert sind.