• At chevron_right

      Git recall

      raspbeguy · pubsub.gugod.fr / atomtest · Tuesday, 7 February, 2017 - 23:00 · 1 minute

    Si vous développez, contribuez, travaillez en groupe ou tout simplement suivez l'évolution du développement d'un programme, vous devez sûrement connaître l'outil de versionnage Git. Cet outil développé par Linus Torvalds lui-même est une référence pour la gestion de projet technique, ce que soit pou...

    Si vous développez, contribuez, travaillez en groupe ou tout simplement suivez l'évolution du développement d'un programme, vous devez sûrement connaître l'outil de versionnage Git. Cet outil développé par Linus Torvalds lui-même est une référence pour la gestion de projet technique, ce que soit pour un projet personnel ou en équipe. Git permet de tracer l'évolution de son code, structurer les fronts de développement et de pouvoir revenir à n'importe quelle version passée.

    Bon, si vous ne connaissez pas Git, cette news vous est inutile, à part pour vous présenter cette outil qui a de grande chances de vous être très utile. Si vous utilisez Git, vous connaissez donc ce besoin de vérifier rapidement les dernières évolution du code, par vous-même ou par vos collaborateurs. Ils vous est possible d'en avoir une vue via la commande git log, un peu fastidieuse à utiliser si vous voulez filtrer ce que vous voulez voir.

    Vous avez également une autre possibilité de le faire, de manière interactive et avec des option faciles et minimalistes pour vous aider à faire le tri. Il s'agit de la commande git recall qui s'installe sous la forme d'un simple script à installer. Vous pouvez alors préciser le nombre de jours dans lesquels vous souhaitez faire votre recherche, préciser l'auteur des commits qui vous intéressent, puis naviguer interactivement dans la liste des commits afin d'afficher des différentiels.

    J'espère que cela vous sera utile.

    • Ha chevron_right

      Git recall

      raspbeguy · pubsub.gugod.fr / hashtagueule · Tuesday, 7 February, 2017 - 23:00 · 1 minute

    Si vous développez, contribuez, travaillez en groupe ou tout simplement suivez l'évolution du développement d'un programme, vous devez sûrement connaître l'outil de versionnage Git. Cet outil développé par Linus Torvalds lui-même est une référence pour la gestion de projet technique, ce que soit pou...

    Si vous développez, contribuez, travaillez en groupe ou tout simplement suivez l'évolution du développement d'un programme, vous devez sûrement connaître l'outil de versionnage Git. Cet outil développé par Linus Torvalds lui-même est une référence pour la gestion de projet technique, ce que soit pour un projet personnel ou en équipe. Git permet de tracer l'évolution de son code, structurer les fronts de développement et de pouvoir revenir à n'importe quelle version passée.

    Bon, si vous ne connaissez pas Git, cette news vous est inutile, à part pour vous présenter cette outil qui a de grande chances de vous être très utile. Si vous utilisez Git, vous connaissez donc ce besoin de vérifier rapidement les dernières évolution du code, par vous-même ou par vos collaborateurs. Ils vous est possible d'en avoir une vue via la commande git log, un peu fastidieuse à utiliser si vous voulez filtrer ce que vous voulez voir.

    Vous avez également une autre possibilité de le faire, de manière interactive et avec des option faciles et minimalistes pour vous aider à faire le tri. Il s'agit de la commande git recall qui s'installe sous la forme d'un simple script à installer. Vous pouvez alors préciser le nombre de jours dans lesquels vous souhaitez faire votre recherche, préciser l'auteur des commits qui vous intéressent, puis naviguer interactivement dans la liste des commits afin d'afficher des différentiels.

    J'espère que cela vous sera utile.

    • Ha chevron_right

      Less is more, partie 1.5 : Encore une chose

      raspbeguy · pubsub.gugod.fr / hashtagueule · Wednesday, 21 December, 2016 - 23:00 · 7 minutes

    Quand vous vous préparez probablement à passer un joyer réveillon de Noël, je suis là à écrire pour votre bon plaisir. Appréciez svp. Pour la suite de cette série d'articles sur l'épuration de votre bureau, j'avais prévu de passer à la présentation d'outils courants pour les tâches quotidiennes, mai...

    Quand vous vous préparez probablement à passer un joyer réveillon de Noël, je suis là à écrire pour votre bon plaisir. Appréciez svp.

    Pour la suite de cette série d'articles sur l'épuration de votre bureau, j'avais prévu de passer à la présentation d'outils courants pour les tâches quotidiennes, mais en continuant ma propre configuration de bureau, je me suis rendu compte qu'il y avais pas mal de choses à ajouter par rapport au dernier article. En tout cas, trop de choses pour essayer de les bourrer dans un coin de marge.

    J'aimerais vous parler plus en détail de py3status qui, si vous vous en rappelez, sert à améliorer la barre d'information d'i3. Ainsi, alors que cette barre par défaut propose assez peu de modules et une personnalisation minimale, la barre améliorée avec py3status propose des fonctionnalités bien plus intéressantes. Outre la plus grande flexibilité des réglages, avec cet utilitaire il est très simple d'écrire ses propres modules, et on peu prendre en compte les clics pour le comportement des modules.

    Parmi tous les modules proposés, il y en a tant d'utiles que je n'avais pas la place au début dans ma barre. Heureusement que j'ai ensuite découvert qu'on avait droit à plusieurs barres dans la configuration i3. De plus, j'ai noté qu'il existe un pull request sur le dépôt de py3status qui permettrait de multiplier les configurations pour une seule barre, donc la possibilité de changer de modules à chaud.

    Ma configuration i3 actuelle

    Une petite description des modules affichés, de gauche à droite :

    En haut :

    • Informations sur le morceau en cours dans un lecteur compatible MPRIS.
    • Mises à jour en attentes (la première valeurs représente le nombre de mises à jours des paquets binaires et la deuxième concerne les paquets AUR).
    • Statut de mon mobile connecté via KDE Connect (peut s'utiliser sans autre composant KDE, grâce au ciel. Et oui, j'ai appelé mon mobile Philippe).
    • Niveau du volume sonore, contrôlable au clic et à la molette. Grâce à ce module, je peux me passer de l'utilitaire pa-systray.
    • Niveau de luminosité, contrôlable à la molette.
    • État de l'extinction d'écran DKMS, contrôlable au clic.
    • Sélectionneur de configuration pour écran externe, contrôlable au clic.
    • Compteur d'articles non lus sur mon instance Tiny Tiny RSS.
    • Compteur de mails non lus (le texte avant le nombre correspond au compte concerné).
    • Date et heure.
    • Icônes de notifications des programmes classiques (ici, NextCloud et nm-applet).

    En bas :

    • Bouton de capture d'écran avec envoi automatique sur un serveur choisi, contrôlable au clic.
    • Vitesse du réseau.
    • Indicateur de VPN.
    • Indicateur de connexion à internet (affiche l'IP publique par défaut, masquée ici pour des raisons évidentes).
    • Indicateur d'IPv6.
    • Indicateur de connexion WiFi (encore ce Philippe...).
    • Indicateur de connexion cablée.
    • Espace libre sur le disque.
    • Utilisation CPU.
    • Mémoire utilisée.
    • Température CPU.
    • Charge CPU.
    • État de la batterie.

    L'écriture d'un module est vraiment simple, pour peu qu'on ait des bases de Python. Si vous le faites, je vous invite à en parler en commentaire ainsi qu'à contribuer au projet en proposant un pull request. Les mainteneurs sont sympas, et pour ceux qui débutent dans la contribution dans des projets open-source, il est très gratifiant de voir son travail en temps qu'amateur se faire valider par un projet qu'on utilise tous les jours.


    Je souhaite également parler des symboles que vous pouvez voir dans mes barres d'information. Ceux qui font du frontend web reconnaîtront les glyphes du projet Font Awesome (pour le coup, rien à voir avec le gestionnaire de fenêtres Awesome). Il s'agit d'une police de caractère qui utilise une plage spéciale de la table unicode afin de mettre à disposition des symboles qu'il est pratique d'utiliser principalement pour des pages web, mais également, comme vous pouvez le voir, sur des interfaces un peu plus personnelles. Lorsque i3 tombe sur un caractère unicode que la police qu'il utilise ne peut pas afficher, il va alors utiliser la police Font Awesome en tant que police de substitution. Afin mettre ce procédé en œuvre, il est nécessaire d'installer la fonte (le paquet AUR otf-font-awesome sous Arch Linux) et de vérifier que le fichier de configuration d'i3 contienne la ligne suivante :

    font pango:monospace 8

    Vous pouvez remplacer monospace par la fonte que vous préférez. Vous serez ensuite libres de choisir une icône Awesome en le précisant dans la configuration des modules py3status (le plus souvent, il faut se tourner vers la variable format).


    J'avais oublié d'expliquer dans mon précédent article, lorsque j'ai parlé de touches de volume et de luminosité sur le clavier, comment utiliser les touches de contrôle des lecteurs de musique. C'était pourtant sur ma liste des choses importantes à dire, j'en suis confus. Laissez moi réparer ça.

    Pour utiliser ces touches, comme pour les touches volume et luminosité, il vous faudra spécifier dans votre configuration i3 que vous souhaitez mapper ces touches médias à un appel de commande. Simplement, le problème est que par défaut, il n'existe pas de commande simple pour contrôler un lecteur MPRIS. Nous avons donc besoin d'installer playerctl, un petit programme en ligne de commande qui va se charger de fournir des commandes lisibles et succinctes. Ensuite, il nous faudra ajouter dans le fichier de configuration i3 les lignes suivantes :

    bindsym XF86AudioPlay exec playerctl play-pause
    bindsym XF86AudioPrev exec playerctl previous
    bindsym XF86AudioNext exec playerctl next

    Notez que si le lecteur que vous utilisez n'est pas compatible MPRIS, il vous faudra trouver une autre astuce. Notamment si vous utilisez cmus en version release et non en version git, vous aurez besoin de faire appel à la commande cmus-remote.


    Enfin, pour terminer cet addendum, je vous parlerai du choix de la console. Entre la publication du dernier article et la rédaction de l'article que vous êtes en train de lire, j'ai fait le test d'une autre console qui s'appelle Termite. C'est une bonne console qui donne la même sensation qu'Urxvt, mais infiniment plus simple à configurer. Ça s'explique par le format du fichier de configuration : Termite se configure avec une syntaxe INI tandis qu'Urxvt se configure via un fichier Xresourses, qui suit une syntaxe vieillotte, pour ne pas dire franchement obsolète. De plus, Termite n'as pas besoin de patchs ésotériques quand on a besoin de fonctionnalités un peu spéciales, comme la prise en compte de la molette dans certains programmes pseudo-graphiques. Au fond, Urxvt n'est déjà rien d'autre qu'un patch du Rxvt original pour gérer les caractères unicodes...

    Cependant, il paraît que Urxvt possède plus de fonctionnalités que Termite. Une vieille légende prétends même que Urxvt supporterait plusieurs polices de caractères à la fois, bien que jamais je n'aie réussi à faire fonctionner ce mécanisme que, j'imagine, seuls les âmes les plus téméraires et les plus courageuses peuvent activer.

    De plus, et c'est ce qui m'a définitivement décidé à rester sur Urxvt, Termite nécessite un compositeur graphique (par exemple xcompmgr) pour gérer la transparence. Rien de très gênant là-dedans, les compositeurs graphiques minimalistes sont très légers, et il m'en coûte très peu d'ajouter une ligne pour en lancer un dans ma configuration i3. Mais malheureusement, i3 a un petit bug lorsqu'on utilise un compositeur graphique avec certaines positions de fenêtre : quelquefois, le fond d'un terminal sera non pas le fond d'écran comme on pourrait s'y attendre, mais le contenu du terminal qu'y s'y trouvait précédemment, ce qui n'empêche pas de travailler mais qui est assez gênant.

    Urxvt, quant à lui, n'a pas besoin de compositeur graphique pour la transparence, car il utilise une "fausse transparence" : pour faire simple, au lieu de demander au serveur X ce qui se trouve derrière lui, il va directement remonter au niveau de l'image de fond et mettre en transparence la portion du fond d'écran qu'il cache. Bon, pour le coup il est impossible, si on a une console Urxvt flottante, de voir une autre fenêtre par transparence, mais personnellement je m'en rappe les marrons, sachant que j'utilise extrêmement rarement les fenêtres flottantes, et absolument jamais pour des consoles. Sinon, à quoi bon utiliser i3 ?


    En espérant que ces commentaires vous seront utiles, je vous souhaite un joyeux Noël, et peut être une bonne année. Tchin tchin.

    • At chevron_right

      Less is more, partie 1.5 : Encore une chose

      raspbeguy · pubsub.gugod.fr / atomtest · Wednesday, 21 December, 2016 - 23:00 · 7 minutes

    Quand vous vous préparez probablement à passer un joyer réveillon de Noël, je suis là à écrire pour votre bon plaisir. Appréciez svp. Pour la suite de cette série d'articles sur l'épuration de votre bureau, j'avais prévu de passer à la présentation d'outils courants pour les tâches quotidiennes, mai...

    Quand vous vous préparez probablement à passer un joyer réveillon de Noël, je suis là à écrire pour votre bon plaisir. Appréciez svp.

    Pour la suite de cette série d'articles sur l'épuration de votre bureau, j'avais prévu de passer à la présentation d'outils courants pour les tâches quotidiennes, mais en continuant ma propre configuration de bureau, je me suis rendu compte qu'il y avais pas mal de choses à ajouter par rapport au dernier article. En tout cas, trop de choses pour essayer de les bourrer dans un coin de marge.

    J'aimerais vous parler plus en détail de py3status qui, si vous vous en rappelez, sert à améliorer la barre d'information d'i3. Ainsi, alors que cette barre par défaut propose assez peu de modules et une personnalisation minimale, la barre améliorée avec py3status propose des fonctionnalités bien plus intéressantes. Outre la plus grande flexibilité des réglages, avec cet utilitaire il est très simple d'écrire ses propres modules, et on peu prendre en compte les clics pour le comportement des modules.

    Parmi tous les modules proposés, il y en a tant d'utiles que je n'avais pas la place au début dans ma barre. Heureusement que j'ai ensuite découvert qu'on avait droit à plusieurs barres dans la configuration i3. De plus, j'ai noté qu'il existe un pull request sur le dépôt de py3status qui permettrait de multiplier les configurations pour une seule barre, donc la possibilité de changer de modules à chaud.

    Ma configuration i3 actuelle

    Une petite description des modules affichés, de gauche à droite :

    En haut :

    • Informations sur le morceau en cours dans un lecteur compatible MPRIS.
    • Mises à jour en attentes (la première valeurs représente le nombre de mises à jours des paquets binaires et la deuxième concerne les paquets AUR).
    • Statut de mon mobile connecté via KDE Connect (peut s'utiliser sans autre composant KDE, grâce au ciel. Et oui, j'ai appelé mon mobile Philippe).
    • Niveau du volume sonore, contrôlable au clic et à la molette. Grâce à ce module, je peux me passer de l'utilitaire pa-systray.
    • Niveau de luminosité, contrôlable à la molette.
    • État de l'extinction d'écran DKMS, contrôlable au clic.
    • Sélectionneur de configuration pour écran externe, contrôlable au clic.
    • Compteur d'articles non lus sur mon instance Tiny Tiny RSS.
    • Compteur de mails non lus (le texte avant le nombre correspond au compte concerné).
    • Date et heure.
    • Icônes de notifications des programmes classiques (ici, NextCloud et nm-applet).

    En bas :

    • Bouton de capture d'écran avec envoi automatique sur un serveur choisi, contrôlable au clic.
    • Vitesse du réseau.
    • Indicateur de VPN.
    • Indicateur de connexion à internet (affiche l'IP publique par défaut, masquée ici pour des raisons évidentes).
    • Indicateur d'IPv6.
    • Indicateur de connexion WiFi (encore ce Philippe...).
    • Indicateur de connexion cablée.
    • Espace libre sur le disque.
    • Utilisation CPU.
    • Mémoire utilisée.
    • Température CPU.
    • Charge CPU.
    • État de la batterie.

    L'écriture d'un module est vraiment simple, pour peu qu'on ait des bases de Python. Si vous le faites, je vous invite à en parler en commentaire ainsi qu'à contribuer au projet en proposant un pull request. Les mainteneurs sont sympas, et pour ceux qui débutent dans la contribution dans des projets open-source, il est très gratifiant de voir son travail en temps qu'amateur se faire valider par un projet qu'on utilise tous les jours.


    Je souhaite également parler des symboles que vous pouvez voir dans mes barres d'information. Ceux qui font du frontend web reconnaîtront les glyphes du projet Font Awesome (pour le coup, rien à voir avec le gestionnaire de fenêtres Awesome). Il s'agit d'une police de caractère qui utilise une plage spéciale de la table unicode afin de mettre à disposition des symboles qu'il est pratique d'utiliser principalement pour des pages web, mais également, comme vous pouvez le voir, sur des interfaces un peu plus personnelles. Lorsque i3 tombe sur un caractère unicode que la police qu'il utilise ne peut pas afficher, il va alors utiliser la police Font Awesome en tant que police de substitution. Afin mettre ce procédé en œuvre, il est nécessaire d'installer la fonte (le paquet AUR otf-font-awesome sous Arch Linux) et de vérifier que le fichier de configuration d'i3 contienne la ligne suivante :

    font pango:monospace 8

    Vous pouvez remplacer monospace par la fonte que vous préférez. Vous serez ensuite libres de choisir une icône Awesome en le précisant dans la configuration des modules py3status (le plus souvent, il faut se tourner vers la variable format).


    J'avais oublié d'expliquer dans mon précédent article, lorsque j'ai parlé de touches de volume et de luminosité sur le clavier, comment utiliser les touches de contrôle des lecteurs de musique. C'était pourtant sur ma liste des choses importantes à dire, j'en suis confus. Laissez moi réparer ça.

    Pour utiliser ces touches, comme pour les touches volume et luminosité, il vous faudra spécifier dans votre configuration i3 que vous souhaitez mapper ces touches médias à un appel de commande. Simplement, le problème est que par défaut, il n'existe pas de commande simple pour contrôler un lecteur MPRIS. Nous avons donc besoin d'installer playerctl, un petit programme en ligne de commande qui va se charger de fournir des commandes lisibles et succinctes. Ensuite, il nous faudra ajouter dans le fichier de configuration i3 les lignes suivantes :

    bindsym XF86AudioPlay exec playerctl play-pause
    bindsym XF86AudioPrev exec playerctl previous
    bindsym XF86AudioNext exec playerctl next

    Notez que si le lecteur que vous utilisez n'est pas compatible MPRIS, il vous faudra trouver une autre astuce. Notamment si vous utilisez cmus en version release et non en version git, vous aurez besoin de faire appel à la commande cmus-remote.


    Enfin, pour terminer cet addendum, je vous parlerai du choix de la console. Entre la publication du dernier article et la rédaction de l'article que vous êtes en train de lire, j'ai fait le test d'une autre console qui s'appelle Termite. C'est une bonne console qui donne la même sensation qu'Urxvt, mais infiniment plus simple à configurer. Ça s'explique par le format du fichier de configuration : Termite se configure avec une syntaxe INI tandis qu'Urxvt se configure via un fichier Xresourses, qui suit une syntaxe vieillotte, pour ne pas dire franchement obsolète. De plus, Termite n'as pas besoin de patchs ésotériques quand on a besoin de fonctionnalités un peu spéciales, comme la prise en compte de la molette dans certains programmes pseudo-graphiques. Au fond, Urxvt n'est déjà rien d'autre qu'un patch du Rxvt original pour gérer les caractères unicodes...

    Cependant, il paraît que Urxvt possède plus de fonctionnalités que Termite. Une vieille légende prétends même que Urxvt supporterait plusieurs polices de caractères à la fois, bien que jamais je n'aie réussi à faire fonctionner ce mécanisme que, j'imagine, seuls les âmes les plus téméraires et les plus courageuses peuvent activer.

    De plus, et c'est ce qui m'a définitivement décidé à rester sur Urxvt, Termite nécessite un compositeur graphique (par exemple xcompmgr) pour gérer la transparence. Rien de très gênant là-dedans, les compositeurs graphiques minimalistes sont très légers, et il m'en coûte très peu d'ajouter une ligne pour en lancer un dans ma configuration i3. Mais malheureusement, i3 a un petit bug lorsqu'on utilise un compositeur graphique avec certaines positions de fenêtre : quelquefois, le fond d'un terminal sera non pas le fond d'écran comme on pourrait s'y attendre, mais le contenu du terminal qu'y s'y trouvait précédemment, ce qui n'empêche pas de travailler mais qui est assez gênant.

    Urxvt, quant à lui, n'a pas besoin de compositeur graphique pour la transparence, car il utilise une "fausse transparence" : pour faire simple, au lieu de demander au serveur X ce qui se trouve derrière lui, il va directement remonter au niveau de l'image de fond et mettre en transparence la portion du fond d'écran qu'il cache. Bon, pour le coup il est impossible, si on a une console Urxvt flottante, de voir une autre fenêtre par transparence, mais personnellement je m'en rappe les marrons, sachant que j'utilise extrêmement rarement les fenêtres flottantes, et absolument jamais pour des consoles. Sinon, à quoi bon utiliser i3 ?


    En espérant que ces commentaires vous seront utiles, je vous souhaite un joyeux Noël, et peut être une bonne année. Tchin tchin.

    • At chevron_right

      Less is more, partie 1 : la base

      raspbeguy · pubsub.gugod.fr / atomtest · Friday, 11 November, 2016 - 23:00 · 12 minutes

    Bonjour à tous Allez, on va dire que vous n'avez pas remarqué les quelques semaines mois de silence de notre part, je pourrais encore me ressortir des excuses moisies, mais je l'ai déjà fait dans quelques articles précédents. J'espère donc que vous ne m'en voudrez pas si je m'épargne cette peine. Be...

    Bonjour à tous

    Allez, on va dire que vous n'avez pas remarqué les quelques semaines mois de silence de notre part, je pourrais encore me ressortir des excuses moisies, mais je l'ai déjà fait dans quelques articles précédents. J'espère donc que vous ne m'en voudrez pas si je m'épargne cette peine.

    Beaucoup de choses se sont passées dans l'actualité. Entre l’avènement du porte moumoute américain et le décret du vilain Cazeneuve sur le fichage de l'ensemble des français, les occasions de faire couler de l'encre n'ont pas manqué. Mais bon, je ne vais pas vous en parler ici. Pas encore, du moins.

    Je vais plutôt vous parler de mon éternelle quête de l'environnement de bureau parfait. Vous savez, j'ai eu ma période GNOME, et elle a duré longtemps en plus. Ah, la jeunesse...

    J'ai également entre temps acquis un nouveau laptop, un Dell Inspiron 15" 7548, qui a la particularité de planter au démarrage une fois sur deux d'avoir un écran HiDPI, donc des pixels deux fois plus petits que les écrans traditionnels (on peut trouver également le terme Retina). Et là, Sainte Mère de Dieu, j'ai appris un truc. Les écrans HiDPI et Linux, c'est coton. Dans beaucoup de cas, vous aurez besoin de vos lunettes de soudeur à nanotubes pour y voir clair. Tous les programmes GTK2 par exemple sont incompatibles avec la définition de votre écran. Ce qui choque aussi, c'est le manque de cohésion et la multitudes de réglages pour obtenir un truc correct : entre le scale factor de GTK3, celui de QT5, la taille des polices, la définition donnée à xrandr --dpi, ceux donnés au serveur X... vous allez très facilement manquer d'air et perdre les pédales.

    Pour le coup, j'étais tombé sur la conclusion suivante : les seuls environnements de bureau possibles pour un écran HiDPI sont ceux basés sur GTK3, en l’occurrence GNOME et Cinnamon (je n'ai pas testé KDE, ma tolérance à la douleur a quand même ses limites). Comme j'ai fini par avoir horreur de GNOME avec sa terrible lourdeur et ses réglages atroces, j'ai tourné pendant des mois sur Cinnamon, qui est un fork de GNOME d'il y a quelques années maintenant, permettant de couper court à la plus grande partie de ses défaut.


    Face à mon manque de solutions pour utiliser mon écran sans m'esquinter les yeux, j'ai fini par me dire : au diable les environnement de bureau. Au diable GTK et son manque diabolique de rétro-compatibilité, tout ça c'est pour les faibles.

    Je me suis souvenu d'i3, un gestionnaire de fenêtre (et non un environnement de bureau) que j'avais décidé d'utiliser sur mon lieu de travail (et sur des écrans traditionnels pour le coup). On a beau dire ce qu'on veut, mais ce genre d'outil est très efficace : ça élimine le superflu et la fluidifie le travail. C'est pensé pour être totalement contrôlable au clavier, même si l'usage de la souris est possible.

    La différence entre un environnement de bureau et un gestionnaire de fenêtre est d'ordre fonctionnel. En fait, un environnement de bureau inclut généralement un gestionnaire de fenêtre, ainsi que tout un tas de fonctionnalités, comme un navigateur de fichiers, un centre de configuration, divers menus pour changer rapidement les réglages courants (net, volume...), le montage automatique de volumes externes, et tout un tas de joyeusetés. Le gestionnaire de fenêtre se concentre sur la position de vos fenêtre. i3 s'arrange pour les redimensionner automatiquement en fonction de leur nombre et de l'importance que vous leur accordez. Pour les autres fonctionnalités, vous devez aller chercher ailleurs. Fort heureusement, ces outils existent et fonctionnent en synergie et sont en général suggérés par les mainteneurs de tels gestionnaires de fenêtre. Nous en parlerons dans cet article, pas d'inquiétude.

    Sachez aussi que, de la même manière qu'il existe des conflits entre les utilisateurs de Vim et d'Emacs, ainsi que le conflit screen/tmux (je vous ai indiqué en gras ma position) qui font toujours rage sur les forums, les mailing-lists et les canaux IRC, et ce depuis décennies, il existe également un débat entre i3 et Awesome, un gestionnaire de fenêtre du même genre que j'ai également eu l'occasion de tester. Pour ne froisser personne, disons que chacun a ses bon côtés et ses défauts, même si au bout du compte, ça revient plus ou moins au même principe. Je tiens cependant à souligner la facilité de configuration et le minimalisme rafraîchissant d'i3 par rapport à Awesome.

    Bon, ça fait 5 minutes que je vous parle de bureau élégant, mais toujours pas une seule image. Le mieux c'est que je vous montre maintenant.

    Mon bureau sous i3, avec vim à gauche et htop à droite

    Mon bureau sous i3 sur écran HiDPI, avec vim à gauche et htop à droite

    Sur cette exemple, je n'ai que deux fenêtres ouvertes, mais sachez que je peux en ouvrir bien plus, et je peux également scinder les espaces verticalement et horizontalement à la fois. Pour ceux qui s'affolent en voyant que je n'ai que des terminaux ouverts et qui voudraient continuer à utiliser leurs programmes GTK, sachez que rien ne les en empêche, c'est juste que je fais en ce moment une petite indigestion des programme à interface graphique, et je les évite le plus possible, ma tension s'en porte mieux et mes proches en souffrent moins.

    Remarquer la barre du bas qui présente plein d'informations variées, comme mon espace disque, mes différentes IP (locales et publiques), mon état de batterie, la vitesse de mon réseau, et même le morceau en cours dans mon lecteur de musique. C'est encore un point qui me fait craquer pour i3, c'est à dire la simplicité pour configurer cette barre. Il est remarquable qu'i3 laisse à l'utilisateur le choix du programme à afficher dans cette barre, bien qu'il en propose un par défaut (i3status). Pour ma part, j'utilise py3status, un simple wrapper d'i3status, qui ajoute des possibilités de widgets et en réimplémente certains.

    Bon, vous avez décidé d'adopter i3 ? C'est très bien, il s'agit du pas le plus dur à franchir. Une fois qu'on a la volonté, le reste suit sans trop tarder. Sur Archlinux, vous avez donc installé le groupe i3 qui vous fournit le gestionnaire de fenêtre i3, l'utilitaire i3status et le verrouilleur d'écran i3lock. Vous avez jeté un coup d’œil au fichier de configuration qui se trouve à l'emplacement ~/.config/i3/config. Vous remarquerez que la plupart des opérations que vous pouvez effectuer à travers i3 se font grâce à la touche définie dans la variable $mod. Par défaut, il s'agit de la touche logo (la fameuse touche "ouindoze"), mais vous pouvez changer ça. En fait, vous pouvez motifier l'intégralité des raccourcis claviers, et en ajouter à votre convenance, vous pouvez vous faire plaisir. Vous n'êtes pas obligé de tout comprendre dès le début, il s'agit uniquement de se faire une idée des fonctions de base et de voir comment vous pourrez y apporter votre touche personnelle.

    Maintenant, comme j'en ai parlé plus tôt, il vous faut quelques utilitaires qui vont vous simplifier la vie pour effectuer les tâches les plus simples.

    Un émulateur de console adapté

    Bon, en vrai, un linux sans console, c'est comme une waifu sans rondeurs une Ferrari sans levier de vitesse, c'est du gâchis de potentiel et ça envoie pas du rêve. D'autre part, on a décidé de se passer le plus possible d'applications GTK/QT/portnawak, donc je ne vous conseille pas d'utiliser gnome-terminal, qui va alourdir inutilement votre interface. À la place, je vous conseille rxvt-unicode, parfois aussi appelé urvxt. Il s'agit d'un terminal puissant, avec une énorme personnalisation. Un autre choix aurait été xterm, qui dispose d'une grande compatibilité avec d'anciens systèmes le plus souvent désuets, qui commence à vieillir et dont même les développeurs ont désormais du mal à maîtriser. J'en veux pour preuve un extrait du fichier README accompagnant le dépôt d'xterm :

    Abandon All Hope, Ye Who Enter Here

    This is undoubtedly the most ugly program in the distribution. It was one of the first "serious" programs ported, and still has a lot of historical baggage. Ideally, there would be a general tty widget and then vt102 and tek4014 subwidgets so that they could be used in other programs. We are trying to clean things up as we go, but there is still a lot of work to do.

    Ça se passe de commentaires.

    Une fenêtre de terminal se lance par la combinaison $mod+enter. i3 est assez intelligent pour savoir que vous avez installé urxvt ou xterm, et il n'a pas besoin de configuration pour lancer l'un de ces programmes lorsque invoquez cette configuration. Néanmoins, si vous choisissez d'utiliser un autre terminal par défaut, il vous faudra le préciser dans ~/.config/i3/config à l'aide de la directive i3-sensible-terminal.

    De même qu'i3, urxvt a besoin de sa configuration si vous voulez le modifier un tantinet (et vous allez sûrement le faire, car urxvt a une interface atroce par défaut). Ça se passe dans ~/.Xresources. Il s'agit d'un fichier utilisé par le serveur X, donc prudence, il est possible que vous y trouviez la configuration d'autres programmes. Je vous joins mes propres réglages, à vous de les modifier à votre convenance.

    ! Fonts {{{
    Xft.antialias: true
    Xft.hinting:   true
    Xft.rgba:      rgb
    Xft.hintstyle: hintfull
    Xft.dpi:       220
    ! }}}
    
    ! General
    urxvt\*termName:  rxvt-256color
    urxvt\*loginShell:         true
    urxvt\*scrollBar:         false
    urxvt\*secondaryScroll:    true
    urxvt\*saveLines:         65535
    urxvt\*cursorBlink:        true
    urxvt\*urgentOnBell:       true
    !urxvt\*override-redirect:false
    !urxvt\*borderLess:       false
    !urxvt\*internalBorder:       0
    !urxvt\*externalBorder:       0
    
    ! Extensions
    urxvt\*perl-lib:        /usr/lib/urxvt/perl/
    urxvt\*perl-ext-common: default,matcher
    urxvt\*urlLauncher:     /usr/bin/xdg-open
    urxvt\*matcher.button:  1
    URxvt.keysym.C-f: perl:url-picker
    !  - catch ugly URLs
    urxvt.cutchars:        \`()\*<>\[\]{|}
    
    ! Appearance
    !  - use a bitmap font
    !urxvt\*font:        -xos4-terminus-medium-\*-\*-\*-12-\*-\*-\*-\*-\*-\*-\*
    !urxvt\*boldFont:    -xos4-terminus-bold-\*-\*-\*-12-\*-\*-\*-\*-\*-\*-\*
    !  - use xft for drawing fonts
    URxvt.font:xft:Monospace:size=10
    !urxvt.letterSpace: -10
    !  - cursor
    urxvt\*cursorColor: #FFFFFF
    !  - pseudo transparency
    !urxvt\*shading:    50
    !urxvt\*transparent:true
    !
    !  - color scheme
    urxvt.background:  #000000
    urxvt.foreground:  #FFFFFF
    URxvt.transparent:   true
    URxvt.shading:       30
    ! black + red
    !urxvt\*color0:     #3f3f3f
    !urxvt\*color0:      #000000
    !urxvt\*color1:      #e01010
    ! green + yellow
    !urxvt\*color2:      #00AA00
    !urxvt\*color3:      #FFFF00
    ! blue + purple
    urxvt\*color4:      #112037
    !urxvt\*color5:      #A020F0
    ! cyan + white
    !urxvt\*color6:      #5B5BC7
    !urxvt\*color7:      #fefefe
    ! bright-black + bright-red
    !urxvt\*color8:      #6a6a6a
    !urxvt\*color9:      #FF5555
    ! bright-green + bright-yellow
    !urxvt\*color10:     #90EE90
    !urxvt\*color11:     #ffff2f
    ! bright-blue + bright-purple
    urxvt\*color12:     #5B5BC7
    !urxvt\*color13:     #e628ba
    ! bright-cyan + bright-white
    !urxvt\*color14:     #7D7DFB
    !urxvt\*color15:     #ffffff

    Des volumes qui se montent tout seul

    J'aime bien pouvoir brancher ma clef USB et qu'elle se monte toute seule dans mon système avec les droits qui vont bien, et ne pas avoir à taper ce genre de commande :

    sudo mount /dev/sdX /home/raspbeguy/mnt

    Et en plus, avec cette commande, vous n'avez même pas le droit d'écriture sur votre clef en simple utilisateur, c'était vraiment casse-pied, pour rester poli.

    Heureusement, vous pouver installer udisk qui va le faire pour vous, puis udiskie, un wrapper qui va utiliser udisk  plus simplement. Pour lancer udiskie automatiquement au démarrage d'i3, écrivez juste dans la configuration d'i3 :

    exec udiskie -ans &

    et le tour est joué. Vous aurez vos volumes tout beaux qui se monteront comme des grands, des notifications à chaque branchement/débranchement de volume, et un menu dans la barre du bas permettant de démonter les volumes.

    Le réseau à portée de clic

    Il est pratique d'avoir un petit menu permettant d'avoir la main sur les interfaces réseau. Pour cela, on aura déjà besoin de network-manager, un démon système installé avec la plupart des environnements de bureau (je ne suis pas un grand fan, mais j'ai pas trouvé mieux pour le moment, sachant qu'il n'existe pas vraiment de menu simple pour netctl) et d'un programme appelé nm-applet permettant de disposer d'un tel menu.

    Le contrôle du volume

    Pour la gestion du volume sur votre machine, je vous conseille d'utiliser pulseaudio à la place d'alsa tout seul. Ça va en faire grincer des dents pour certains, mais bon, faut reconnaître que c'est quand même pratique pour changer rapidement de carte son par exemple. Pour avoir un menu dans la barre, on utilisera le paquet pasystray. Attention pour les utilisateurs d'Archlinux, au moment ou j'écris, le paquet AUR de nm-applet est mal foutu, il essaye d'installer deux version concurrentes de ce programme, et va par conséquent se bananer, vous aurez besoin de faire une installation manuelle.

    Sinon, beaucoup de claviers ont des touches média, avec contrôle du volume et d'intensité lumineuse. Il est possible d'utiliser ces touches avec i3 moyennant les bonnes lignes de configuration i3. Je vous donne cet extrait de configuration :

    # media keys
    bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 1 +5%
    bindsym XF86AudioLowerVolume exec pactl set-sink-volume 1 -5%
    bindsym XF86AudioMute exec pactl set-sink-mute 1 toggle
    
    # backlight
    bindsym XF86MonBrightnessUp exec xbacklight -inc 5
    bindsym XF86MonBrightnessDown exec xbacklight -dec 5

    Notez que vous aurez peut-être à changer le "1" en "0" sur les lignes de volume, cela dépendra de votre configuration matérielle.

    Le fond d'écran

    Certains diront que c'est un réglage pas très important, mais j'estime que c'est quand même bien agréable. Personnellement, j'utilise le fond d'écran que j'ai configuré dans lightdm, ce qui m'évite de recourir à un autre utilitaire ou configuration. Si vous voulez utilisez un fond d'écran différent, vous pouvez utiliser nitrogen, qui dispose d'une interface GTK (yeurk...) pour choisir votre fond d'écran. Si vous optez pour cette solution, vous devrez ajouter cette ligne à votre configuration i3.

    exec nitrogen --restore

    J'ai donc expliqué les bases pour utiliser i3 confortablement. Dans des articles à venir, je présenterai des solutions pour se passer de programmes graphiques pour la plupart des tâches courantes.

    • Ha chevron_right

      Less is more, partie 1 : la base

      raspbeguy · pubsub.gugod.fr / hashtagueule · Friday, 11 November, 2016 - 23:00 · 12 minutes

    Bonjour à tous Allez, on va dire que vous n'avez pas remarqué les quelques semaines mois de silence de notre part, je pourrais encore me ressortir des excuses moisies, mais je l'ai déjà fait dans quelques articles précédents. J'espère donc que vous ne m'en voudrez pas si je m'épargne cette peine. Be...

    Bonjour à tous

    Allez, on va dire que vous n'avez pas remarqué les quelques semaines mois de silence de notre part, je pourrais encore me ressortir des excuses moisies, mais je l'ai déjà fait dans quelques articles précédents. J'espère donc que vous ne m'en voudrez pas si je m'épargne cette peine.

    Beaucoup de choses se sont passées dans l'actualité. Entre l’avènement du porte moumoute américain et le décret du vilain Cazeneuve sur le fichage de l'ensemble des français, les occasions de faire couler de l'encre n'ont pas manqué. Mais bon, je ne vais pas vous en parler ici. Pas encore, du moins.

    Je vais plutôt vous parler de mon éternelle quête de l'environnement de bureau parfait. Vous savez, j'ai eu ma période GNOME, et elle a duré longtemps en plus. Ah, la jeunesse...

    J'ai également entre temps acquis un nouveau laptop, un Dell Inspiron 15" 7548, qui a la particularité de planter au démarrage une fois sur deux d'avoir un écran HiDPI, donc des pixels deux fois plus petits que les écrans traditionnels (on peut trouver également le terme Retina). Et là, Sainte Mère de Dieu, j'ai appris un truc. Les écrans HiDPI et Linux, c'est coton. Dans beaucoup de cas, vous aurez besoin de vos lunettes de soudeur à nanotubes pour y voir clair. Tous les programmes GTK2 par exemple sont incompatibles avec la définition de votre écran. Ce qui choque aussi, c'est le manque de cohésion et la multitudes de réglages pour obtenir un truc correct : entre le scale factor de GTK3, celui de QT5, la taille des polices, la définition donnée à xrandr --dpi, ceux donnés au serveur X... vous allez très facilement manquer d'air et perdre les pédales.

    Pour le coup, j'étais tombé sur la conclusion suivante : les seuls environnements de bureau possibles pour un écran HiDPI sont ceux basés sur GTK3, en l’occurrence GNOME et Cinnamon (je n'ai pas testé KDE, ma tolérance à la douleur a quand même ses limites). Comme j'ai fini par avoir horreur de GNOME avec sa terrible lourdeur et ses réglages atroces, j'ai tourné pendant des mois sur Cinnamon, qui est un fork de GNOME d'il y a quelques années maintenant, permettant de couper court à la plus grande partie de ses défaut.


    Face à mon manque de solutions pour utiliser mon écran sans m'esquinter les yeux, j'ai fini par me dire : au diable les environnement de bureau. Au diable GTK et son manque diabolique de rétro-compatibilité, tout ça c'est pour les faibles.

    Je me suis souvenu d'i3, un gestionnaire de fenêtre (et non un environnement de bureau) que j'avais décidé d'utiliser sur mon lieu de travail (et sur des écrans traditionnels pour le coup). On a beau dire ce qu'on veut, mais ce genre d'outil est très efficace : ça élimine le superflu et la fluidifie le travail. C'est pensé pour être totalement contrôlable au clavier, même si l'usage de la souris est possible.

    La différence entre un environnement de bureau et un gestionnaire de fenêtre est d'ordre fonctionnel. En fait, un environnement de bureau inclut généralement un gestionnaire de fenêtre, ainsi que tout un tas de fonctionnalités, comme un navigateur de fichiers, un centre de configuration, divers menus pour changer rapidement les réglages courants (net, volume...), le montage automatique de volumes externes, et tout un tas de joyeusetés. Le gestionnaire de fenêtre se concentre sur la position de vos fenêtre. i3 s'arrange pour les redimensionner automatiquement en fonction de leur nombre et de l'importance que vous leur accordez. Pour les autres fonctionnalités, vous devez aller chercher ailleurs. Fort heureusement, ces outils existent et fonctionnent en synergie et sont en général suggérés par les mainteneurs de tels gestionnaires de fenêtre. Nous en parlerons dans cet article, pas d'inquiétude.

    Sachez aussi que, de la même manière qu'il existe des conflits entre les utilisateurs de Vim et d'Emacs, ainsi que le conflit screen/tmux (je vous ai indiqué en gras ma position) qui font toujours rage sur les forums, les mailing-lists et les canaux IRC, et ce depuis décennies, il existe également un débat entre i3 et Awesome, un gestionnaire de fenêtre du même genre que j'ai également eu l'occasion de tester. Pour ne froisser personne, disons que chacun a ses bon côtés et ses défauts, même si au bout du compte, ça revient plus ou moins au même principe. Je tiens cependant à souligner la facilité de configuration et le minimalisme rafraîchissant d'i3 par rapport à Awesome.

    Bon, ça fait 5 minutes que je vous parle de bureau élégant, mais toujours pas une seule image. Le mieux c'est que je vous montre maintenant.

    Mon bureau sous i3, avec vim à gauche et htop à droite

    Mon bureau sous i3 sur écran HiDPI, avec vim à gauche et htop à droite

    Sur cette exemple, je n'ai que deux fenêtres ouvertes, mais sachez que je peux en ouvrir bien plus, et je peux également scinder les espaces verticalement et horizontalement à la fois. Pour ceux qui s'affolent en voyant que je n'ai que des terminaux ouverts et qui voudraient continuer à utiliser leurs programmes GTK, sachez que rien ne les en empêche, c'est juste que je fais en ce moment une petite indigestion des programme à interface graphique, et je les évite le plus possible, ma tension s'en porte mieux et mes proches en souffrent moins.

    Remarquer la barre du bas qui présente plein d'informations variées, comme mon espace disque, mes différentes IP (locales et publiques), mon état de batterie, la vitesse de mon réseau, et même le morceau en cours dans mon lecteur de musique. C'est encore un point qui me fait craquer pour i3, c'est à dire la simplicité pour configurer cette barre. Il est remarquable qu'i3 laisse à l'utilisateur le choix du programme à afficher dans cette barre, bien qu'il en propose un par défaut (i3status). Pour ma part, j'utilise py3status, un simple wrapper d'i3status, qui ajoute des possibilités de widgets et en réimplémente certains.

    Bon, vous avez décidé d'adopter i3 ? C'est très bien, il s'agit du pas le plus dur à franchir. Une fois qu'on a la volonté, le reste suit sans trop tarder. Sur Archlinux, vous avez donc installé le groupe i3 qui vous fournit le gestionnaire de fenêtre i3, l'utilitaire i3status et le verrouilleur d'écran i3lock. Vous avez jeté un coup d’œil au fichier de configuration qui se trouve à l'emplacement ~/.config/i3/config. Vous remarquerez que la plupart des opérations que vous pouvez effectuer à travers i3 se font grâce à la touche définie dans la variable $mod. Par défaut, il s'agit de la touche logo (la fameuse touche "ouindoze"), mais vous pouvez changer ça. En fait, vous pouvez motifier l'intégralité des raccourcis claviers, et en ajouter à votre convenance, vous pouvez vous faire plaisir. Vous n'êtes pas obligé de tout comprendre dès le début, il s'agit uniquement de se faire une idée des fonctions de base et de voir comment vous pourrez y apporter votre touche personnelle.

    Maintenant, comme j'en ai parlé plus tôt, il vous faut quelques utilitaires qui vont vous simplifier la vie pour effectuer les tâches les plus simples.

    Un émulateur de console adapté

    Bon, en vrai, un linux sans console, c'est comme une waifu sans rondeurs une Ferrari sans levier de vitesse, c'est du gâchis de potentiel et ça envoie pas du rêve. D'autre part, on a décidé de se passer le plus possible d'applications GTK/QT/portnawak, donc je ne vous conseille pas d'utiliser gnome-terminal, qui va alourdir inutilement votre interface. À la place, je vous conseille rxvt-unicode, parfois aussi appelé urvxt. Il s'agit d'un terminal puissant, avec une énorme personnalisation. Un autre choix aurait été xterm, qui dispose d'une grande compatibilité avec d'anciens systèmes le plus souvent désuets, qui commence à vieillir et dont même les développeurs ont désormais du mal à maîtriser. J'en veux pour preuve un extrait du fichier README accompagnant le dépôt d'xterm :

    Abandon All Hope, Ye Who Enter Here

    This is undoubtedly the most ugly program in the distribution. It was one of the first "serious" programs ported, and still has a lot of historical baggage. Ideally, there would be a general tty widget and then vt102 and tek4014 subwidgets so that they could be used in other programs. We are trying to clean things up as we go, but there is still a lot of work to do.

    Ça se passe de commentaires.

    Une fenêtre de terminal se lance par la combinaison $mod+enter. i3 est assez intelligent pour savoir que vous avez installé urxvt ou xterm, et il n'a pas besoin de configuration pour lancer l'un de ces programmes lorsque invoquez cette configuration. Néanmoins, si vous choisissez d'utiliser un autre terminal par défaut, il vous faudra le préciser dans ~/.config/i3/config à l'aide de la directive i3-sensible-terminal.

    De même qu'i3, urxvt a besoin de sa configuration si vous voulez le modifier un tantinet (et vous allez sûrement le faire, car urxvt a une interface atroce par défaut). Ça se passe dans ~/.Xresources. Il s'agit d'un fichier utilisé par le serveur X, donc prudence, il est possible que vous y trouviez la configuration d'autres programmes. Je vous joins mes propres réglages, à vous de les modifier à votre convenance.

    ! Fonts {{{
    Xft.antialias: true
    Xft.hinting:   true
    Xft.rgba:      rgb
    Xft.hintstyle: hintfull
    Xft.dpi:       220
    ! }}}
    
    ! General
    urxvt\*termName:  rxvt-256color
    urxvt\*loginShell:         true
    urxvt\*scrollBar:         false
    urxvt\*secondaryScroll:    true
    urxvt\*saveLines:         65535
    urxvt\*cursorBlink:        true
    urxvt\*urgentOnBell:       true
    !urxvt\*override-redirect:false
    !urxvt\*borderLess:       false
    !urxvt\*internalBorder:       0
    !urxvt\*externalBorder:       0
    
    ! Extensions
    urxvt\*perl-lib:        /usr/lib/urxvt/perl/
    urxvt\*perl-ext-common: default,matcher
    urxvt\*urlLauncher:     /usr/bin/xdg-open
    urxvt\*matcher.button:  1
    URxvt.keysym.C-f: perl:url-picker
    !  - catch ugly URLs
    urxvt.cutchars:        \`()\*<>\[\]{|}
    
    ! Appearance
    !  - use a bitmap font
    !urxvt\*font:        -xos4-terminus-medium-\*-\*-\*-12-\*-\*-\*-\*-\*-\*-\*
    !urxvt\*boldFont:    -xos4-terminus-bold-\*-\*-\*-12-\*-\*-\*-\*-\*-\*-\*
    !  - use xft for drawing fonts
    URxvt.font:xft:Monospace:size=10
    !urxvt.letterSpace: -10
    !  - cursor
    urxvt\*cursorColor: #FFFFFF
    !  - pseudo transparency
    !urxvt\*shading:    50
    !urxvt\*transparent:true
    !
    !  - color scheme
    urxvt.background:  #000000
    urxvt.foreground:  #FFFFFF
    URxvt.transparent:   true
    URxvt.shading:       30
    ! black + red
    !urxvt\*color0:     #3f3f3f
    !urxvt\*color0:      #000000
    !urxvt\*color1:      #e01010
    ! green + yellow
    !urxvt\*color2:      #00AA00
    !urxvt\*color3:      #FFFF00
    ! blue + purple
    urxvt\*color4:      #112037
    !urxvt\*color5:      #A020F0
    ! cyan + white
    !urxvt\*color6:      #5B5BC7
    !urxvt\*color7:      #fefefe
    ! bright-black + bright-red
    !urxvt\*color8:      #6a6a6a
    !urxvt\*color9:      #FF5555
    ! bright-green + bright-yellow
    !urxvt\*color10:     #90EE90
    !urxvt\*color11:     #ffff2f
    ! bright-blue + bright-purple
    urxvt\*color12:     #5B5BC7
    !urxvt\*color13:     #e628ba
    ! bright-cyan + bright-white
    !urxvt\*color14:     #7D7DFB
    !urxvt\*color15:     #ffffff

    Des volumes qui se montent tout seul

    J'aime bien pouvoir brancher ma clef USB et qu'elle se monte toute seule dans mon système avec les droits qui vont bien, et ne pas avoir à taper ce genre de commande :

    sudo mount /dev/sdX /home/raspbeguy/mnt

    Et en plus, avec cette commande, vous n'avez même pas le droit d'écriture sur votre clef en simple utilisateur, c'était vraiment casse-pied, pour rester poli.

    Heureusement, vous pouver installer udisk qui va le faire pour vous, puis udiskie, un wrapper qui va utiliser udisk  plus simplement. Pour lancer udiskie automatiquement au démarrage d'i3, écrivez juste dans la configuration d'i3 :

    exec udiskie -ans &

    et le tour est joué. Vous aurez vos volumes tout beaux qui se monteront comme des grands, des notifications à chaque branchement/débranchement de volume, et un menu dans la barre du bas permettant de démonter les volumes.

    Le réseau à portée de clic

    Il est pratique d'avoir un petit menu permettant d'avoir la main sur les interfaces réseau. Pour cela, on aura déjà besoin de network-manager, un démon système installé avec la plupart des environnements de bureau (je ne suis pas un grand fan, mais j'ai pas trouvé mieux pour le moment, sachant qu'il n'existe pas vraiment de menu simple pour netctl) et d'un programme appelé nm-applet permettant de disposer d'un tel menu.

    Le contrôle du volume

    Pour la gestion du volume sur votre machine, je vous conseille d'utiliser pulseaudio à la place d'alsa tout seul. Ça va en faire grincer des dents pour certains, mais bon, faut reconnaître que c'est quand même pratique pour changer rapidement de carte son par exemple. Pour avoir un menu dans la barre, on utilisera le paquet pasystray. Attention pour les utilisateurs d'Archlinux, au moment ou j'écris, le paquet AUR de nm-applet est mal foutu, il essaye d'installer deux version concurrentes de ce programme, et va par conséquent se bananer, vous aurez besoin de faire une installation manuelle.

    Sinon, beaucoup de claviers ont des touches média, avec contrôle du volume et d'intensité lumineuse. Il est possible d'utiliser ces touches avec i3 moyennant les bonnes lignes de configuration i3. Je vous donne cet extrait de configuration :

    # media keys
    bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 1 +5%
    bindsym XF86AudioLowerVolume exec pactl set-sink-volume 1 -5%
    bindsym XF86AudioMute exec pactl set-sink-mute 1 toggle
    
    # backlight
    bindsym XF86MonBrightnessUp exec xbacklight -inc 5
    bindsym XF86MonBrightnessDown exec xbacklight -dec 5

    Notez que vous aurez peut-être à changer le "1" en "0" sur les lignes de volume, cela dépendra de votre configuration matérielle.

    Le fond d'écran

    Certains diront que c'est un réglage pas très important, mais j'estime que c'est quand même bien agréable. Personnellement, j'utilise le fond d'écran que j'ai configuré dans lightdm, ce qui m'évite de recourir à un autre utilitaire ou configuration. Si vous voulez utilisez un fond d'écran différent, vous pouvez utiliser nitrogen, qui dispose d'une interface GTK (yeurk...) pour choisir votre fond d'écran. Si vous optez pour cette solution, vous devrez ajouter cette ligne à votre configuration i3.

    exec nitrogen --restore

    J'ai donc expliqué les bases pour utiliser i3 confortablement. Dans des articles à venir, je présenterai des solutions pour se passer de programmes graphiques pour la plupart des tâches courantes.

    • At chevron_right

      xonsh, le shell pythonique

      raspbeguy · pubsub.gugod.fr / atomtest · Friday, 3 June, 2016 - 22:00 · 2 minutes

    Une petite news en provenance du PyCon, la convention centrée sur Python. Xonsh est un nouvel interpréteur de lignes de commandes, et s'inscrit dans la longues liste des programmes dont la prononciation du nom va nuire à de nombreuses oreilles et va faire l'objet d'intenses discussions autour de la ...

    Une petite news en provenance du PyCon, la convention centrée sur Python. Xonsh est un nouvel interpréteur de lignes de commandes, et s'inscrit dans la longues liste des programmes dont la prononciation du nom va nuire à de nombreuses oreilles et va faire l'objet d'intenses discussions autour de la machine à café.

    Un nouveau shell est né. C'est le genre de nouvelles qui, chez les sysadmins, fait pousser des hourras pour les uns et fait ricaner doucement les autres. Un petit points sur quelques unes de ses caractéristiques.

    Nombreux sont les administrateurs frustrés par les efforts  de frappe de texte lorsqu'il s'agit d'utiliser Bash, et qui préfèrent carrément se faire des scripts Python à la place. En effet, si vous vous souvenez de mon tutoriel Let's Encrypt, vous verrez des commandes Bash assez longues (et encore, ce n'est rien comparé à d'autres).

    Xonsh promet d'allier la robustesse de Bash et l'aisance de Python. Car oui, en Python, on tape en une ligne ce que d'autres langages permettent de faire en 10, pour peu que l'on dispose des bonnes bibliothèques. Xonsh dispose apparemment de plus de commandes internes, ce qui lui permet par exemple d'effectuer des calculs tout simplement en les tapant dans le prompt, sans autre forme de procès, par exemple :

    root@marvin ~ # 1 + 2 \* 3
    7

    On retrouve aussi une grande prise en charge des expressions régulières, utiles pour le glob des noms de fichiers par exemple. De quoi mettre les bons vieux utilitaires comme grep, sed, cut et awk à la retraite...

    Je vous laisse découvrir ci-dessous une démonstration de l'utilisation de Xonsh.

    On ne pourra s'empêcher de se rappeler, et les contributeurs de Xonsh le citent eux-même, le shell Fish, censé être beaucoup plus amusant à utiliser à grand coup de couleurs et d'auto-complétion à tout-va. Même si ce shell est très agréable à utiliser, son seul point fort est sa dorure extérieure. Pour ce qui était du scripting, il utilise des standards pas franchement catholiques, dans le sens qu'ils étaient fondamentalement opposés à ceux de Bash, et qu'il n'a pas réussi à imposer. Car dans le domaine des outils très fréquemment utilisés comme le shell, il n'y a que deux solutions : soit réussir à instaurer ses standards, soit se soumettre à ceux existants. Vous savez, les standards sont des choses très délicates, car par définitions, ils doivent rester très peu nombreux...

    Enfin bon, ici, il s'agit de Python, quand même, une technologie qui a fait ses preuves...

    • Ha chevron_right

      xonsh, le shell pythonique

      raspbeguy · pubsub.gugod.fr / hashtagueule · Friday, 3 June, 2016 - 22:00 · 2 minutes

    Une petite news en provenance du PyCon, la convention centrée sur Python. Xonsh est un nouvel interpréteur de lignes de commandes, et s'inscrit dans la longues liste des programmes dont la prononciation du nom va nuire à de nombreuses oreilles et va faire l'objet d'intenses discussions autour de la ...

    Une petite news en provenance du PyCon, la convention centrée sur Python. Xonsh est un nouvel interpréteur de lignes de commandes, et s'inscrit dans la longues liste des programmes dont la prononciation du nom va nuire à de nombreuses oreilles et va faire l'objet d'intenses discussions autour de la machine à café.

    Un nouveau shell est né. C'est le genre de nouvelles qui, chez les sysadmins, fait pousser des hourras pour les uns et fait ricaner doucement les autres. Un petit points sur quelques unes de ses caractéristiques.

    Nombreux sont les administrateurs frustrés par les efforts  de frappe de texte lorsqu'il s'agit d'utiliser Bash, et qui préfèrent carrément se faire des scripts Python à la place. En effet, si vous vous souvenez de mon tutoriel Let's Encrypt, vous verrez des commandes Bash assez longues (et encore, ce n'est rien comparé à d'autres).

    Xonsh promet d'allier la robustesse de Bash et l'aisance de Python. Car oui, en Python, on tape en une ligne ce que d'autres langages permettent de faire en 10, pour peu que l'on dispose des bonnes bibliothèques. Xonsh dispose apparemment de plus de commandes internes, ce qui lui permet par exemple d'effectuer des calculs tout simplement en les tapant dans le prompt, sans autre forme de procès, par exemple :

    root@marvin ~ # 1 + 2 \* 3
    7

    On retrouve aussi une grande prise en charge des expressions régulières, utiles pour le glob des noms de fichiers par exemple. De quoi mettre les bons vieux utilitaires comme grep, sed, cut et awk à la retraite...

    Je vous laisse découvrir ci-dessous une démonstration de l'utilisation de Xonsh.

    On ne pourra s'empêcher de se rappeler, et les contributeurs de Xonsh le citent eux-même, le shell Fish, censé être beaucoup plus amusant à utiliser à grand coup de couleurs et d'auto-complétion à tout-va. Même si ce shell est très agréable à utiliser, son seul point fort est sa dorure extérieure. Pour ce qui était du scripting, il utilise des standards pas franchement catholiques, dans le sens qu'ils étaient fondamentalement opposés à ceux de Bash, et qu'il n'a pas réussi à imposer. Car dans le domaine des outils très fréquemment utilisés comme le shell, il n'y a que deux solutions : soit réussir à instaurer ses standards, soit se soumettre à ceux existants. Vous savez, les standards sont des choses très délicates, car par définitions, ils doivent rester très peu nombreux...

    Enfin bon, ici, il s'agit de Python, quand même, une technologie qui a fait ses preuves...

    • Ha chevron_right

      Fablab vs. Hackerspace

      raspbeguy · pubsub.gugod.fr / hashtagueule · Thursday, 19 May, 2016 - 22:00 · 4 minutes

    Quand on parle de DIY, on ne peut pas louper la grande vague des fablabs, hackerspace, et autres champignons de la même farine. Il s'agit des initiatives destinées à donner au peuple le moyen d'apprendre la technique, de se regrouper, de construire, de réparer, d'améliorer et de recycler à peu près ...

    Quand on parle de DIY, on ne peut pas louper la grande vague des fablabs, hackerspace, et autres champignons de la même farine. Il s'agit des initiatives destinées à donner au peuple le moyen d'apprendre la technique, de se regrouper, de construire, de réparer, d'améliorer et de recycler à peu près n'importe quoi. Ce que peu de personnes savent, c'est qu'il existent plusieurs philosophies au sein de ce groupe de joyeux bricoleurs, des philosophies qui sont parfois tellement différentes que cela tourne parfois au conflit politique et social.

    Depuis quelques semaines, je m'intègre au sein de l'activité de ces ateliers communautaires. J'ai pris connaissances des enjeux de chaque parti, j'ai noté les tensions qui peuvent les opposer, et dans chacun deux, il y a des ensembles d'éléments qui me plaisent et d'autres qui me déplaisent.

    Avant que vous ne continuiez la lecture de cet article, un avertissement. Une petite partie de ce texte reflétera ma prise de position et mon expérience personnelle. Je préfère personnellement les hackerspaces, mais si vous êtes partisan de l'autre école, s'il vous plaît, n'en soyez pas vexé. Comme toujours, si vous estimez que j'ai tort, vous pouvez toujours commenter ou venir nous en parler autour d'une bière virtuelle sur IRC.

    Le Fablab, un espace rangé, discipliné.

    Le Fablab, un espace rangé, discipliné.

    Fablabs : la pointe du matériel au service de l'individu

    C'est probablement le type d'atelier communautaire le plus médiatisé. Probablement parce qu'il promeut un modèle industriel original.

    On y fait quoi ?

    Avant tout, un Fablab est un atelier. Sa vocation est de permettre à n'importe quel bricoleur de réaliser son projet matériel. En gros vous arrivez avec votre idée, et vous ressortez avec sous le bras.

    Un Fablab est parfois amené à effectuer des prestations pour des entreprises, contre espèces sonnantes et trébuchantes. Il arrive même que le Fablab ait des horaires d'ouverture dédiés aux entreprises, et donc fermé à tous les autres utilisateurs.

    Quel statut ?

    Un Fablab, pour être considéré comme tel, doit se plier à la charte commune des fablabs du monde entier, charte mise au point par un éminent professeur du MIT. En contrepartie, le Fablab bénéficie de la reconnaissance des autres Fablabs et dispose de la base de conaissance du grand réseau commun mondial des Fablabs.

    Quelles conditions ?

    Le Fablab dispose en général de matériel relativement neuf et de bonne qualité, ce qui implique généralement des frais à l'utilisation pour l'utilisateur ; selon moi, ces utilisateurs sont des clients plus que des contributeurs du Fablab.

    Le Hackerspace : un fouilli sans nom, un nid humain.

    Le Hackerspace : un fouilli sans nom, un nid humain.

    Hackerspaces : bienvenue à bord, matelot.

    Les Hackerspaces ont une définition volontairement plus floue et plus libre.

    On y fait quoi ?

    Au Hackerspace, on peut y faire absolument toute activité constructive, dans une multitude de domaines : informatique et électronique bien sûr, mais également mécanique, menuiserie, art, musique, parfois même jardinage, cuisine... Certains Hackerspaces sont un peu spécialisés dans certains domaines. L'idée étant que si vous savez faire un truc, vous êtes cordialement invité à mener un atelier ponctuel ou récurrent, afin d'initier des nouvelles personnes.

    On y aide également des personnes extérieures et d'autres associations, notamment en organisant des install party, en construisant des meubles et des installations diverses.

    L'activité d'un Hackerspace est aussi militante : outre la tendance des membres d'un hackerspace à favoriser et inciter à l'usage du libre (ce qui est une très bonne habitude), il peut aussi avoir une conviction politique en son sein. Comprenez-moi bien, un Hackerspace accueille les gens de tout bord politique avec le même intérêt. Il arrive que la question de la politisation de l'association se pose, en particulier pour son fonctionnement interne.

    Quel statut ?

    Un Hackerspace est avant tout une association, et les personnes qui le fréquentent en sont des membres, qui ont donc un pouvoir de décision au sein de la communauté. Il existe des rassemblement de Hackerspaces, sans empêcher chaque Hackerspace d'être autonome.

    Quelles conditions ?

    Dans un Hackerspace, si la bière peut couler à flot, ce n'est pas le cas de l'argent. Ici, toutes les actions sont bénévoles, l'intégralité du budget vient des (très maigres) cotisations des membres et des éventuels dons, financiers ou matériels. En général, les ustensiles utilisés sont vieux, récupérés et recyclés. La mentalité du Hackerspace est donc de faire du neuf avec du vieux plutôt que d'avoir des outils derniers cris pour être plus efficace.

    Exemple de récup : un réflecteur de lampe bricolé à partir du capot d'un vieux PC

    Exemple de récup : un réflecteur de lampe bricolé à partir du capot d'un vieux PC

    Alors, dois-je aller au Fablab ou au Hackerspace ?

    Si vous cherchez un endroit ou bricoler, si vous avez dans votre ville accès "uniquement" à l'un ou l'autre, alors allez-y sans vous poser de question, car vous êtes chanceux ! Il existe encore de nombreux endroits, notamment en campagne, ou il n'y a ni l'un ni l'autre. Si vous avez le choix entre un Fablab ou un Hackerspace à l'endroit ou vous êtes, cela dépend de votre besoin. Voici un récapitulatif des orientations des uns et des autres si on devait résumer grossièrement leurs motivations :

    • Le Fablab incite à l'innovation, tandis que le Hackerspace vise à lutter contre l'obsolescence programmée.
    • Le Fablab pousse à rendre les gens autonomes, tandis que le Hackerspace croit plutôt à l'entraide au sein d'une communauté.
    • Le Fablab vise le domaine de l'industrie, tandis que le Hackerspace préfère le bricolage amateur.

    Happy hacking !