Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

samedi 18 mai 2019

Recevoir des notifications 'Desktop' depuis le Terminal

Quand on lance une commande qui prend du temps sous Linux, comme une compilation ou l'éxécution de tests unitaires, on est amené à aller voir périodiquement où c'en est, ce qui est un peu barbant et pas très efficace.

Il est pourtant possible d'envoyer des notifications à l'environnement graphique depuis la ligne de commande. On commnence par installer:

sudo apt-get install libnotify-bin

La commande à utiliser s'appele notify-send. Par exemple pour être notifié d'une erreur de compilation:

make || notify-send 'Compilation Failed' /home/user/sources/projects/my-project

Ce qui donne:

Notification Bureau

Le premier paramètre est le titre de la notification, ici 'Compilation Failed', le second correspond au texte qui s'affiche en dessous.

Comme il s'agit d'une erreur, on aurait dû utiliser:

make || notify-send -i error 'Compilation Failed' /home/user/sources/projects/my-project

Notification Erreur Bureau

Il est aussi possible d'afficher un message informatif, avec une ampoule comme icône, comme par exemple:

Notification Bureau (Info)

Ce qui correspond à la commande:

make || notify-send -i info 'Compilation Failed' /home/user/sources/projects/my-project

On peut également définir le temps d'affchage de la notification avec le flag -t:

make || notify-send -t 3000 -i error 'Compilation Failed' /home/user/sources/projects/my-project

Ainsi, la notification sera affichée 3 secondes à l'écran.

On voit donc qu'envoyer des notifications sur le bureau depuis la ligne de commande et vos scripts est très facile. La commande de notification pourra même être intégrée dans des alias Bash afin d'avoir une notification d'erreur chaque fois que la compilation ou les tests échouent.

dimanche 30 décembre 2018

Des vidéos de vos sessions de Terminal avec asciinema !

Quand on souhaite partager une technique ou une commande en faisant une vidéo, on a souvent recours à un logicel comme RecordMyDesktop ou Camtasia.

Ces logiciels demandent un peu de discipline comme par exemple sélectionner la fenêtre d'enregistrement, régler le volume du micro et ne pas se tromper dans le commentaire !

Mais quand il s'agit d'illustrer des commandes faites dans un terminal, il y a une méthode beaucoup plus légère et simple qui se nomme Asciinema, un projet initié par Marcin Kulik.

En effet, Asciinema permet d'enregistrer la session de votre terminal directement depuis celui-ci, tout en conservant les couleurs du terminal et les informations de "timing", et tout cela dans un fichier texte puisqu'une vidéo Asciinema est un fichier .json !

Une fois votre "vidéo" terminée, vous pourrez la rejouer, la partager mais aussi l'enregistrer et la publier sur le site d'Asciinema.

Installer Asciinema

Le plus simple pour disposer de la version la plus récente d'Asciinema est de l'installer avec Python:

sudo pip3 install asciinema
Downloading/unpacking asciinema
  Downloading asciinema-2.0.1.tar.gz
  Running setup.py (path:/tmp/pip-build-s4u_o9a3/asciinema/setup.py) egg_info for package asciinema
    
Installing collected packages: asciinema
  Running setup.py install for asciinema
    
    Installing asciinema script to /usr/local/bin
Successfully installed asciinema
Cleaning up...

On a alors:

which asciinema 
/usr/local/bin/asciinema

Et:

asciinema --version
asciinema 2.0.1

Enregistrer votre première vidéo avec Asciinema

Pour enregistrer notre première vidéo, on va entrer la commande suivante dans le terminal:

asciinema rec -t "My first asciinema video"

Cliquez sur le lien suivant pour une démo de l'utilisation d'Asciinema.

On peut voir que les commandes passées sont rejouées à la même vitesse et que les couleurs du terminal sont conservées.

Pendant que la vidéo se joue, vous pouvez sélectionner du texte avec la souris et ainsi utiliser le copier/coller !

Publier ou enregistrer la vidéo

Pour arrêter l'enregistrement, il faut utiliser <ctrl-d>, on a alors le choix entre publier la vidéo sur asciinema.org ou l'enregistrer en local:

pyfourmond@charlie-watts:/tmp/new_project (master)$ exit
asciinema: recording finished
asciinema: press <enter> to upload to asciinema.org, <ctrl-c> to save locally

View the recording at:

    https://asciinema.org/a/3CgRsy57JdioG0bCXHhDbLBnw

dimanche 18 novembre 2018

Installer et configurer cheat

Il y a quelques temps déjà, j'avais présenté le projet Cheat de Chris Allen Lane, qui permet de retrouver rapidement des exemples d'utilisation pour les commandes Unix.

On va voir aujourd'hui comment l'installer, le configurer et créer nos propres "cheat sheets".

Installer cheat

cheat est écrit en Python et s'installe donc par un:

sudo pip install cheat

On vérifie la version:

cheat -v
cheat 2.3.1

Configurer cheat

On va ajouter dans notre .bashrc:

export CHEATCOLORS=true

comme cela nos antisèches seront plus jolies !

Puis on va installer le script d'autocomplétion pour Bash:

sudo curl -L https://raw.githubusercontent.com/chrisallenlane/cheat/master/cheat/autocompletion/cheat.bash -o /etc/bash_completion.d/cheat

Maintenant, cheat propose les commandes disponibles quand on appuie sur TAB. Ne pas hésiter à entrer une lettre avant TAB, sinon il nous propose 191 commandes ...

L'autocomplétion n'est pas implémentée sur les options de la commande, c'est dommage.

Ajouter une nouvelle cheatsheet

Pour ajouter une nouvelle sheet sur la commande mycmd:

cheat -e mycmd

Et vous aller alors éditer le fichier ~/.cheat/mycmd.

Si vous souhaitez changer le répertoire des "user cheat", il faut procéder comme ceci:

export CHEATPATH='/path/to/my/cheats'

Les antisèches installées par défaut sont placées dans /usr/local/lib/python3.4/dist-packages/cheat/cheatsheets.

Mettre à jour cheat

Pour mettre à jour cheat:

sudo pip install --upgrade cheat

Voilà. Happy cheating :-)

- page 1 de 11