Impossible d’ajouter un ServiceMenu (menu contextuel) supplémentaire dans Dolphin sous KDE-5

Cled Membre non connecté
-
- Voir le profil du membre Cled
- Inscrit le : 03/11/2014
- Groupes :
J’essaie en vain de créer un menu contextuel supplémentaire (avec « ServiceMenu ») dans Dolphin.
(En l’occurrence, je veux pouvoir supprimer un fichier avec la commande « shred », en ajoutant une entrée au menu contextuel « Action » de Dolphin, quand je fais un clic-droit sur un fichier.)
J’ai trouvé plusieurs tutoriels en ligne pour cela, par exemple :
https://stackoverflow.com/questions/59374606/how-to-add-shred-to-kde-context-menu-for-safe-delete-file-folder
https://techbase.kde.org/Development/Tutorials/Creating_Konqueror_Service_Menus
Tous donnent les mêmes conseils, à savoir de créer un fichier « shred.desktop » dans :
/usr/share/kservices5/ServiceMenus/
ou bien dans :
~/.local/share/kservices5/ServiceMenus/
Je l’ai fait, en essayant dans chacun de ces deux dossiers, voire dans les deux ensemble.
Avec ce contenu, dans le fichier « shred.desktop » :
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=all/allfiles;
Actions=Shred
#X-KDE-Submenu=Shred
[Desktop Action Shred]
Name=Suppr with shred
Name[fr]=Suppression sécurisée
Icon=trash-empty
Exec=shred -u -f -z -n35 %u
Cette procédure fonctionnait sans problème sous KDE-4 (même si le dossier « ServiceMenu » était alors situé dans « /usr/share/kde4/services/ServiceMenus/ »).
Cependant, je n’obtiens cette fois aucun résultat sur ma nouvelle config. : dernières versions de Mageia et de KDE, installées il y a une semaine sur un PC neuf.
Même en relançant la session utilisateur, ou même en redémarrant le PC : je n’obtiens aucune nouvelle commande dans le menu contextuel « Action » de Dolphin (ni dans celui de Krusader, d’ailleurs).
Quelque qu’un a-t-il une idée de pourquoi ça ne fonctionne pas ?
Grand merci d’avance. ^^

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
Je ne sais pas si j'ai bien compris ton problème, mais on peut tout simplement cocher l'option "supprimer"dans la config de Dolphin , rubrique "Services" :

Édité par DéBé Le 21/01/2020 à 08h59
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

Cled Membre non connecté
-
- Voir le profil du membre Cled
- Inscrit le : 03/11/2014
- Groupes :

