Est-il possible d'ajouter de nouveaux éléments dans le menu contextuel dans Dolphin (KDE Plasma) si je fais un clic droit sur quelque chose?
Je voudrais créer un script appelé Déplacer vers les applications , qui affichera niquement si je clique avec le bouton droit sur un . desktop file puis il le déplacera vers /usr/share/applications/ dossier. Ou existe-t-il un moyen plus rapide de déplacer les fichiers . Desktop vers /usr/share/applications/ dossier.
Vous pouvez créer un Menu Service pour faire ce que vous voulez.
Collez le contenu suivant dans move.desktop
[Desktop Action move-file]
Exec=/usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu mv "%U" /usr/share/applications
Name=Move file
Icon=document-send
[Desktop Entry]
Actions=move-file
MimeType=application/x-desktop;
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel
L'utilisation de MimeType=application/x-desktop;
garantit que cette entrée du menu contextuel ne sera visible que lorsque le fichier cible est un fichier . desktop .
Ceci est une image du menu contextuel de Dolphin avant de créer le menu de service:
Dans la capture d'écran suivante prise après création du menu de service, vous verrez une entrée supplémentaire, Déplacer le fichier :
Cliquer sur Déplacer le fichier vous demandera votre mot de passe car vous souhaitez déplacer un fichier dans /usr/share/applications .
Après avoir fourni votre mot de passe, le fichier sélectionné sera déplacé vers /usr/share/applications :
Notez que le propriétaire n'est pas le même que les fichiers .desktop déjà présents. Vous devrez corriger cela comme vous le souhaitez:
Si vous devez modifier la propriété/les autorisations, vous pouvez modifier le Exec=
ligne comme celle-ci (pour changer de propriétaire):
Exec=printf %U | xsel -b -i && /usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu mv "%U" /usr/share/applications && cd /usr/share/applications && /usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu chown root:root $( basename $(xsel -b -o) )
Les étapes supplémentaires impliquent l'utilisation de printf et xsel pour mettre le chemin du fichier dans le presse-papiers, puis en utilisant nom de base pour supprimer tout sauf le nom de fichier. Bien sûr, vous aurez encore besoin de kdesu
! Je ne sais pas s'il y a un chemin plus court!