Liquid Prompt 1.10

Posté par  (site web personnel) . Édité par bubar🦥, ZeroHeure, Florent Zara, Pierre Jarillon et palm123. Modéré par Pierre Jarillon. Licence CC By‑SA.
39
2
juin
2016
Ligne de commande

Le Liquid Prompt est un prompt fluide affichant de manière limpide des informations utiles dans le prompt de votre shell bash ou zsh. Le liquidprompt était déjà bien rempli de fonctionnalités, certaines ont été ajoutées, d'autres corrigées, et leurs performances ont encore été améliorées avec les 216 commits durant les 17 mois écoulés. Il était temps de sortir une nouvelle version officiellement stable.

Je profite de cette dépêche pour remercier chaudement les 35 contributeurs qui par leurs patchs ont contribué à cette version.

Quelques changements sont présentés dans la suite de cette dépêche.

Pour les détails de cette version les curieux sont invités à consulter l'annonce complète, notamment pour quelques changements incompatibles. En voici un extrait traduit :

  • Les configurations de type LP_ENABLE sont désormais statiques et non plus prises en compte immédiatement après leur modification. Ça se passe via le fichier de configuration et la relance de Liquid Prompt. Ceci a permis de réduire drastiquement le coût d'affichage de chaque prompt.
  • Arrivée de la configuration LP_ENABLE_SUDO permettant une adaptation dynamique lors de l'utilisation de sudo. Noter que pour le moment cette configuration est désactivée, par défaut de capacité de différenciation immédiate entre une autorisation et un refus.
  • Beaucoup de corrections de bugs pour les indicateurs d'heure analogique, de température machine, de charge CPU et de batterie.
  • Meilleure prise en compte de l'usage de tmux par l'amélioration de sa détection.
  • Pour Zsh, l'option nopromptsubstest maintenant activée par défaut. Cela peut impacter notamment des définitions de RPS1 (défini en dehors de Liquid Prompt).

Note : deux bugs sur OS X ont déjà été remontés depuis la release, donc il est recommandé d'utiliser la branche master pour ce système d'exploitation.

Copie d'écran de Liquid Prompt

