Connexion

Besoin d'aide ? Une question ? Un avis ? Rejoignez nous sur notre salon IRC pour clavarder

Forum

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

Cled Membre non connecté

Rang

Avatar

Inscrit le : 03/11/2014 à 05h28

Messages: 13

Le 21/01/2020 à 02h11
Bonjour,

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é

Rang

Avatar

Inscrit le : 30/01/2010 à 14h07

Localisation : Finistère

Messages: 1530

Le 21/01/2020 à 08h59
Bonjour,
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" :
screenshot_20200121_085326
Edité par DéBé Le 21/01/2020 à 08h59


Desktop :Mageia 7 x86-64 Plasma 5 - GeForce N210 Pilote Nouveau - Ram 4096 Mb - AMD Athlon 64 X2 Dual Core Processor 4800+ / Notebook Asus F200M Mageia 7.1 x86-64 XFCE4
   
Cled Membre non connecté

Rang

Avatar

Inscrit le : 03/11/2014 à 05h28

Messages: 13

Le 21/01/2020 à 16h35
Merci @Débé. :)
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é

Rang

Avatar

Inscrit le : 15/05/2009 à 08h07

Localisation : Val d'Oise

Messages: 3129

Le 21/01/2020 à 17h09
Salut .
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"


Lenovo g70-70
cg intel 810 / ssd SanDisk 250Go
Mageia 7.1 plasma 64b

Packard Bell ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 7.1 plasma 64b
   
Cled Membre non connecté

Rang

Avatar

Inscrit le : 03/11/2014 à 05h28

Messages: 13

Le 21/01/2020 à 17h38
Merci m@rco123.
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é ?
Edité par Cled Le 21/01/2020 à 17h39
   
m@rco123 Membre non connecté

Rang

Avatar

Inscrit le : 15/05/2009 à 08h07

Localisation : Val d'Oise

Messages: 3129

Le 21/01/2020 à 19h30
Bonsoir !
la commande " shred " serait pas en root ?

/home/marco/.kde/share/kde/services/ServiceMenus/ tu peux le créer


Lenovo g70-70
cg intel 810 / ssd SanDisk 250Go
Mageia 7.1 plasma 64b

Packard Bell ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 7.1 plasma 64b
   
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 2697

Le 21/01/2020 à 21h41
Bonjour,

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é

Rang

Avatar

Inscrit le : 15/05/2009 à 08h07

Localisation : Val d'Oise

Messages: 3129

Le 21/01/2020 à 21h51
Non, la commande ne disparait pas, mais elle reste dans le vide ...

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 Edité par m@rco123 Le 21/01/2020 à 21h55


Lenovo g70-70
cg intel 810 / ssd SanDisk 250Go
Mageia 7.1 plasma 64b

Packard Bell ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 7.1 plasma 64b
   
Cled Membre non connecté

Rang

Avatar

Inscrit le : 03/11/2014 à 05h28

Messages: 13

Le 21/01/2020 à 22h55
Merci de vos retours m@rco123 et nic80.

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... :nono:

   
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 2697

Le 21/01/2020 à 23h04
Bonjour,

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/


Edité par nic80 Le 21/01/2020 à 23h16
   
Cled Membre non connecté

Rang

Avatar

Inscrit le : 03/11/2014 à 05h28

Messages: 13

Le 22/01/2020 à 00h07
Je sais que notre distribution s’appelle Mageia, et si ce n’est justement un tour de magie, je ne comprends toujours pas pourquoi, mais d’un coup : ça marche !

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. ^^
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie