Thunar Custom Actions – Script guake
A l’installation de Xubuntu vous devriez avoir cette action personnalisée dans votre fichier uca.xml.
<action> <icon>Terminal</icon> <name>Ouvrir un terminal ici</name> <unique-id>1397790178269842-1</unique-id> <command>exo-open --working-directory %f --launch TerminalEmulator</command> <description>Exemple d'une action personnalisée</description> <patterns>*</patterns> <directories/> </action>
J’utilise Guake, j’ai décidé d’apporter des modifications. Voici le script guakehere, il est très simple mais il a la particularité que je l’ai écrit afin qu’il fonctionne pour les deux actions personnalisées « Guake here ».
#!/bin/bash # guakehere.sh v1.0 # # 20/06/2015 # guake -n NEW_TAB && guake -e "cd $1" && guake -t if [[ -n "$2" ]]; then echo -n "$2" | xclip -selection c; fi
guake -n NEW_TAB
: Ouvre un nouvel onglet dans guake
guake -e "cd $1"
: Exécute la commande "cd $1"
dans guake
guake -t
: Fait apparaître guake
if [[ -n "$2" ]]
: Une condition qui est vrai si "$2"
est non nulle donc si on a un deuxième paramètre seulement. Voir man bash : -n chaîne
Vrai si la longueur de la chaîne est non nulle
then echo -n "$2" | xclip -selection c
: Alors on copie "$2"
dans le presse-papier. On utilise pour cela l’outil xclip qu’on installe avec apt-get install xclip
fi
: Fin de la condition
Voici l’action « Guake here » qui est proposé lors d’un clic droit sur un endroit blanc dans le dossier ou sur un dossier. Vous pouvez remarquer la balise
<directories/>
à ce propos. On utilise %f
ici (le chemin vers le premier fichier sélectionné).
<action> <icon>Terminal</icon> <name>Guake here</name> <unique-id>1397790178269842-1</unique-id> <command>/home/deus/guake_here.sh "%f"</command> <description>Ouvrir guake ici</description> <patterns>*</patterns> <directories/> </action>
On remarque qu’il n’y a qu’un seul paramètre %f
donc la ligne if [[ -n "$2" ]]; then echo -n "$2" | xclip -selection c; fi
ne servira pas ici. Je suis dans le dossier /home/babar/Vidéos/Famille/Bébé/ avec Thunar. Si je fais un clic droit dans le dossier sur un endroit blanc et je choisis l’action personnalisée « Guake here » alors guake apparaît avec babar@~/Bébé. Je suis satisfait. Si je fais un clic droit sur le dossier Petite enfance (je suis toujours dans le dossier /home/babar/Vidéos/Famille/Bébé/ avec Thunar) et je choisis l’action personnalisée « Guake here » alors guake apparaît avec babar@~/Petite enfance. Je suis satisfait.
Voici la seconde action « Guake here » qui est proposé lors d’un clic droit sur n’importe quel fichier. Vous pouvez remarquer les balises
<audio-files/>
,
<image-files/>
,
<other-files/>
,
<text-files/>
,
<video-files/>
à ce propos. On utilise %d
(répertoire contenant le fichier qui est passé dans %f
) et %f
(le chemin vers le premier fichier sélectionné).
<action> <icon>Terminal</icon> <name>Guake here</name> <unique-id>1397790167269842-1</unique-id> <command>/home/deus/guake_here.sh "%d" %f</command> <description>Ouvrir guake ici</description> <patterns>*</patterns> <audio-files/> <image-files/> <other-files/> <text-files/> <video-files/> </action>
Il y a deux paramètres donc if [[ -n "$2" ]]; then echo -n "$2" | xclip -selection c; fi
servira cette fois-ci et permettra donc de coller le chemin vers le fichier. Je suis dans le dossier /home/babar/Vidéos/Famille/Bébé/ avec Thunar. Si je fais un clic droit dans le dossier sur le fichier Naissance.mp4 et je choisis l’action personnalisée « Guake here » alors guake apparaît avec babar@~/Bébé. De plus si je fais l’action de coller alors j’aurais "/home/babar/Vidéos/Famille/Bébé/Naissance.mp4"
collé dans guake (ou n’importe où ailleurs cela dépendant d’où vous faites l’action de coller). C’est évidemment très pratique et un gain de temps important quand on se sert souvent de la ligne de commande. Remarquez que j’ai utilisé %f
, j’aurais pu utiliser %n
à la place, j’aurai eu ainsi si je colle "Naissance.mp4"
. C’est mon choix.
J’espère que vous avez apprécié ces 3 articles (Le fichier uca.xml, Scripts vidéos et le présent article) sur les Thunar Custom Actions. J’ai fait le tour pour ma part de cette fonctionnalité fort sympathique de Thunar. Le but était de vous donner de l’autonomie, comprendre certains concepts (comme les paramètres, l’utilisation des actions personnalisées, un peu de scripts et de commandes utiles etc.), reprendre la main sur l’outil. En espérant que ça vous serve
Tcho !
Déjà 7 avis pertinents dans Thunar Custom Actions – Script guake
Les commentaires sont fermés.
Ben c’est que je ne vois pas de problème… chez moi cela ouvre bien à l’endroit souhaité….
(et guake ok également…)
?
Tu es sur Xubuntu ? Tu es dans /home/babar/Vidéos/Famille/Bébé/ et il te donne le prompt dans Bébé pas dans Famille ?
Ça serait intéressant d’avoir d’autres retours, le problème vient peut-être d’un paramétrage chez moi.
Merci, Tcho !
J’ai installé le nécessaire pour reproduire ton problème mais … pas de problème.
Dans ce genre de problème d’accès bancal à un répertoire j’ai maintenant le réflexe de regarder aux accents présents dans les noms… (surtout si python dans les parages)
Mais bon, ici il y a déjà Vidéos donc…
Est-ce que c’est systématique ? (quel que soit l’endroit où tu demandes?)
J’ai trouvé l’origine du problème sans pouvoir l’expliquer encore. C’est systématique peu importe l’endroit.
Ça vient de mon fichier .bashrc et de mon .bash_aliases. Si je mets ça dans mon fichier .bashrc.
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don’t need to enable
# this, if it’s already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
Et si je mets ça dans mon fichier .bash_aliases.
alias .=’cd ..’
Alors c’est pas bon. Il doit essayer de remplacer le . c’est certain. Ce qui est bizarre c’est que si je fais sauter un block ou l’autre dans le fichier .bashrc alors je n’ai plus le problème.
Tu utilises quels alias pour remonter dans les répertoires ? Perso :
alias .=’cd ..’
alias ..=’cd ../..’
alias …=’cd ../../..’
alias ….=’cd ../../../..’
alias …..=’cd ../../../../..’
Tcho !
« Tu utilises quels alias pour [remonter dans les répertoires] ? « (1)
Marrant, à chaque fois que tu me poses ce genre de question, ma réponse est : je n’utilise pas.
Je n’utilise pas les alias personnalisé pour une raison toute simple : la personnalisation à outrance n’est pas souhaitable lorsque tu es amené à administrer plusieurs machines (genre famille/amis/collègues/…). Tu te retrouves exaspéré par les machines qui ne sont pas aussi customisée que la tienne !! Relire tout ce qui se dit sur le concept « Zone de confort » et, en sortir !
Si en plus ça génère des soucis, bugs subtiles dans l’interprétation des commandes alors là, c’est le ponpon!
À la réflexion, jouer avec le remplacement de ‘..’, c’est suicidaire…
(1) cd .. (puis utilisation historique pour répéter)