Benutzer-Werkzeuge

Webseiten-Werkzeuge


kitty

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
kitty [2023/07/17 16:53]
root angelegt
kitty [2023/07/17 21:55] (aktuell)
root [sudo]
Zeile 12: Zeile 12:
   * Programme im Terminal müssen die Sequenzen kennen um das Terminal zu steuern und wissen was das Terminal kann   * Programme im Terminal müssen die Sequenzen kennen um das Terminal zu steuern und wissen was das Terminal kann
       * für gewöhnlich macht das (n)curses-Library für die Programme       * für gewöhnlich macht das (n)curses-Library für die Programme
-      * die Informationen können über die termcap/terminfo-Bibliothek abgerufen werden+      * die Informationen können über die termcap/terminfo-Bibliothek (terminfo ist eine neuere Implementierung) (ncurses greift auf diese Bibliotheken zu) abgerufen werden
       * die Informationen stehen in der termcap-Datenbank        * die Informationen stehen in der termcap-Datenbank 
           * in der Regel sind das einzelne Dateien für die einzelnen Terminals           * in der Regel sind das einzelne Dateien für die einzelnen Terminals
Zeile 22: Zeile 22:
       * kitty stellt mehr Funktionalitäten zur Verfügung       * kitty stellt mehr Funktionalitäten zur Verfügung
   * Kitty meldet sich als "xterm-kitty"   * Kitty meldet sich als "xterm-kitty"
 +
 +
 +==== ssh ====
 +
 +  * TERM wird durch ssh übermittelt -> die Remot-Maschine weiß also welches Terminal benutzt wird
 +  * kitty ist aber keines der verbeiteten Terminals, in der Regel ist die entsprechende Termcap-Datei daher auf der Remote-Maschine nicht installiert
 +      * das führt zum Fehler "Unknown Terminal Type"
 +
 +
 +  * TERM auf ein anderes (kompatibles) Terminal setzen
 +      * "export TERM=xterm-256color" auf der Remote-Maschine eingeben
 +      * einige Funktionen von kitty werden nicht funktionieren/es kann in seltenen Fällen zu seltsamen Phänomenen kommen
 +          * aber meist sollte das funktionieren
 +
 +
 +  * ssh kitten
 +<sxh bash>
 +kitty +kitten ssh user@whatever
 +</sxh>
 +   * macht ssh zum gewünschten Host (alle Parameter werden transparent an ssh übergeben)
 +   * kopiert das Terminfo-File von Kitty nach ~.terminfo/kitty.terminfo auf dem Zielsystem
 +       * es kann auf Wunsch weitere Dateien kopieren und Umgebungsvariablen setzen
 +           * .zshrc, vimrc usw.
 +   * um einen Alias zu erzeugen (ssh wird dann auf kitty +kitten ssh gemappt) kann man folgendes in seine .zshrc oder .bashrc hinzufügen:
 +<sxh bash>
 +if [ "$TERM" = 'xterm-kitty' ]; then
 +        alias ssh='kitty +kitten ssh'
 +fi
 +</sxh>
 +
 +  * kopieren des terminfo-Files
 +      * im lokalen Kitty "echo $TERMINFO"
 +          * das liefert den Pfad zur Terminfo-File
 +      * oder infocmp
 +          * ganz oben wird die Datei genannt aus der gelesen wurde
 +      * die Datei in das Verzeichnis "~/.terminfo" auf der Remote-Maschine kopieren
 +          * das Verzeichnis wird in der Regel nicht existieren -> muss angelegt werden
 +  * die bessere Idee ist wahrscheinlich aber dieser Weg:
 +<sxh bash>
 +infocmp -a xterm-kitty | ssh myserver tic -x -o \~/.terminfo /dev/stdin
 +</sxh>
 +    * das dumped den Inhalt des Terminfo-Files und compiliert es und dumped den Inhalt in ~/.terminfo/
 +
 +
 +==== sudo ====
 +
 +  * Problem ist wahrscheinlich das kitty als User-Installation (also nicht systemweit) installiert wurde
 +
 +
 +  * für "normales" sudo (wenn man root wird) lässt es sich so lösen:
 +      * sudo visudo
 +<sxh bash>
 +Defaults env_keep += "TERM TERMINFO"
 +</sxh>
 +
 +am Ende hinzufügen
 +    * übernimmt in die neue Shell-Session die Terminfo-Variable (und die Term-Variable)
 +
 +  * wenn man sudo -u <irgendeinBenutzer> nutzt hat man aber keinen Zugriff auf die Terminfo-Datei im Benutzerverzeichnis
 +      * die vorstehende Änderung am sudoers file muss rückgängig gemacht werden
 +          * sonst wird versucht auf die TERMINFO im Benutzerverzeichnis zuzugreifen, die nicht gelesen werden kann
 +      * es hilft nur global installieren der Datei
 +<sxh bash>
 +infocmp > /tmp/kitty
 +sudo tic /tmp/kitty 
 +</sxh>
 +
 +    * infocmp ließt die (binäre) geladene Terminfo-Datei aus und schreibt sie als Text nach /tmp/kitty
 +    * tic ließt die Textdatei ein und compiliert sie und da per sudo aufgerufen installiert es sie systemweit
 +  * man kann natürlich auch die bereits kompilierte Terminfo-Datei (für gewöhnlich in ~/.local/kitty.app/share/terminfo/x) manuell dorthin kopieren wo die Terminfo-Dateien erwartet werden (das hängt aber von der Distribution/Betriebssystem ab)
kitty.1689605584.txt.gz · Zuletzt geändert: 2023/07/17 16:53 von root