Résumé: comment définir Run in Terminal
comme action par défaut Nautilus en double-clic?
Je souhaite exécuter un script interactif en double-cliquant dessus. Pour interagir avec cela, je dois le voir fonctionner.
Si je gsettings
règle org.gnome.nautilus.preferences executable-text-activation
sur ask
, cela me donne le choix; Run in Terminal
fait ce que je veux; Run
non, car lorsque le script doit me demander quelque chose, il se bloque. Cependant, je ne veux pas avoir à cliquer sur le Run in Terminal
à chaque fois. Je veux le faire par défaut. Je l'ai déjà fait d'une manière ou d'une autre.
J'ai essayé de gsettings
mettre org.gnome.nautilus.preferences executable-text-activation
à launch
; Cependant, cela ne fait que Run
par défaut; Je ne vois pas comment rendre Run in Terminal
par défaut.
J'ai également essayé d'insérer une commande gnome-terminal
. Cela permet de faire apparaître une fenêtre de terminal (même lorsque simplement Run
); Cependant, je dois alors envoyer toutes les commandes à cette fenêtre de terminal.
Alternativement, je sais comment envoyer (juste) la partie interactive du script à ce terminal, ce qui fonctionnerait pour moi; Cependant, dans ce cas, j'ai besoin que le script s'arrête jusqu'à la fin de la partie interactive, puis reprenne l'exécution. En règle générale, cela peut être accompli à l'aide de la commande wait
; tel quel, la commande gnome-terminal
semble fonctionner plutôt comme gnome-terminal&
, en ce sens qu'elle cède le contrôle au script bash dès son lancement.
J'ai lu près de 10 doublons du fil Comment puis-je exécuter des scripts exécutables dans Nautilus? (y compris d'autres sites) et je ne trouve toujours pas ma réponse. Toute autre solution sera appréciée.
Pas littéralement ce que vous avez demandé, reste une option élégante, je crois:
Créez un petit script:
#!/bin/bash
gnome-terminal -e $1
Enregistrez-le sous le nom run_interminal.sh
dans ~/.local/share/nautilus/scripts
. Créez le répertoire s'il n'existe pas.
C'est ça. Sélectionnez un script et choisissez Scripts -> runinterminal.sh:
Faites glisser un script (exécutable) sur un lanceur pour l'exécuter dans le terminal:
Copiez le code ci-dessous dans un fichier vide et enregistrez-le sur votre bureau sous le nom run_script.desktop
[Desktop Entry]
Name=Run Script
Type=Application
Exec=gnome-terminal -e %u
Terminal=true
Le rendre exécutable
C'est ça. Désormais, lorsque vous faites glisser un script exécutable sur l'icône, il s'exécutera dans le terminal (gnome-).
Comme mentionné, le script run_interminal.sh
doit être exécutable pour apparaître dans le menu.
Tel qu'il est, le script à exécuter doit également être exécutable. run_interminal.sh
peut facilement être configuré pour rendre automatiquement le script ciblé exécutable ou pour appeler un interprète. Si cela est nécessaire, veuillez mentionner.
Cette solution devrait fonctionner pour chaque:
gestionnaires de fichiers prenant en charge des "actions personnelles configurables".
les gestionnaires de fichiers configurés pour ouvrir les fichiers avec un double-clic.
x émulateurs de terminaux disposant d’options d’exécution: "-e" ou "--execute".
script qui a la permission d'être exécutable.
EDIT
Testé avec le gestionnaire de fichiers thunar et après cela, j'ai installé Nautilus et maintenant double-cliquez sur le script d'exécution pour les deux.
1- Faites un clic droit sur votre script
2- Sélectionnez "ouvrir avec"
3- Cliquez sur "Ouvrir avec une autre application"
4- Cliquez sur "ouvrir avec une commande"
5- Cochez "utiliser cette action pour ce type de fichier"
6- Entrez la commande suivante dans la zone de texte: x-terminal-emulator -e "/bin/bash %f"
7- Cliquez sur Ouvrir, votre script est exécuté dans la fenêtre du terminal.
8- Redémarrez votre gestionnaire de fichiers
Maintenant, chaque fois que vous double-cliquez sur un script, celui-ci sera exécuté.
Trouvé la solution courte à la question. L'ajout de --disable-factory
aux options de gnome-terminal le fait attendre que le terminal se termine avant de continuer le reste du script.