Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  Lidecli : Un outil en ligne de commande pour interagir avec les environnements de bureau

 -  Juillet 2023 - 

Lidecli - abréviation de Linux Desktop CLI - est un wrapper libre (MIT) développé en Python permettant de scripter plus facilement le positionnement de vos fenêtres quel que soit votre environnement de bureau. Habituellement, scripter ou automatiser le positionnement des fenêtres nécessite :

  • l’utilisation d’outils bien connus (wmctrl, xprop, qdbus, xrandr, etc.),
  • ou, pour certains environnements - du code (LUA pour AwesomeWM par exemple).

En d’autres termes, il n’existe pas vraiment de moyens « simples » permettant de scripter à sa guise son environnement. Lidecli agit comme un wrapper qui simplifie grandement cette tache.

Lidecli

Lidecli par l’exemple

  • Vous souhaitez donner le focus à votre terminal via un raccourci-clavier configuré au niveau de votre environnement ?
    lidecli.py x-focus-name Terminal

  • Vous voulez mettre votre navigateur web en plein écran ?
    lidecli.py x-set-win-name-fullscreen Firefox

  • Vous souhaitez déplacer votre navigateur web sur votre second moniteur ?
    lidecli.py x-move-win-name-screen Firefox 2

  • Vous souhaitez changer l’opacité de votre terminal à 80% ?
    lidecli.py x-set-win-name-opacity Terminal 80

  • Vous avez l’habitude d’ouvrir plusieurs VSCode et souhaitez pouvoir basculer de l’un à l’autre via des raccourcis-clavier ?

    lidecli.py x-focus-name-nth "Visual Studio" 1
    lidecli.py x-focus-name-nth "Visual Studio" 2
    lidecli.py x-focus-name-nth "Visual Studio" 3

Il vous suffit d’associer - dans votre environnement de bureau - ces commandes à des raccourcis-clavier, et le tour est joué !

Plus de 160 commandes disponibles

L’outil est livré avec plus de 160 commandes qui peuvent être affichées en tapant :

lidecli.py -l

Chaque commande possède plusieurs tags (étiquettes), notamment pour mentionner quels outils sont nécessaires à son fonctionnement (wmctrl, xprop, etc.), les environnements de bureau compatibles le cas échéant, et si la commande est compatible X ou Wayland.

Il est possible de filtrer la liste des commandes en fonction des tags. Par exemple, lidecli.py -l -t x11 -n kde affichera la liste des commandes compatibles X mais qui ne sont pas spécifiques à KDE.

Un autre moyen de consulter les commandes disponibles est de consulter le site de l’outil : https://lidecli.com

Initialement, Lidecli a été développé pour KDE pour éviter les appels D-BUS, ce qui explique le nombre important de commandes dédiées à cet environnement de travail.

Mais Lidecli s’est ensuite étendu en utilisant les outils génériques de type wmctrl, et on peut donc l’utiliser quel que soit son environnement. À noter que le nombre de commandes pour Wayland semble pour le moment assez limité puisque le contrôle des fenêtres est dépendante du gestionnaire de fenêtres utilisé, contrairement à X ou l’architecture (et la sécurité) est différente.

Un wrapper, mais aussi un framework

Lidecli est un wrapper/une surcouche qui fait appel aux binaires usuels dédiés au scripting des fenêtres et écrans. Mais il s’agit également d’un framework, puisqu’il est relativement simple d’ajouter de nouvelles commandes. En effet, l’intégralité des commandes sont enregistrées dans un fichier unique - db.py - contenu dans le repository.

Chaque commande est simple à définir : nom, description, tags, les arguments, et les commandes shell à exécuter.

Exemple de définition d’une commande simple permettant de fermer une fenêtre :

 {
    "name": "x-kill-win-name",
    "description": "Kill a window specified by its name",
    "forwarded_arguments": [
        { "name": "WinName", "description": "The part of the window name to kill"}
    ],
    "command": "wmctrl -c #1#",
    "versions_working": [("x11", "all")],
    "versions_not_working": [],
    "tags": ["x11", "windows", "wmctrl" ]
},

Il est également possible de faire appel à des callbacks (en Python) pour analyser le résultat de certaines commandes shell. De la même façon, une nouvelle commande peut faire appel à du code Python et non des commandes shell, pour des cas plus complexes.

Un outil pratique

L’idée de réaliser un outil unifié permettant de gérer ses fenêtres en ligne de commande semble intéressante. Même si des outils comme wmctrl accomplissent des merveilles, certaines tâches sont parfois plus complexes et nécessitent le développement d’un script. Ce manque est comblé par Lidecli.

À titre d’exemple, pour déplacer une fenêtre d’un moniteur à un autre sans changer sa géométrie ni son positionnement relatif, il est nécessaire d’avoir la configuration des écrans (avec xrandr par exemple), puis de faire des calculs d’offset pour repositionner la fenêtre à l’endroit souhaité.

De la même façon, pour donner le focus à la 3e fenêtre d’une application donnée (si vous avez 3 terminaux ouverts par exemple), il est possible de le faire avec wmctrl seulement mais ce n’est pas trivial :

wmctrl -lx |grep Terminal | cut -d ' ' -f1 | head -3 | tail -1 | xargs wmctrl -i -a

Lidecli semble donc combler un manque et offrir la possibilité à tous - sans connaissances particulières - de scripter leur environnement de travail relativement aisément.

Enfin, si une communauté se développe autour de l’outil (diffusé sous license MIT), cela pourrait ouvrir la voie à une véritable bibliothèque pour gérer aisément la disposition des fenêtres en ligne de commande quel que soit son environnement.

Commentaires : voir le flux Atom ouvrir dans le navigateur

par JulienPro, Julien Jorge, Benoît Sibaud, Ysabeau

DLFP - Dépêches

LinuxFr.org

Libre Graphics Meeting 2024, les 9-11 mai, à Rennes, France

 -  30 avril - 

Le Libre Graphics Meeting (LGM) est la plus grande rencontre mondiale des logiciels libres de graphisme. Née en 2006 de la proposition de l’équipe (...)


Proxmox Virtual Environment 8.2 avec assistant d'import VMware disponible

 -  26 avril - 

Proxmox Server Solutions GmbH a publié la version 8.2 de sa plate-forme de virtualisation libre Proxmox Virtual Environment (VE).La solution (...)


Codeberg, la forge en devenir pour les projets libres ?

 -  25 avril - 

Face aux risques que fait peser GitHub sur le monde des logiciels libres suite à son rachat par Microsoft en 2018, une alternative semble avoir (...)


L’informatique sans écran

 -  21 avril - 

Lors d’un Noël de ma tendre jeunesse pré-adolescente est arrivé un « ordinateur » dans le foyer. Ce PC (Intel 386) a été installé dans le bureau et a (...)


Entretien avec GValiente à propos de Butano

 -  16 avril - 

GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.Cet entretien revient sur son parcours et les raisons (...)