Bonjour,
J'ai un menu contextuel dans xfce/thunar qui me permet d'éditer un fichier texte avec vi dans une fenêtre xterm.
Je m'en sert principalement pour modifier les fichiers systèmes.
Pour ceux qui voudraient tester et me proposer une solution ...
J'ai ajouté dans ~/.config/Thunar/uca.xml
J"ai ajouté dans ~/.config/Thunar/accels.scm
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <action> <icon>gvim</icon> <name>Modifier avec Vi</name> <unique-id>Menu_Perso-1</unique-id> <command>~/bin/Open_with_vi %f</command> <description>vi editor</description> <patterns>*</patterns> <other-files/> <text-files/> </action>
Mon fichier exécutable ~/bin/Open_with_vi
Code : Sélectionner tout - Visualiser dans une fenêtre à part ; (gtk_accel_path "<Actions>/ThunarActions/uca-action-Menu_Perso-1" "")
Ici; j'ai 2 commandes xterm.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #!/bin/sh file="${1##*/}" cmd="vi" test $( ls -l "$1" | awk '{ print $3 }' ) != "$USER" && { comp="'" cmd="echo \"$file\" is not your file so you must set to root: ; su -l root -c '$cmd -c \"cd ${1%/*}\"" xterm -title 'Vi Editor of '"$file" \ -fa 'Monospace Regular' \ -fs 15 \ -e "$cmd '\''$1'\''$comp || \ { tput clear echo Not authorized to edit \"$file\" echo Sorry sleep 3 }" } || xterm -title 'Vi Editor of '"$file" \ -fa 'Monospace Regular' \ -fs 15 \ -e "$cmd '$1'"
Je cherche a en avoir qu'une seule qui s'applique a tous les cas.
Mais là; je séche.
Actuellement, ça fonctionne sur debian, OpenBSD et NetBSD.
Je ne cherche pas une solution bash.
Si une petite suggestion vous vient a l'esprit, n'hesitez pas.
N_BaH va faire des bonds avec l'utilisation de ls mais s'il y a une meilleure solution ...
Petite explcation du script:
Si le fichier m'appartient, pas de probléme, vi est lancé.
Si c'est un fichier système, on demande le mot de passe root avant de lancer vi.
La commandechange le répertoire courrant vers /root.
Code : Sélectionner tout - Visualiser dans une fenêtre à part su -l
permet de positionner vi dans le répertoire du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part su -l root -c '$cmd -c \"cd ${1%/*}\"
A mon avis trés utile pour faire une copie de sauvegarde.
Il reste encore a traiter le cas du fichier qui n'appartient ni a root, ni a moi mais on verra plus tard.
Cordialement.
Partager