Добавить элемент в контекстное меню в Dolphin

Можно ли добавить новые элементы в контекстное меню в Dolphin (KDE Plasma), если я щелкну правой кнопкой мыши по чему-нибудь?

Я хотел бы сделать скрипт под названием Переместить в приложения , который покажет только , если я щелкну правой кнопкой мыши по файлу .desktop , а затем он переместит его в папку / usr / share / Applications / . Или есть более быстрый способ перемещения файлов .desktop в папку / usr / share / Applications / .

3
задан 6 October 2019 в 16:35

2 ответа

Можно создать Сервисное меню, чтобы сделать то, что Вы хотите.

  • Создайте папку ~/.local/share/kservices5
  • Создайте папку ~/.local/share/kservices5/servicemenus
  • В ~/.local/share/kservices5/ServiceMenus создают файл простого текста, названный move.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 context menu before creating the service menu

В следующем снимке экрана, сделанном после создания сервисного меню, Вы будете видеть дополнительную запись, файл Перемещения:

Note the Move file entry

Нажатие на файл Move предложит Вам Ваш пароль, потому что Вы хотите переместить файл в/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 для помещения пути файла в буфер обмена и затем использование базового имени для снятия изоляции со всего кроме имени файла. Конечно, Вам будет нужно kdesu снова! Я не знаю, существует ли более короткий путь!

4
ответ дан 1 December 2019 в 15:48

В KDE Plasma самым простым решением может быть добавление новой записи «открыть с помощью». Для этого перейдите в Настройка рабочего стола (системные настройки5) > Приложения > Связи файлов.

Затем выберите соответствующий тип файла с помощью поля поиска; Это даст результаты как для имен mimetype, так и для фильтров расширений файлов. Ввод .kdelnk или .desktop вызовет mime-тип application/x-desktop.

На панели Порядок выбора приложений нажмите кнопку + Добавить, чтобы настроить новую программу. По умолчанию новые записи выбираются в качестве программы по умолчанию; Вы захотите переместить сценарий в более подходящее место в заказе.

0
ответ дан 2 October 2020 в 08:42

Другие вопросы по тегам:

Похожие вопросы: