Forum Linux.debian/ubuntu créer un lanceur pour "créer un document"

Posté par  . Licence CC By‑SA.
Étiquettes :
2
8
oct.
2025

Bonjour,

SVP, existe-t-il un moyen de créer un lanceur pour "créer un document". Sur nemo on fait un clic droit et on sélectionne alors "créer un document".
Je souhaiterais avoir accès à cette fonction grâce à un lanceur ou raccourci clavier.
la commande devra être générale avec un accès à tous les types existants (voir capture écran ci-dessous). Ces derniers sont dans le dossier "/home/user/Modèles" que j'alimenterai au gré de mes besoins.

Texte du lien

Merci d'avance pour une éventuelle réponse

  • # Pas simplement, il me semble.

    Posté par  . Évalué à 3 (+1/-0).

    Si je comprends bien à quoi tu fais référence, un lanceur ne peut pas reprendre directement cette fonction, car il ne sait pas dans quel répertoire créer ce document, alors que quand tu fais un clic droit dans un répertoire dans nemo, il sait où tu es.

    En conséquence, pour utiliser un lanceur, il faudrait à minima écrire un script qui te demande dans quel dossier faire ça : par exemple en bash avec zenity.

    • Tu devrais pouvoir alors créer un lanceur ou un raccourci clavier global pour lancer ce script.
  • # KDE

    Posté par  (site web personnel) . Évalué à 1 (+0/-0).

    ALT+F2 -> Writer -> Enter => Créer un document LibreOffice
    ALT+F2 -> Message -> Enter => Créer un nouveau Mail
    ALT+F2 -> Calc -> Enter => Créer une nouvelle feuille de calcul

    Bon ensuite, selon le type, ce n'est pas créer au sens réel, il faudra encore l'enregistrer au bon endroit.

  • # créer un lanceur pour "créer un document"

    Posté par  . Évalué à 1 (+0/-0).

    Salut,
    Pas sûr que ce soit dispo direct en lanceur, mais tu peux créer un script qui lance la création d’un nouveau fichier dans Nemo, puis assigner un raccourci clavier à ce script. Ça marche bien et c’est assez rapide à configurer !

  • # Quel type de document ?

    Posté par  . Évalué à 1 (+0/-0).

    Bonjour

    … "créer un document". …

    De quel type de document s'agit-il ? Est-ce un document texte, image, vidéo, audio, fichier archive, tableur, etc. ?

    Il faudrait que le lanceur démarre le programme (celui qui va être utilisé pour créer le document) en lui donnant les paramètres (répertoire dans lequel le document doit être créé, propriétés du document, etc.) qu'il faut.

    Donc il faudrait chercher, dans le manuel du programme concerné, quels paramètres utiliser et comment les spécifier dans la ligne de commande du lanceur.

    … et dans ce royaume, ceux qui y voient un peu plus clair sont parfois très mal vus.

  • # Demande de précisions

    Posté par  (site web personnel) . Évalué à 1 (+0/-0).

    Pour pouvoir t’aider dans l’écriture de la commande qu’exécutera ton lanceur, il aiderait de savoir :
    — si le dossier où le document sera créé sera toujours le même (si le dossier change, il faut trouver un moyen pour l’utilisateur de choisir ce dossier à chaque exécution de la commande)
    — si le nom du fichier créé sera toujours le même (idem, si le nom change, il faut que l’utilisateur puisse le choisir)
    — si le type de fichier change (idem)
    — s’il faut exécuter le fichier après sa création, et avec quel logiciel

    Enfin, il serait probablement utile aussi de comprendre pourquoi la fonction « clique droit / créer un document » ne te satisfait pas. Si ton objectif est de créer des dizaines de fichiers à la chaîne, il existe sans doute une meilleure méthode que la création d’un lanceur ou d’un raccourci clavier.

    • [^] # Re: Demande de précisions

      Posté par  . Évalué à 1 (+0/-0). Dernière modification le 09 octobre 2025 à 15:27.

      La commande devra être générale avec un accès à tous les types existants (voir capture écran ci-dessous). Ces derniers sont dans le dossier "/home/user/Modèles" que j'alimenterai au gré de mes besoins.

      capture écran

      Merci d'avance pour une éventuelle réponse

      • [^] # Re: Demande de précisions

        Posté par  (site web personnel) . Évalué à 1 (+0/-0).

        Une piste : utiliser un lanceur pour exécuter une commande qui copie le modèle dans le dossier Documents, puis qui ouvre cette copie avec l'éditeur de texte (xed) ou libreoffice. Attention, dans ce cas il faudra ensuite veiller à enregistrer le document dans le dossier souhaité (fichier / enregistrer sous).

        Exemples :
        sh -c 'cp /home/ktd/Modèles/modèle_chapitrage_video.txt /home/ktd/Documents/chapitrage_video_copie.txt && xed /home/ktd/Documents/chapitrage_video_copie.txt'

        sh -c 'cp /home/ktd/Modèles/texte.odt /home/ktd/Documents/texte_copie.odt && lowriter /home/ktd/Documents/texte_copie.odt'

        N’hésite pas à aller lire les pages man de sh, cp, xed, et libreoffice, pour écrire des commandes adaptées à tes besoins.

      • [^] # Re: Demande de précisions

        Posté par  . Évalué à 1 (+0/-0). Dernière modification le 10 octobre 2025 à 01:33.

        Pour faire afficher une boîte de sélection affichant la liste des fichiers du répertoire /$HOME/Modèles et ouvrir ensuite, dans le répertoire /$HOME/Documents, une copie du fichier sélectionné, j'ai utilisé zenity dans un script qu'il faudra faire lancer par le … lanceur.

        Contenu du script :

        #!/bin/bash
        
        repSource="$HOME/Modèles"
        repCible="$HOME/Documents"
        
        # Créer une liste des fichiers qui existent dans le répertoire source (~/Modèles)
        liste="$(for f in "$repSource"/*; do printf '%s\n' "${f/*\/}";done)"
        
        # Afficher une boîte de dialogue pour sélectionner un des modèles de la liste
        model="$(zenity --list --text="Choisissez un modèle de fichier." --column="Liste des modèles existants :" $liste 2>/dev/null)"
        
        # Si un modèle a été choisi, créer une copie du fichier modèle dans le répertoire cible (~/Documents) et ouvrir le fichier créé
        [ $? -eq 0 ] && cp --backup=numbered "$repSource/$model" "$repCible/$model" && exo-open "$repCible/$model"

        … et dans ce royaume, ceux qui y voient un peu plus clair sont parfois très mal vus.

        • [^] # Re: Demande de précisions

          Posté par  . Évalué à 1 (+0/-0).

          Rhaaa, j'ai oublié d'ajouter dans le script la modification de IFS.

          Ce qui donnerait :

          #!/bin/bash
          
          repSource="$HOME/Modèles"
          repCible="$HOME/Documents"
          
          # Créer une liste des fichiers qui existent dans le répertoire source (~/Modèles)
          liste="$(for f in "$repSource"/*; do printf '%s\n' "${f/*\/}";done)"
          
          # Afficher une boîte de dialogue pour sélectionner un des modèles de la liste
          OLDIFS=$IFS
          IFS=$'\n' model="$(zenity --list --text="Choisissez un modèle de fichier." --column="Liste des modèles existants :" $liste 2>/dev/null)"
          IFS=$OLDIFS
          
          # Si un modèle a été choisi, créer une copie du fichier modèle dans le répertoire cible (~/Documents) et ouvrir le fichier créé
          [ $? -eq 0 ] && cp --backup=numbered "$repSource/$model" "$repCible/$model" && exo-open "$repCible/$model"

          … et dans ce royaume, ceux qui y voient un peu plus clair sont parfois très mal vus.

          • [^] # Re: Demande de précisions

            Posté par  . Évalué à 1 (+0/-0).

            #!/bin/bash
            
            repSource="$HOME/Modèles"
            repCible="$HOME/Documents"
            
            IFS=''
            
            # Créer une liste des noms des fichiers qui existent dans le répertoire source (~/Modèles)
            liste=( $repSource/* )
            liste=( "${liste[@]##*/}" )
            
            # Afficher une boîte de dialogue pour sélectionner un des modèles dans la liste
            model="$(zenity --list --title="Choisissez un modèle de fichier." --text="" --column="Liste des modèles existants :" ${liste[@]} 2>/dev/null)"
            
            # Modifier le nom (sans son extension) du fichier à créer
            [ $? -eq 0 ] && cible="$(zenity --entry --title="Modifier le nom (sans son extension) du fichier" --text="Entrez le nom du fichier à créer :" --entry-text ${model%.*} 2>/dev/null)"
            
            # Créer une copie du fichier modèle dans le répertoire cible (~/Documents) et ouvrir le fichier créé
            [ $? -eq 0 ] && cp --backup=numbered "$repSource/$model" "$repCible/$cible.${model#*.}" && exo-open "$repCible/$cible.${model#*.}"

            … et dans ce royaume, ceux qui y voient un peu plus clair sont parfois très mal vus.

Envoyer un commentaire

Suivre le flux des commentaires

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