4 points par GN⁺ 2024-08-13 | 1 commentaires | Partager sur WhatsApp

Retour d’expérience sur WezTerm

Avant de commencer

  • Installation de WezTerm nécessaire
  • Les utilisateurs de macOS peuvent l’installer avec Homebrew ($ brew install wezterm)

À propos de Lua

  • La configuration de WezTerm est définie en Lua
  • Lua est similaire à d’autres langages de programmation dynamiques, donc facile à lire
  • Pour des configurations complexes, il est recommandé d’apprendre Lua plus en profondeur

Fichier de configuration et boucle de feedback

  • Le fichier de configuration se trouve à l’emplacement $XDG_CONFIG_HOME/wezterm/wezterm.lua
  • Le fichier de configuration est rechargé automatiquement en cas de modification
  • Il est possible de consulter les logs via l’overlay de debug (CTRL + SHIFT + L)

Réglages d’apparence

Thèmes de couleurs

  • WezTerm propose plus de 1 000 thèmes de couleurs
  • Exemple : config.color_scheme = 'Tokyo Night'

Thèmes de couleurs dynamiques

  • Un exemple de code est fourni pour changer aléatoirement de thème de couleurs à chaque ouverture d’une nouvelle fenêtre

Respect de l’apparence du système

  • Le thème de couleurs change automatiquement selon le mode d’apparence du système
  • Configuration après création du fichier appearance.lua

Réglages de police

  • La police par défaut est JetBrains Mono
  • Exemple : config.font = wezterm.font({ family = 'Berkeley Mono' })

Style de fenêtre

  • Réglage de la transparence de l’arrière-plan et du flou de la fenêtre
  • Exemple : config.window_background_opacity = 0.9

Réglage de la barre d’état

  • Ajout d’une barre d’état de style powerline à droite de la barre d’onglets
  • Utilisation de l’API d’événements de WezTerm

Configuration des touches

Mappage de touches par défaut

  • Il est possible de conserver ou de désactiver le mappage de touches par défaut (config.disable_default_key_bindings = true)

Exemples de mappage de touches

  • Mappage de Option + Left Arrow et Option + Right Arrow pour se déplacer entre les mots
  • Définition d’un raccourci pour ouvrir le fichier de configuration (CMD + ,)

Fonction de multiplexage

  • Utilisation de la fonction de multiplexage de WezTerm
  • Définition d’un raccourci pour scinder la fenêtre (CTRL + SHIFT + P)

Configuration de la touche leader

  • La touche leader est définie sur CTRL + A
  • Le raccourci de division de fenêtre s’utilise avec la touche leader

Déplacement entre panneaux

  • Définition d’un mappage de touches pour se déplacer entre les panneaux (avec les touches de direction vim)

Redimensionnement des panneaux

  • Définition d’une table de touches pour redimensionner les panneaux
  • Utilisation avec la touche leader pour redimensionner les panneaux

Espaces de travail de projet

Création et changement d’espace de travail

  • Création du fichier projects.lua, puis ajout d’une fonction de changement de projet
  • Lors de la sélection d’un projet, un nouvel espace de travail WezTerm est créé

Résumé de GN⁺

  • WezTerm permet une configuration flexible en Lua, ce qui autorise de nombreuses personnalisations
  • Le rechargement automatique et l’overlay de debug facilitent les modifications de configuration
  • Les fonctions de multiplexage et de gestion des espaces de travail sont excellentes, et divers mappages de touches permettent d’améliorer la productivité
  • Parmi les terminaux offrant des fonctions similaires, on trouve Alacritty et kitty

1 commentaires

 
GN⁺ 2024-08-13
Avis sur Hacker News
  • J’ai récemment basculé sur WezTerm et j’en suis très satisfait. J’utilisais auparavant kitty et j’aimais la configuration et la simplicité d’iTerm2. WezTerm est bien meilleur en termes de fonctionnalités fournies par défaut. La configuration du terminal est suffisamment courte pour tenir entièrement sur un écran d’éditeur. Après ça, plus besoin de se soucier du terminal

    • J’ai souvent eu des problèmes avec kitty et j’ai essayé de reproduire les fonctionnalités d’iTerm2, mais j’ai été déçu par les commentaires brusques et méprisants du mainteneur de kitty
    • Par exemple, à la question « comment configurer tmux dans kitty ? », la réponse a été « ne le faites pas, tmux est stupide ». J’ai fini par abandonner
  • WezTerm réagit très vite aux issues GitHub et corrige généralement les problèmes en un ou deux jours. À part un petit souci avec les touches modificatrices via SSH, c’est presque parfait côté fonctionnalités. C’est rapide et agréable à utiliser

    • Avant, j’étais un grand adepte d’Alacritty, mais j’avais besoin d’une meilleure prise en charge des touches modificatrices pour emacs à distance
  • En passant de Kubuntu à Ubuntu, je voulais retrouver certaines fonctionnalités de Konsole (scrollback infini, recherche dans le scrollback), mais comme je ne voulais pas installer Konsole, j’ai installé WezTerm. WezTerm m’a tout de suite plu, même si beaucoup de fonctionnalités ne sont pas faciles à découvrir. La documentation est très bonne, et l’auteur est très impliqué et serviable

    • Par exemple, j’ai trouvé comment sélectionner de gros blocs de texte uniquement au clavier et je l’ai fait une fois, puis je l’ai vite oublié et je me suis remis à sélectionner le texte à la souris. C’est plus rapide que de rechercher à nouveau la page de documentation
    • Pour référence, la page que je cherchais était https://wezfurlong.org/wezterm/copymode.html
  • J’ai essayé Mac Terminal, iTerm2, Kitty, Warp et d’autres, mais je me suis arrêté sur WezTerm. Il est facile à configurer, rapide et agréable à regarder. J’ai même créé un thème

  • Quel est l’avantage de WezTerm ? WezTerm est entièrement cross-OS, donc utilisable sur Linux, macOS et Windows. Je partage la configuration du terminal entre plusieurs OS

  • J’utilise WezTerm depuis environ un an et je soutiens Wez sur GitHub. WezTerm est un excellent terminal, et son développeur aussi. J’utilise souvent la copie rapide et les autres modes de copie

    • Sur un portable macOS, j’utilise quelque chose comme mosh+tmux vers une machine Linux de travail. Je laisse toujours une session tourner, ce qui me permet de travailler depuis le Mac sur la machine de travail. Cela fournit des sessions reconnectables, ainsi que des panneaux et des onglets
  • La raison pour laquelle je continue d’utiliser iTerm2, c’est la fonctionnalité « Edit->Selection Respects Soft Boundaries ». Elle interprète les caractères de barre verticale | comme des séparateurs de panneau, et la sélection s’adapte en conséquence

  • Je suis d’accord avec les autres avis. Cela fait presque 10 ans que j’ai commencé à utiliser macOS, et j’utilisais iTerm2. Récemment, il a commencé à ralentir. Quand je faisais cmd-tab, je devais attendre plus d’une seconde avant que le terminal apparaisse

    • J’ai évalué plusieurs alternatives, mais aucune ne m’a plu. Un terminal exigeait un compte/une connexion, un autre était écrit en {Java,Type}Script et cassait même des commandes simples à cause de problèmes de flux asynchrones
    • WezTerm est très rapide, configurable et fournit le thème OneDark (base16) par défaut
    • Lors de la configuration initiale, j’ai dû ajouter cmd-left et cmd-right dans la configuration lua
  • Wez va publier un livre sur la programmation système en Rust

  • HS : j’attends surtout Ghostty, créé par le fondateur de HashiCorp