Rechercher un article

Je suis un fervent utilisateur de i3wm et ça dure depuis des années ! Grâce à i3blocks, j'ai pu développer mes propres blocs initialement écrits en PHP, mon langage de prédilection. Dans un but d'apprentissage mais aussi pour gagner de préciseuses ressources (CPU/mémoire/temps d'exécution), j'ai entrepris une refonte en Go.

Ces blocs permettent de récupérer les adresses IP des interfaces réseau, son IP publique, d'activer et désactiver des connexions VPN Wireguard, d'afficher l'usage des disques, créer des lanceurs d'applications, afficher le volume du son et ce qui est joué sur Spotify, générer une barre de tâches, des indicateurs pour RSS et Atom et des messages quand des processus sont détectés.

Toutes la documentation et les liens de téléchargement sont disponibles dans le dépot du projet. Voici un aperçu des blocs en fonctionnement :

i3-blocks-go


i3-wm est le gestionnaire de fenêtres que j'utilise depuis quelques d'années maintenant. Au fur et à mesure du temps, j'ai fais évoluer mon interface et j'ai écris des scripts pour générer les informations affichées dans la barre du dessus.

i3-wm

Parce que je suis plus à l'aise avec ce langage, l'ensemble des scripts est écrit en PHP 7. Ces scripts sont exécutés au travers de i3blocks, l'utilitaire qui gère les exécutions et les rendus des blocs.

Le fichier de configuration a cette forme et voici les détails techniques des blocs. Ils incluent tous base/block.php et le code source est libre. Le code n'est pas toujours élégant mais ça fonctionne pas trop mal 😀

Dépendance globale des scripts : interpréteur PHP 7.

Bande passante

Affiche la bande passante UP et DOWN d'une interface réseau.

  • Code source
  • Dépendances : ip, grep, awk, cut, ifstat et tail
  • 1er paramètre : l'interface réseau (défault : eth0)
  • 2ème paramètre : inet pour l'IPV4 (par défaut) ou inet6 pour l'IPV6

IP locale

Affiche l'adresse IP d'une interface réseau. Au clic, l'IP est copiée dans le presse-papier.

  • Code source
  • Dépendances : ip, grep, awk, cut, xclip
  • 1er paramètre : l'interface réseau (défault : eth0)
  • 2ème paramètre : inet pour l'IPV4 (par défaut) ou inet6 pour l'IPV6

IP publique

Affiche votre adresse IP publique via une requête DNS à opendns.com. Au clic, l'IP est copiée dans le presse-papier.

  • Code source
  • Dépendances : dig et xclip
  • 1er paramètre : 0 pour l'IPV4 (par défaut) ou 1 pour l'IPV6

Espace libre

Affiche le pourcentage d'espace libre d'un point de montage. Au clic, le gestionnaire de fichiers affiche le répertoire du point de montage.

  • Code source
  • Dépendances : df, tail et xdg-open
  • 1er paramètre : le nom du point de montage (défault : root)
  • 2ème paramètre : le chemin vers le point de montage (défault : /)
  • 3ème paramètre : pourcentage du niveau d'alerte "moyen" (défault : 70)
  • 4ème paramètre : pourcentage du niveau d'alerte "critique" (défault : 90)

Spotify

Affiche l'artiste et le titre de la musique jouée. J'affiche le workspace 6. MEDIA lors d'un clic.

Affiche un bouton pour lancer ou mettre en pause le titre en court.

Volume

Affiche le volume du son.

Météo

Affiche la météo du lieu détecté par fr.wttr.in. Au clic, le site est affiché dans le navigateur web.

Application

Affiche une lettre colorée et lance un script quand on clique dessus. Dans ma configuration, ça affiche des sites web dans le navigateur web.

  • Code source
  • 1er paramètre : la lettre à afficher
  • 2ème paramètre : le script à exécuter au clic
  • 3ème paramètre : la couleur de fond (défaut : #333)
  • 4ème paramètre : la couleur du texte (défaut : #fff)

Heure et date

Affiche l'heure et la date.

Flux RSS

Affiche le nombre d'articles non lus. Au clic, le navigateur affiche le client web du votre lecture RSS (tt-rss chez moi).

  • Code source
  • Dépendance : xdg-open
  • 1er paramètre : URL du flux RSS
  • 2ème paramètre : adresse du lecture RSS (optionnel)

Batterie

Affiche l'état de charge de la batterie.