Kitty: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Dirk (Diskussion | Beiträge) K Verschiebung community -> extra |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
''kitty'' ist ein moderner, hochgradig konfigurierbarer Terminal-Emulator, der einen starken Fokus auf Skriptbarkeit und Tastaturbedienung legt. Zu seinen besonderen Funktionen zählen unter anderem ein integriertes Tab- und Tiling-System, sowie ein mächtiges Plugin-System namens „Kittens“. Das Rendern der Inhalte lagert kitty per OpenGL an die Grafikkarte aus. | ''kitty'' ist ein moderner, hochgradig konfigurierbarer Terminal-Emulator, der einen starken Fokus auf Skriptbarkeit und Tastaturbedienung legt. Zu seinen besonderen Funktionen zählen unter anderem ein integriertes Tab- und Tiling-System, sowie ein mächtiges Plugin-System namens „Kittens“. Das Rendern der Inhalte lagert kitty per OpenGL an die Grafikkarte aus. | ||
{{installation|name=kitty|paket=kitty|repo= | {{installation|name=kitty|paket=kitty|repo=extra}} | ||
Wenn man mit Kitty per [[SSH]] auf andere Hosts zugreifen will, sollte man auf diesen das Paket {{paket|kitty-terminfo}} installieren, da man ansonsten Probleme mit der Darstellung im Terminal bekommt. | Wenn man mit Kitty per [[SSH]] auf andere Hosts zugreifen will, sollte man auf diesen das Paket {{paket|kitty-terminfo}} installieren, da man ansonsten Probleme mit der Darstellung im Terminal bekommt. | ||
Zeile 99: | Zeile 99: | ||
[[Bild:Kitty_powerline.png|thumb|300px|Die Powerline von kitty zeigt mehrere Tabs an]] | [[Bild:Kitty_powerline.png|thumb|300px|Die Powerline von kitty zeigt mehrere Tabs an]] | ||
[[Bild:Kitty_unicode_emojis.png|thumb|300px|Das Unicode-''Kitten'' listet auswählbare Emojis auf]] | [[Bild:Kitty_unicode_emojis.png|thumb|300px|Das Unicode-''Kitten'' listet auswählbare Emojis auf]] | ||
[[Bild:Kitty_msgcat.png|thumb|300px|Ausschnitt aus dem Farbtest von | [[Bild:Kitty_msgcat.png|thumb|300px|Ausschnitt aus dem Farbtest von {{ic|msgcat}}]] | ||
==== Tabs ==== | ==== Tabs ==== | ||
Aktuelle Version vom 24. Mai 2023, 18:23 Uhr
kitty ist ein moderner, hochgradig konfigurierbarer Terminal-Emulator, der einen starken Fokus auf Skriptbarkeit und Tastaturbedienung legt. Zu seinen besonderen Funktionen zählen unter anderem ein integriertes Tab- und Tiling-System, sowie ein mächtiges Plugin-System namens „Kittens“. Das Rendern der Inhalte lagert kitty per OpenGL an die Grafikkarte aus.
Installation
kitty ist als
kitty
in extra
verfügbar, und kann von dort
mittels Pacman
installiert werden.
Wenn man mit Kitty per SSH auf andere Hosts zugreifen will, sollte man auf diesen das Paket kitty-terminfo installieren, da man ansonsten Probleme mit der Darstellung im Terminal bekommt.
Layouts
Die Integrierte Tiling-Funkt von kitty unterstützt mehrere Layouts die standardmäßig mittels der Tastenkombination Strg + ⇧ Shift + L durchgeschaltet werden können. Zudem besteht die Möglichkeit, programmatisch Layouts auszuwählen.
fat
– Eines oder mehrere Tilingfenster werden im oberen Bereich angezeigt. Weitere Fenster werden darunter in klein angezeigt.grid
– Alle Tilingfenster werden in einem Gittermuster sortiert.horizontal
– Alle Tilingfenster werden nebeneinander angezeigt.stack
– Es wird nur ein einziges Tilingfenster zur Zeit angezeigt.tall
– Eines oder mehrere Tilingfenster werden linksseitig angezeigt. Weitere Fenster werden rechts daneben in klein angezeigt.vertical
– Alle Tilingfenster werden untereinander angezeigt.
Für die Größenänderung von Tilingfenstern verfügt kitty über einen Größenänderungsmodus. Hierzu wechselt man in das Tilingfinter das man verändern möchte, und startet diesen standardmäßig mittels Strg + ⇧ Shift + R. Die Verwendung ist selbsterklärend.
Tastenkürzel
Um Tasten zu referenzieren unterstützt kitty sowohl GLFW keys (ohne den Prefix GLFW_KEY_
) als auch XKB keys (ohne den Prefix XKB_KEY_
). Auch können die reinen Keycodes (native_code
) verwendet werden
Die Codes können mittels kitty --debug-keyboard
angezeigt werden. Hierzu führt man den Befehl aus, und drückt dann eine beliebige Taste.
kitty --debug-keyboard
Press xkb_keycode: 0x26 clean_sym: a composed_sym: a text: a mods: none glfw_key: 65 (A) xkb_key: 97 (a) on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a' state: 0 sent text to child Release xkb_keycode: 0x26 clean_sym: a mods: none glfw_key: 65 (A) xkb_key: 97 (a) on_key_input: glfw key: 65 native_code: 0x61 action: RELEASE mods: 0x0 text: state: 0 ignoring as keyboard mode does not allow release events
Die ersten beiden Zeilen sind das Drücken der Taste (hier A), die beiden letzten Zeilen das Loslassen der Taste. Folgende Angaben können für A in diesem Fall verwendet werden.
- 0x61 (native_code)
- a (XKB)
- A (GLFW)
Es wird seitens der Entwickler empfohlen, nach Möglichkeit immer die GLFW-Angaben zu benutzen, und andere Angaben nur zu verwenden, wenn kein GLFW-Code existiert.
kitty_mod
Alle Tastenkürzel werden mit einer speziellen Kombination verwendet, dem kitty Modifier (kitty_mod
). Es ist ratsam, eigene Tastenkürzel ebenfalls nur mit kitty_mod
zu verwenden. Standardmäßig ist der kitty Modifier die Tastenkombionation Strg + ⇧ Shift. kitty_mod
ist mittels der gleichnamigen Konfigurationsoption einstellbar. Es können alle Modifier-Tasten verendet werden. Die Taste ⊞ Super funktioniert leider nicht, da sie kein Modifier ist.
Eigene Tastenkürzel
Tastenkürzel werden in der Konfigurationsdatei mittel map
erstellt. Es gibt diverse mögliche Aktionen für das Drücken der Kombinationen. Hier können aus Platzgründen nicht alle Optionen beschrieben werden.
map kitty_mod+F1 launch man kitty map kitty_mod+F2 new_tab man kitty map kitty_mod+F3 combine : goto_layout tall : launch vim : send_text normal i
Standardmäßig ist kitty_mod
Strg + ⇧ Shift. Wenn man nun also Strg + ⇧ Shift + F1 drückt, wird die Manpage von kitty in einem neuen Tiling-Fenster angezeigt. Beim drücken von Strg + ⇧ Shift + F2 wird die Manpage in einem neuen Tab angezeigt. Und wenn man Strg + ⇧ Shift + F3 drückt, wird ein Kombiniertes Kommando ausgeführt: Zuerst wird in das tall
-Layout gewechselt, dann wird in einem neuen Tiling-Fenster Vim gestartet und es wird an dieses Fenster gesendet, dass die Taste I gedrückt wurde, um Vim in den Bearbeitungsmodus zu schalten.
Konfiguration
Standardmäßig nutzt kitty die integrierte Konfiguration, die bereits sehr gut definiert und leicht zu merken ist. Einige Tastenkombinationen sind auf nicht-QWERTY-Layouts umständlicher zu erreichen.
Um die Konfiguration zu bearbeiten, kann man innerhalb von kitty standardmäßig mittels Strg + Alt + F2 die Konfigurationsdatei öffnen. Sofern sie noch nicht existiert, wird sie in ~/.config/kitty/kitty.conf
erstellt. Dinge die man nicht konfigurieren möchte, können weg gelassen, bzw. gelöscht werden. Später kann man sich Konfigurationsoptionen, die von der Standardkonfiguration abweichen, mittels kitty --debug-config
ausgeben lassen.
Zudem besteht die Möglichkeit, mittels kitty --config DATEI
eine andere Konfiguration zu laden, oder mittels der Angabe mehrerer Dateinamen die Konfigurationen zu verknüpfen, spätere Einstellungen überschreiben dabei frühere Einstellungen.
Beispiele
Aufgrund des Umfangs der Konfiguierbarkeit werden in diesem Abschnitt nur einige Punkte erwähnt.
Schriftart einstellen
kitty erlaubt die Unterscheidung von vier Schrifttypen (normale Schrift, fett, kursiv, und fett-kursiv). Verwendbare Schriften und deren Namen kann man sich mittels kitty list-fonts
anzeigen lassen, die Einstellung erfolgt mit vier Einträgen, in denen die entsprechenden Namen hinterlegt werden.
font_family Operator Mono Book bold_font DejaVu Sans Mono Bold italic_font Operator Mono Book Italic bold_italic_font Source Code Pro Bold Italic
Die verwendeten Schriftstile müssen nicht von derselben Schriftart bereitgestellt werden.
Zudem besteht die Möglichkeit, für Schriftzeichen eines bestimmten „Wertes“ (die so genannten Unicode Points) oder eines Bereichs von Werten eine andere Schriftart zuzuweisen. Einsatzzweck wäre zum Beispiel eine Symbolschriftart für Emojis oder spezielle Textsymbole.
symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols
Mit diesem Beispiel wird den Unicode-Points E0A0 bis E0A2 sowie E0B0 bis E0B3 die Schriftart PowerlineSymbols zugewiesen. Die „Powerline“ ist eine bestimmte Art der Anzeige von Tabs.
Fensterlayout
Die Fenstergröße von kitty kann in Pixeln und in Spalten/Zeilen angegeben werden. Auch besteht die Möglichkeit, dass die Fenstergröße gespeichert, und für neue Fenster wiederverwendet wird.
remember_window_size no initial_window_width 108c initial_window_height 32c resize_debounce_time 0 resize_in_steps yes
Diese Konfiguration bewirkt, dass neue kitty-Fenster immer gleich groß sind, nämlich 108 Spalten und 32 Zeilen, wenn die Angabe c
weg gelassen wird, werden die Werte als Pixelangaben interpretiert. Zudem wird das Neuzeichnen des Fensters ohne Verzögerung ausgeführt, was zu einer flüssigeren Gesamtdarstellung führt. Auch wird das Fenster nicht in Pixeln in der Größe verändert, sondern immer in Schritten die so groß sind wie eine Zelle (ein Zeichen), was zu einer konsistenteren Anzeige führt.
Tabs
Die Tab-Leiste wird standardmäßig ab zwei Tabs angezeigt, und befindet sich am unteren Fensterrand. Die Tabs haben einen Ein/ und Auslaufenden Grafikeffekt durch entsprechende ASCII-Zeichen, und Zeigen den Titel an.
tab_bar_min_tabs 1 tab_bar_style powerline tab_title_template {index}: {title}
Durch diese Konfiguration wird die Tabliste als „Powerline“ dargestellt, zudem wird sie immer angezeigt, und die Tabs haben vor dem Titel noch die ID stehen.
Farben
kitty unterstützt 256 Farben, Durchnummeriert color0 bis color255. Die Farben color0 bis color15 sind dabei die Standard-Terminalfarben jeweils in einer dunklen und hellen Variante (color0 und color8, color1 und color9, color2 und color10, etc.). Zudem können neben Vorder- und Hintergrund für verschiedene Dinge noch andere Farben vergeben werden.
Farben können sowohl als Hexadezimalwerte (#RRGGBB
) als auch per RGB-Notation (rgb:rrr/gggg/bbbb
) angegeben werden.
background #2e3436 foreground #d3d7cf selection_background #d3d7cf selection_foreground #2e3436
Hierdurch wird für normalen Text ein dunkelgrauer Hintergrund gesetzt, der Text selbst ist hellgrau. Sobald der Text markiert wird, werden die Farben durch entsprechendes setzen „invertiert“.
Sessions
Sessions erlauben eine Standardkonfiguration an Tabs und Tilingfenstern zu laden, mit der kitty startet. Die Session kann entweder mittels der Konfigurationsoption startup_session DATEIPFAD
definiert werden, oder mittels kitty --session DATEIPFAD
übergeben werden. Session-Dateien selbst sind einfache Scripte.
session.conf
new_tab nummer eins launch htop launch bash launch man kitty new_tab 😀 layout tall launch vim launch bash
Hierdurch wird kitty mit zwei Tabs gestartet. Das erste Tab heißt „nummer eins“ und beinhaltet htop, bash, und die Manpage von kitty in eigenen Tilingfenstern. Das zweite Tab hat als Titel ein Emoji, verwendet das „tall“-Layout (siehe dort), und zeigt vim und die bash.