Aller plus loin

  • # my first comment

    Posté par  . Évalué à -10.

    haha … wow it works :)

  • # Chez moi c'est lent ...

    Posté par  . Évalué à 2.

    Depuis quelques temps j'ai des problèmes de lenteur sur la branche master de liquidprompt. Je n'ai pas ce problème avec la version 1.9. J'ai testé en 1.10 … c'est lent ! plus d'1 scd pour afficher le prompt. J'utilise dash dans un xterm, bref rien de très spécial je pense.

    J'ai vérifier la configuration, j'ai très peu de fonctionnalités activées. Pour l'instant je suis resté en 1.9.

    • [^] # Re: Chez moi c'est lent ...

      Posté par  (site web personnel) . Évalué à 2.

      Si tu utilises dash, ce n'est la la faute de Liquid Prompt qui ne fonctionne que dans bash ou zsh.

      Je suis très surpris de la régression de performance dont tu parles.
      Quel est le système de gestion de versions dans ton répertoire où l'affichage prend plus d'une seconde ?

      Mainteneur de LiquidPrompt - https://github.com/nojhan/liquidprompt

      • [^] # Re: Chez moi c'est lent ...

        Posté par  . Évalué à 2.

        Salut,

        le temps vérifier, j'ai eu un doute sur dash, je me suis souvenu avoir changé et j'ai fait erreur: j'utilise bash + terminology .

        Sinon j'avais 15 mn à passer je peux te dire que ça vient du commit 5b1eaf7 ligne 1434:
        la boucle du $(sensors -u | sed …) dure environ 1scd sur ma machine ! Le sensors -u prends systématiquement 970ms.

        Bref, ça ne vient pas directement de liquidprompt =). La version 1.10, sensors désactivé est à 36ms, la version 1.9 était a 38ms (avec les sensors …) =D !

  • # Quid des performances ?

    Posté par  . Évalué à 2.

    Quel est l'impact de ces prompts évolués sur les performances ?
    Je viens de configurer le mien (sans liquid prompt) pour avoir des informations "git" et je me demandais si ce n'était pas long pour obtenir de telles informations.

    • [^] # Re: Quid des performances ?

      Posté par  (Mastodon) . Évalué à 2.

      Tout dépend. Si t'as une petite machine (RaspberryPi) et un gros GIT (kernel Linux), c'est long.

      Sur une machine de bureau et des GIT de petites tailles (quelques dizaines/centaines de fichiers) c'est instantané.

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Quid des performances ?

      Posté par  . Évalué à 3.

      Ca dépend des informations que tu demandes, de la complexité pour le VCS de les obtenir, de la machine, de la taille du répo et de la performance de l'implémentation du prompt.

      En pratique pour utiliser powerline quotidiennement, qui était plus rapide que liquidprompt quand je l'ai quitté en 2013, je n'ai jamais attendu mon prompt en bossant sur des repos d'un petite dizaine de milliers de fichier.

      Si tu ne fais pas le jacky avec ton prompt, tu gagnes des infos utiles sans inconvénient notable. Si tu utilises un VCS lent, bha ton prompt est lent et tu vas désactiver le support de ton VCS au bout de 2h…

    • [^] # Re: Quid des performances ?

      Posté par  . Évalué à 1.

      Perso, je n'arrive plus à l'utiliser.
      Ce projet est cool fun & co mais c'est trop lent.
      J'ai un tout petit projet sur github et avec liquidprompt c'est juste très long de juste faire un cd mon_mini_projet (Uniquement des scripts shell)
      Quand je dis long c'est juste 2 ou 3 secondes. Mais à l'usage c'est vraiment chiant.

      Malgré tous je teste souvent liquidprompt que je trouve vraiment sympa mais pas dans un répertoire github :-(

      • [^] # Essaye angel-PS1

        Posté par  (site web personnel) . Évalué à 1.

        Dis-moi ce que tu penses des performances de mon autre projet, The Angel's Prompt sur ta machine. Ça devrait poutrer…

        En le lançant sous bash avec l'option --debug=time, le temps de calcul du prompt est indiqué.

        $ eval $(./angel-PS1 --debug=time)

        Mainteneur de LiquidPrompt - https://github.com/nojhan/liquidprompt

        • [^] # Re: Essaye angel-PS1

          Posté par  . Évalué à 1.

          Je viens de tester :

          kangs<undef:~]$ eval `./angel-PS1`
          angel-PS1: AngelPS1/Prompt/Default.pm load error: Mauvais descripteur de fichier at ./angel-PS1 line 2775.
          [kangs<undef:~]$

          • [^] # Re: Essaye angel-PS1

            Posté par  (site web personnel) . Évalué à 1.

            Peux-tu me donner plus d'informations sur ton système ?

            • Quel système d'exploitation et quelle version ?
            • Quelle version de Perl (perl -v) ?
            • Quel shell ?

            Mainteneur de LiquidPrompt - https://github.com/nojhan/liquidprompt

            • [^] # Re: Essaye angel-PS1

              Posté par  . Évalué à 1.

              J'utilise bash comme shell :

              [kangs<x2305:~]$ cat /etc/os-release
              NAME=openSUSE
              VERSION="13.2 (Harlequin)"
              VERSION_ID="13.2"
              PRETTY_NAME="openSUSE 13.2 (Harlequin) (x86_64)"

              ID=opensuse

              ANSI_COLOR="0;32"

              CPE_NAME="cpe:/o:opensuse:opensuse:13.2"

              BUG_REPORT_URL="https://bugs.opensuse.org"

              HOME_URL="https://opensuse.org/"

              ID_LIKE="suse"

              [kangs<x2305:~]$ uname -a

              Linux kangs 3.16.7-35-desktop #1 SMP PREEMPT Sun Feb 7 17:32:21 UTC 2016 (832c776) x86_64 x86_64 x86_64 GNU/Linux

              [kangs<x2305:~]$ perl -v

              This is perl 5, version 20, subversion 1 (v5.20.1) built for x86_64-linux-thread-multi

  • # Belle MàJ !

    Posté par  (site web personnel) . Évalué à 2.

    MAJ done, et ouais, ça dépote ! Pas mal l'amélioration des perfs !

    (accessoirement un de mes commit de 2014 a été mergé en master, l'émotion :)

  • # Patch AOSP

    Posté par  (Mastodon) . Évalué à 2.

    J'ai un patch local où je détecte qu'on est en environnement de compilation d'Android. Si on a fait un "lunch xxx" il affiche dans le prompt le nom de la target.

    Très pratique pour ceux qui buildent Android, mais je suppose que ça court pas tant que ça les rues… si ça t'intéresse, je te soumets le patch.

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Patch AOSP

      Posté par  (site web personnel) . Évalué à 2.

      Je t'encourage à soumettre ton patch qui pourrait être utile à d'autres utilisateurs.

      Toutefois, je peux t'indiquer d'ores et déjà que je ne le prendrais pas. L'implémentation de Liquid Prompt n'est pas très modulaire et chaque nouvelle fonctionnalité, même non utilisée a un coût au runtime.

      Mainteneur de LiquidPrompt - https://github.com/nojhan/liquidprompt

  • # Antigen et ZSH

    Posté par  . Évalué à 1.

    https://github.com/zsh-users/antigen.git

    C'est un projet qui tente de résoudre le problème de gestion de plugins pour oh-my-zsh et plus généralement zsh. Oh-my-zsh est bien connu et est plus ou moins à l'origine de tous ces shells top tendances mais il y avait un soucis, il inclut un tas de plugins de base que tu n'as pas nécessairement besoin et quand tu veux inclures d'autres plugins, bien, ça devient tendu à gérer, surtout si tu versionnes tes "dotfiles".

    Antigen veut être ce que vundle est à vim pour zsh. Déjà, je dis aïe :)

    Bon, je vous la fais courte, je ne suis pas convaincu, mes prompts sont lents au démarrage et sur rpi c'est atroce, le problème? Antigen vérifie les repos à chaque démarrage de terminal/shell car oui, les plugins sont tous clonés depuis leur repo Github.

    L'idée de départ est louable mais le design n'est pas top. Et perso, je souhaiterais que la gestion de "plugins" soit une problématique traitée par le projet ZSH lui-même, pareil pour vIM ou neovim.

    • [^] # angel-PS1

      Posté par  (site web personnel) . Évalué à 1.

      Alors essaye The Angel's Prompt dont je suis l'auteur.
      Les plugins disponibles ne sont pas encore à la hauteur fonctionnelle de Liquid Prompt, mais au niveau performance cela n'a rien à voir, grâce à une architecture complètement différente.

      Mainteneur de LiquidPrompt - https://github.com/nojhan/liquidprompt

      • [^] # Re: angel-PS1

        Posté par  . Évalué à 1.

        Les plugins disponibles ne sont pas encore à la hauteur fonctionnelle de Liquid Prompt, mais au niveau performance cela n'a rien à voir, grâce à une architecture complètement différente.

        Avec une video explicative, c'est mieux.
        Un peu trop de 'euuh' et la prise de son pas génial. :)

    • [^] # Re: Antigen et ZSH

      Posté par  . Évalué à 2.

      Et perso, je souhaiterais que la gestion de "plugins" soit une problématique traitée par le projet ZSH lui-même, pareil pour vIM ou neovim.

      zsh a déjà un gestion de module. Il ne fait peut être pas le téléchargement depuis internet, mais je ne crois pas que le besoin soit vraiment là.

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # Angel PS1

    Posté par  . Évalué à 2.

    J'ai un peu joué avec Angel-PS1, c'est vraiment bien !
    J'aime bien l'approche pipe+démon tendant à minimiser la prise de ressources et donc maximiser les perf.
    J'aime bien aussi le packaging en un seul fichier.
    Petit bémol sur la doc. J'ai du dépiauter le code du gros fichier perl pour voir un peu ce qui pouvait être fait avec l'outil. Les exemples ne sont pas super parlants voire contre productifs quant à la gestion des couleurs.

    Mon prompt :

    (
        LoadAvgPercent, "*",
        Time, "*",
        Yellow,
        $ENV{USER},
        Blue,
        "@",
        \'\h',
        ' ',
        White,
        [ AngelPS1::Shell->WorkingDir_Tilde ],
        ' ',
        sub { my $err = $_[0]->{'?'}; $err == 0 ? () : (Red, [ $err ], ' ') },
        AngelPS1::Shell->UserPrivSymbol,
        ' ',
    )

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.