En fait, la commande SHRED permet de faire un effaçage sécurisé sur un HDD (avec 5, 10, ou 35 passages, par exemple), par opposition à la commande de suppression simple.
Dans l'absolu, je pourrai passer à chaque fois en console pour faire une commande Shred (même si c'est moins pratique).
Mais mon plus gros souci est de ne pas arriver à ajouter de menu contextuel supplémentaire à Dolphin - que ce soit pour Shred, comme je voudrais, mais également pour toute autre commande, ce qui est gênant.

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
J'ai ajouté un truc à ce menu :
Dans celui ci :
/home/marco/.kde/share/kde/services/ServiceMenus/renomage.desktop
[Desktop Entry]
Type=Service
Actions=datage;
Encoding=UTF-8
ServiceTypes=KonqPopupMenu/Plugin,image/*
MimeType=image/*
[Desktop Action datage]
Name[fr]=Renommer avec Jhead en JJ-MM-AAAA
Icon=graphics_3d_section.png
Exec=renomme.sh %f
puis dans /home/marco/bin/renome.sh
#!/bin/sh
FILE=$1
#Utilisation de Jhead rend: JJ-MM-AAAA-hh-mm-ss + a,b,c,.... si plusieurs fichiers ayant les mêmes secondes
jhead -n'%d-%m-%Y-%H-%M-%S' "$FILE"
FILE=$1
#Utilisation de Jhead rend: JJ-MM-AAAA-hh-mm-ss + a,b,c,.... si plusieurs fichiers ayant les mêmes secondes
jhead -n'%d-%m-%Y-%H-%M-%S' "$FILE"
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

Cled Membre non connecté
-
- Voir le profil du membre Cled
- Inscrit le : 03/11/2014
- Groupes :
Je n'ai pas de dossier /home/user/.kde/share/kde/ (chez moi ça s'arrête à ~/.kde/share/ ). Devrais-je en créer un ?
Je suspecte dans mon cas une question de droits d'utilisation : en effet, je viens de voir que le menu contextuel (celui que je veux ajouter depuis le début) fonctionne bel et bien si je lance un explorateur (en l’occurrence Krusader) en Root. Mais ça ne marche plus quand je le lance normalement, en simple utilisateur.
Pourtant, j'ai vérifié les droits d'utilisation des fichiers concernés, et a priori tout est bon :
- dans /usr/share/kservices5/ServiceMenus/ les nouveaux fichiers ".desktop" créés appartiennent à root, avec droit de lecture seule pour les autres utilisateurs, et sans être exécutables (comme les autres fichiers ".desktop" préexistants, qui fonctionnent) ;
- dans ~/.local/share/kservices5/ServiceMenus/ les fichiers ".desktop" appartiennent à l'utilisateur, avec tous les droits afférents, et sans être exécutables (ils l'étaient au début, je l'ai enlevé, puisque les autres ".desktop" antérieurs ne le sont pas) ; de même pour les dossiers parents /kservices5/ServiceMenus/, que j'ai créés moi-même (car ils n'existaient pas encore), et qui appartiennet à l'utilisateur.
Malgré redémarrage des logiciels, puis de la session, et même du PC, ça ne fonctionne toujours désespérément pas en simple utilisateur.
Y-a-t-il un fichier ou dossier dont il faudrait adapter les droits et que j'aurais oublié ?
Édité par Cled Le 21/01/2020 à 17h39

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
la commande " shred " serait pas en root ?
/home/marco/.kde/share/kde/services/ServiceMenus/ tu peux le créer
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Je ne suis pas sur que shred ait besoin de droits root, s' il écrase le fichier plusieurs fois de suite ( c' est ce que semble indiquer la documentation en tout cas).
Par contre, j' ai lu que cela part du principe que c' est écrit toujours au même endroit. Est ce bien le cas ?
En tous les cas, que la commande s' execute en root ou non, cela ne devrait pas empêcher l' option d' apparaitre dans le menu. Si par exemple le script renomme.sh disparait, la commande disparait ?

m@rco123 Membre non connecté
-
- Voir le profil du membre m@rco123
- Inscrit le : 15/05/2009
- Groupes :
Bon, j'ai écris une connerie ...
le renomme.sh est dans :
/usr/bin/
Là, si je le renomme en toto.sh .. elle est reste bien dans le vide
Édité par m@rco123 Le 21/01/2020 à 21h55
Lenovo 110-17acl
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b
cg Mullins [Radeon R3 Graphics] / ssd SanDisk 250Go
Mageia 9 plasma 64b
packard ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 9 plasma 64b

Cled Membre non connecté
-
- Voir le profil du membre Cled
- Inscrit le : 03/11/2014
- Groupes :
Effectivement, la commande "shred" ne nécessite pas d'être root.
(Cette commande sert à effacer de manière sécurisée des fichiers sur disques magnétiques, type disques durs [car ça ne marche pas pour les SSD, c'est même nocif pour eux] : cela en faisant un grand nombre de réécritures successives sur l'emplacement du fichier à détruire, afin qu'il n'en reste rien, alors qu'un effaçage simple, et même quelques réécritures, peuvent laisser les données récupérables dans certains cas.)
J'ai essayé de placer le "shred.desktop" dans ~/.local/share/kde/services/ServiceMenus/ après avoir créé ces trois derniers dossiers, mais ça ne donne hélas pas plus de résultats...


nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Citation :
Non, la commande ne disparait pas, mais elle reste dans le vide ...
Ouf !

@Cled:
A des raisons de test, j' ai crée le fichier suivant dans ~/.local/share/kservices5/ServiceMenus/ ( fichier crée avec mon propre compte ( comme ça je suis sur que les droits sont bons !)
Code TEXT :
[Desktop Entry] Type=Service ServiceTypes=KonqPopupMenu/Plugin MimeType=all/allfiles; Actions=DeletewithShred Name=Delete files with shred Name[fr]=Supprimer avec Shred [Desktop Action DeletewithShred] Name=Delete with Shred Name[fr]=Supprimer avec Shred Icon=trash-empty TryExec=shred -u -f -z -n35 %u Exec=shred -u -f -z -n35 %u
Et j' ai bien détruit un fichier... Par contre, attention à la syntaxe, un seul caractère incorrect et le menu n' apparait plus.
Je ne vois pourtant pas trop de différence avec le fichier du début.
edit: les droits d' accès
Code BASH :
ls -al kservices5/ total 12 drwxr-xr-x 3 usertest usertest 4096 janv. 21 22:18 ./ drwxr-xr-x 31 usertest usertest 4096 janv. 21 22:03 ../ drwxrwxr-x 2 usertest usertest 4096 janv. 21 23:03 ServiceMenus/ [usertest@mageia7-test share]$ ls -al kservices5/ServiceMenus/shred.desktop -rw-rw-r-- 1 usertest usertest 331 janv. 21 23:03 kservices5/ServiceMenus/shred.desktop [usertest@mageia7-test share]$ pwd /home/usertest/.local/share [usertest@mageia7-test share]$
edit2: que donne la commande kf5-config --path services ( en utilisateur normal) ?
Code BASH :
[usertest@mageia7-test share]$ kf5-config --path services /home/usertest/.local/share/kservices5/:/usr/share/kservices5/
Édité par nic80 Le 21/01/2020 à 23h16

Cled Membre non connecté
-
- Voir le profil du membre Cled
- Inscrit le : 03/11/2014
- Groupes :
Pourtant, je n’ai rien changé aux fichiers « .desktop » en place.
J’en avais deux (le « shred.desktop », et un second fichier juste pour les tests : « hello.desktop », donné comme exemple dans ce tuto consulté la nuit dernière : https://askubuntu.com/questions/719262/how-do-i-add-custom-items-to-the-context-menu-in-dolphin-in-kde-5/719757#719757 ).
Aucun des deux ne marchait en simple utilisateur (pas de menu contextuel, sauf en root).
J’ai décidé de tester ton fichier, nic80, en créant (en tant qu’utilisateur) un nouveau fichier « shred.destop » dans ~/.local/share/kservices5/ServiceMenus/ , et en y copiant-collant ton code. J’ai évidemment dû renommer pour cela (en l’invalidant volontairement et provisoirement avec une extension modifiée) l’ancien fichier du même nom (dont je suis bien certain, pour l’avoir vérifié plusieurs fois, que ledit nom ne comportait aucune erreur avant).
Et d’un coup ça a marché, non seulement pour « shred.desktop », mais aussi pour « hello.desktop », resté pourtant inchangé juste à côté.
Plus surprenant : j’ai alors supprimé le nouveau fichier (celui avec le code de nic80), et redonner à l’ancien fichier son nom (donc sans rien modifier à son contenu, ni à ses droits d’utilisateur). Et d’un coup il s’est mis à marcher à son tour… Immédiatement, et sans avoir à redémarrer l’explorateur de fichiers (ni moins encore la session ou le PC).
Bref, c’est incompréhensible pour moi…
J’ai depuis supprimer tous les fichiers « .desktop » que j’avais créés lors des essais successifs dans « ~/.kde/share/kde/services/ServiceMenus/ » et dans « /usr/share/kservices5/ServiceMenus/ », en ne laissant que ceux de ~/.local/share/kservices5/ServiceMenus/ , et ça continue de marcher. Je peux même sans problème créer de nouvelles entrées.
Grand merci nic80, et également m@rco123, de votre aide précieuse !
Pour répondre à ta dernière question nic80, j’avais tapé la commande « kf5-config --path services » la nuit dernière en console, en simple utilisateur, et obtenu exactement la même réponse que toi (avec mon nom d’utilisateur à la place, bien sûr, dans le premier chemin).
Le problème est résolu, même si je ne comprends pas comment. Si quelqu’un a une explication rationnelle, je reste preneur. ^^

Bidulle Membre non connecté
-
- Voir le profil du membre Bidulle
- Inscrit le : 30/05/2016
- Groupes :
Actions=wipe;shred;
Type=Service
ServiceTypes=KonqPopupMenu/Plugin,inode/directory,all/allfiles
X-KDE-Submenu=Erase with Wipe or Shred
X-KDE-Submenu[fr]=Effacer avec Wipe ou Shred
[Desktop Action shred]
Exec=shred -n 38 -fzux %U
Name=Secure delete files with shred
Name[fr]=Suppression sécurisée fichier avec Shred
Icon=draw-eraser
[Desktop Action wipe]
Exec=wipe -rfsZ -l2 -X32 %f
Icon=draw-eraser
Name=Erase folder with Wipe
Name[fr]=Effacer dossier avec Wipe
save to name.desktop and put to $HOME/.local/share/kservices5/ServiceMenus/
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie