Forum Linux.débutant Création d'un bouton dans une fenêtre

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
27
fév.
2020

Bonjour,
par avance, je vous présente mes excuses si cette question a déjà été posée, je n'ai pas réussi à trouver une réponse satisfaisante.

vuolsicosi@BOISSIEU:~$ cat /etc/issue
Ubuntu 18.04.4 LTS \n \l

J'ai écrit un script (tout con) que j'aimerais pouvoir exécuter rapidement dans une fenêtre, disons ~/fenetre.

Pour l'instant, je clique droit, ouvrir un terminal ici, et j'appelle mon script
J'aimerais créer un bouton qui fasse ça.

Et je ne sais pas, mais alors pas du tout!, comment ça fonctionne.

Merci de l'attention que vous porterez à ce message

  • # Script nautilus ou yad et .desktop

    Posté par  . Évalué à 5. Dernière modification le 28 février 2020 à 10:53.

    Je n'ai pas compris si tu veux pouvoir lancer un script sur un fichier en utilisant clic droit ou si tu veux pouvoir l'avoir comme une application graphique. Voici donc les deux solutions auxquelles j'ai pensé :

  • # Création d'un .desktop

    Posté par  (site web personnel) . Évalué à 8.

    Crée le dossier $HOME/bin s'il n'existe pas:

    mkdir -p $HOME/bin

    Enregistre ton script dans ce dossier (pas obligatoire, mais c'est plus propre).

    Exemple de script:

    #! /bin/bash
    
    cat /etc/issue # mets les commandes que tu veux exécuter à la place de cette ligne
    
    read -n 1

    Note le read -n 1 qui va faire en sorte d'attendre un appui sur une touche du clavier pour quitter.

    Ensuite tu peux lancer alacarte si tu es sous GNOME (ou l'installer avec sudo apt-get install alacarte ou équivalent). C'est un éditeur de fichier .desktop, un peu l'équivalent des raccourcis Windows. Tu as cette réponse askubuntu qui décrit alacarte: https://askubuntu.com/questions/308184/icon-assigned-in-desktop-file-is-not-used-when-application-is-loaded-and-launch/338980#338980

    Alacarte

    1. Ensuite tu cliques dans la zone 1 sur une catégorie, ou bien à la racine "Application" (perso je mets tout à la racine, j'en ai pas 50).
    2. Tu cliques sur le bouton 2 pour créer une nouvelle entrée.
    3. Dans la boite de dialogue qui s'affiche, tu remplis la zone 3. Le champ type a disparu depuis, coche à la place la case "lancer dans un terminal", et pour la commande, clique sur le bouton "Browse" et va chercher ton script où tu l'as mis (dans $HOME/bin/ normalement). Donne lui un nom aussi pour le retrouver plus facilement.
    4. Tu peux personnaliser l'icône
    5. Clique sur OK.
    6. Referme alacarte

    Ensuite pour l'intégration à ton environnement de bureau, ça dépend. Sous GNOME, je vais juste faire une recherche dans les applications avec le nom que j'ai donné au script dans alacarte, et une fois trouvé, je fais un clic droit dessus → ajouter aux favoris. Ainsi il apparait dans ma barre de lancement. Vu que ce n'est pas une application graphique qu'on lance mais juste un script, le read dans le script permet de voir le terminal se lancer et le bloquer en attente d'un appui touche, pour que le terminal reste affiché au lieu de disparaître instantanément.

  • # Précisions

    Posté par  . Évalué à 1.

    Désolé, je n'ai pas pu consulter vos réponses avant aujourd'hui.
    Merci pour vos réponses.

    Je pense que liberforce a mieux saisi ce que je voulais faire, j'ai donc suivi les instructions, et je me heurte encore à quelques problèmes.

    Je me suis probablement exprimé de façon trop imprécise.

    Mon script est dans ~/bin, qui est ajouté dans la variable d'environnement PATH, pour pouvoir être lancé de n'importe où

    Je copie graphiquement par cliquer-glisser un certain nombres de fichiers .tex dans un dossier (pas toujours le même), disons ici ~/latex/test_script/

    Mon script appelé "concatener" scanne le dossier dans lequel je l'ai lancé, et concatène tous les fichiers de ce dossier dans un unique .tex

    Ce que j'aimerais, c'est:
    1. ouvrir une fenêtre.
    2. me rendre par clics dans ce dossier ~/latex/test_script/
    3. disposer d'un bouton à cliquer (dans ma fenêtre) qui remplacerait la série d'actions suivantes:

    a.clic droit
    b.ouvrir un terminal ici
    c.écrire la commande concatener
    d.entrer
    Pour l'instant, ta proposition me permet de créer un lanceur dans la barre en haut de l'écran, mais il lance le script, mais pas dans le répertoire courant

    J'espère avoir été plus précis, en attendant impatiemment vos réponses :)
    Nicolas

    • [^] # Re: Précisions

      Posté par  (site web personnel) . Évalué à 4.

      Bon, je vois un peu mieux. Avec un lanceur, tu ne peux pas passer de paramètres, ça ne fonctionnera pas si tu ne copies pas toujours tes fichiers au même endroit. Donc cela demanderait soit le développement d'une application, soit de trouver une application existante qui ferait cela. La dernière possibilité, c'est celle que tu utilises, mais qui me semble sous-exploitée: utiliser un terminal (et t'épargner la copie des fichiers).

      cat ~/Documents/{a,b}.tex ~/latex/test_script/*.tex > out.tex

      Le terminal te permet un maximum de souplesse: tu peux choisir quels fichiers copier, dans quel ordre les concaténer, et où stocker le résultat. La touche Tab te permet de compléter les chemins vers tes fichiers, les caractères joker (?*, etc.) te permettent avec des motifs de sélectionner facilement plusieurs fichiers.

  • # Merci

    Posté par  . Évalué à 2.

    Merci pour la précieuse aide.
    Je vais étudier ta proposition.
    Pour l'instant en cas de problème, ma solution n'est pas non plus catastrophique :)

    À bientôt, je progresse peu à peu dans l'utilisation un peu plus approfondie de Linux

    • [^] # Re: Merci

      Posté par  (site web personnel) . Évalué à 2. Dernière modification le 06 mars 2020 à 17:24.

      Clique sur "répondre" directement sous le message auquel tu réponds, sinon je ne suis pas notifié des réponses :p

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.