★ ☆ ★
★ ☆ ★

ゲーム開発部 (⸝⸝ >ヮ<) !

〜 あまねく奇跡の始発点 | ようこそ、部室へ! 〜
★お知らせ★ 这个站点正在建设中! ♪ 本站处于早期开发阶段,各项功能还在开发中QAQ ♪ 正在制作Github活动数据的同步 ♪ 之后还会在日历卡片中展示出胡桃酱的真实日程&课程表! ♪ 「今日も一日、がんばるぞい!」 ♪ This site is best viewed in 1024×768. ♪
✿ 使用 Deskop Entry 扩展 KDE6 的 Dolphin 右键菜单 ✿
#Linux #桌面

使用 Deskop Entry 扩展 KDE6 的 Dolphin 右键菜单

基础 Desktop Entry 文件

用于存放菜单的路径为~/.local/share/kio/servicemenus/usr/share/kio/servicemenus,文件扩展名为.desktop

bash
touch ~/.local/share/kio/servicemenus/pdf2png.desktop

向文件中写入以下内容:

Desktop
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf;
Actions=convertToImage;

[Desktop Action convertToImage]
Name=Convert PDF to Image
Exec=sh -c 'convert -density 300 "%f" "$(basename "%f" .pdf)-%03d.png"'
Icon=applications-graphics

[Desktop Entry]

  • X-KDE-Submenu=Convert用于表示二级菜单,添加后可以在Actions中添加多个Desktop Action,使用;分隔
  • X-KDE-RequiredNumberOfUrls表示支持的选中文件数量,如有多种情况可以使用,隔开,例如X-KDE-RequiredNumberOfUrls=2,4,6
  • X-KDE-MinNumberOfUrlsX-KDE-MaxNumberOfUrls表示支持的文件数量的最小值和最大值
  • MimeType:
    • 要为目录创建 ServiceMenu,请使用 inode/directory MimeType。
    • 要为所有文件创建 ServiceMenu,请使用 application/octet-stream MimeType。
    • 可以使用通配符,例如 image/*
    • 这里是一些常见 MimeType

[Desktop Action]

  • Exec中%f代表右键时选中的单个文件的路径,%F代表选中的多个文件的路径,%u代表右键时选中的文件的URI(file://开头),其他的%变量请参阅来自FreeDesktop的 The Exec key

关于上面的Exec案例

bash
convert -density 300 "%f" "$(basename "%f" .pdf)-%03d.png"
  1. $(basename "%f" .pdf):这是一个子命令,用于提取文件名,并去掉扩展名。它会执行以下步骤:

    • basename 命令用于获取文件的基本名称(即去掉路径和扩展名的文件名)。
    • "%f" 表示文件路径或文件名。
    • .pdf 指定去除文件的扩展名 .pdf,所以如果文件名是 document.pdf,则 $(basename "%f" .pdf) 会输出 document
  2. -%03d:这是用于格式化数字的占位符,%03d 表示一个三位数的整数,不足三位会用0填充。例如,第一张图片的编号会是 001,第二张是 002,以此类推。

综合起来,这个表达式的输出形式会是:文件名-编号.png。如果输入的 PDF 文件名是 document.pdf,第一张输出的 PNG 文件会是 document-001.png,第二张是 document-002.png,以此类推。

留言板 / Guestbook

暂时还没有评论哦