Comment j’utilise Ansible pour ajouter une fonctionnalité à mon bureau Linux KDE


  • Français


  • J’exécute le bureau KDE Plasma sur mon ordinateur car il s’agit d’un environnement flexible avec de nombreuses options de personnalisation. Avoir des choix sur votre bureau ne se limite pas à avoir de nombreux menus et boutons à activer ou à désactiver. Ce que j’aime le plus dans KDE Plasma Desktop, c’est la possibilité d’y ajouter mes propres fonctionnalités. L’une des raisons pour lesquelles cela est possible est KServices, un framework de plug-in simple mais puissant pour gérer les services de bureau.

    Dans le bureau Plasma de KDE, un menu contextuel est généralement disponible lorsque vous cliquez avec le bouton droit sur quelque chose, comme un répertoire ou un fichier. Vous pouvez ajouter des éléments au menu contextuel en créant votre propre KService, et vous n’avez besoin de rien de plus qu’une compréhension rudimentaire de Bash pour le faire fonctionner.

    Tout d’abord, créez un nouveau répertoire pour votre menu de service :

    $ mkdir -p ~/.local/share/kio/servicemenus

    Ajouter un .desktop déposer:

    $ touch ~/.local/share/kio/servicemenus/hello.desktop

    Ouvrez le hello.desktop fichier dans un éditeur de texte. UN .desktop Le fichier est un petit fichier de configuration utilisé par le système de menus du bureau Linux. Voici un simple fichier KServices qui génère un hello.txt fichier dans le répertoire que vous sélectionnez :

    [Desktop Entry]
    Type=Service
    MimeType=inode/directory;
    Actions=Hello
    
    [Desktop Action Hello]
    Name=Say hello
    Icon=/usr/share/icons/breeze-dark/actions/symbolic/file-library-symbolic.svg
    Exec=touch %f/hello.txt
    • Le premier bloc de configuration indique à votre système que ce .desktop file est un service plutôt que, par exemple, une application.

    • Le MimeType indique à Plasma Desktop de n’afficher cette action qu’en option lorsque vous cliquez avec le bouton droit sur un dossier, pas sur un fichier.

    • Le Actions identifie l’action entreprise lorsque ce service est activé. Le nom Hello est arbitraire et fait référence au bloc de configuration suivant, qui est un Desktop Action configuration avec le nom Hello.

    Voici ce que signifie le bloc de configuration suivant :

    • Le Desktop Action définition nommée Hello.

    • Les valeurs pour Name et Icon apparaissent dans le menu contextuel.

    • Le Exec line est la commande que vous souhaitez exécuter lorsque votre service est sélectionné. A titre de simple démonstration, ce .desktop file crée simplement un fichier vide appelé hello.txt à l’emplacement sur lequel vous avez cliqué avec le bouton droit de la souris (représenté par la variable spéciale %f).

    Sauver la .desktop fichier, puis rendez-le exécutable :

    $ chmod +x ~/.local/share/kio/servicemenus/hello.desktop

    Démarrez une nouvelle instance du gestionnaire de fichiers Dolphin et créez un dossier vide. Cliquez ensuite avec le bouton droit sur le dossier et accédez à Actions. Dans le Actions menu, un nouveau service est disponible et il s’appelle Dis bonjour parce que c’est ce que votre .desktop fichier a défini dans le Name champ.

    (Seth Kenlon, CC BY-SA 4.0)

    Regardez dans le dossier après avoir exécuté le service pour voir le vide hello.txt fichier qui a été créé.

    Types MIME

    Cet exemple de KService ne fonctionne que sur les répertoires car le .desktop fichier définissant le service spécifie le Mimetype: inode/directory. C’est ce qui indique à Dolphin de ne pas afficher le service lorsque vous cliquez avec le bouton droit sur un fichier.

    À l’aide de types mime, vous pouvez créer des services hautement spécifiques en fonction du type d’objet du système de fichiers que vous sélectionnez lorsque vous cliquez avec le bouton droit. Le perl-file-mimeinfo forfait fournit un mimetype commande, que vous pouvez utiliser pour obtenir le type mime de n’importe quel fichier. Installez-le avec le gestionnaire de paquets de votre distribution, puis essayez-le :

    $ mimetype example.txt
    example.txt: text/plain
    $ mimetype Photos/example.webp
    Photos/example.webp: image/webp

    Exécutables

    J’ai démontré un exemple simple “hello world” dans cet article, mais KServices peut être aussi complexe que vous en avez besoin. Le Exec ligne de votre KService .desktop peut lancer n’importe quelle application ou script, et le %f garantit que la cible ou la destination de tout ce qui est lancé correspond à ce sur quoi vous avez cliqué avec le bouton droit de la souris.

    Pour mon propre flux de travail, j’avais l’habitude d’utiliser Planter pour construire rapidement un environnement de projet. Dernièrement, cependant, je suis passé à Ansible et à ce KService :

    [Desktop Entry]
    Type=Service
    MimeType=inode/directory;
    Actions=planter
    
    [Desktop Action planter]
    Name=Create project directory
    Icon=/usr/share/icons/breeze-dark/actions/symbolic/folder-new-symbolic.svg
    Exec=ansible-playbook /home/seth/Ansible/playbooks/standard_dirs.yaml -e dir=%f

    Voici mon playbook Ansible :

    ---
    - hosts: localhost
      tasks:
        - name: Create directories
          ansible.builtin.file:
            path: "{{ item }}"
            state: directory
          with_items:
            - '{{ dir }}/video'
            - '{{ dir }}/edit'
            - '{{ dir }}/audio'
            - '{{ dir }}/title'
            - '{{ dir }}/render'
            - '{{ dir }}/graphic'
            - '{{ dir }}/photo'

    Lorsque je clique avec le bouton droit sur un répertoire et que je sélectionne Créer un répertoire de projet, les sous-répertoires dont j’ai besoin pour les projets multimédias sont ajoutés à ce répertoire. C’est une fonctionnalité simple pour un ordinateur de bureau et un peu unique pour un flux de travail spécifique, mais c’est la fonctionnalité que je veux. Et grâce à KServices, c’est une fonctionnalité que j’ai. Essayez par vous-même KServices dans KDE Plasma Desktop et ajoutez la fonctionnalité souhaitée.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code