web-dev-qa-db-ja.com

Dolphinのコンテキストメニューにアイテムを追加する

何かを右クリックすると、Dolphin(KDEプラズマ)のコンテキストメニューに新しい項目を追加できますか?

Move to applicationsというスクリプトを作成したいのですが、。desktopを右クリックするとonlyが表示されますファイルを保存すると、/ usr/share/applications /フォルダーに移動します。または、。desktopファイルを/ usr/share/applications /フォルダーに移動するためのより速い方法があります。

3
tomsk

Service Men を作成して、必要な操作を実行できます。

  • フォルダを作成〜/ .local/share/kservices5
  • フォルダを作成〜/ .local/share/kservices5/ServiceMenus
  • 〜/ .local/share/kservices5/ServiceMenusmove.desktopというプレーンテキストファイルを作成します

次の内容を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

の用法 MimeType=application/x-desktop;は、ターゲットファイルが。desktopファイルの場合にのみ、このコンテキストメニューエントリが表示されるようにします。

これはDolphinのコンテキストメニューの画像ですbeforeサービスメニューを作成しています:

Dolphin context menu before creating the service menu

次のスクリーンショットでは、サービスメニューを作成すると、追加のエントリファイルを移動が表示されます。

Note the Move file entry

/ Move fileをクリックすると、ファイルを/ usr/share/applicationsに移動するため、パスワードの入力を求められます。

Password required

パスワードを入力すると、選択したファイルが/ usr/share/applicationsに移動します。

File is now removed from its original location and is now in */usr/share/applications*

所有者は、すでにそこにある.desktopファイルと同じではないことに注意してください。選択した方法にかかわらず、修正する必要があります。

File ownership differs


所有権/権限を変更する必要がある場合は、Exec=このような行(所有権を変更するため):

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) )

追加の手順には、printfおよびxselを使用してファイルのパスをクリップボードに入れ、次にbasenameを使用してファイル名以外のすべてを取り除きます。 。もちろん、再びkdesuが必要になります!もっと短い方法があるかどうかわかりません!

4
DK Bose